57 lines
1.2 KiB
C
57 lines
1.2 KiB
C
/*
|
|
* initdr.h
|
|
*
|
|
* Created on: Sep 1, 2011
|
|
* Author: Tiberiu
|
|
*/
|
|
|
|
#ifndef INITDR_H_
|
|
#define INITDR_H_
|
|
|
|
#include <types.h>
|
|
#include <fileio.h>
|
|
|
|
typedef struct {
|
|
char Name[256];
|
|
uint32 Flags, OwnerId, GroupId, Size;
|
|
TimeSystem TimeCreated, TimeModified, TimeAccessed;
|
|
uint32 Offset;
|
|
} luxDirectoryEntry;
|
|
|
|
typedef struct {
|
|
uint32 Count;
|
|
luxDirectoryEntry* Entries;
|
|
} luxDirectory;
|
|
|
|
typedef struct {
|
|
uint32 Magic;
|
|
char Oem[6];
|
|
luxDirectory* Root;
|
|
} luxHeader;
|
|
|
|
typedef struct {
|
|
uint32 DeviceId;
|
|
uint32 Size;
|
|
void* Data;
|
|
} luxDEVICE;
|
|
|
|
typedef struct {
|
|
uint32 Id;
|
|
uint32 Size;
|
|
void* Start;
|
|
void* Pos;
|
|
} luxFILE;
|
|
|
|
|
|
extern uint32 luxDevRead (uint32 offset, void* buffer);
|
|
extern void luxInitrdInstall (MultibootInfo* info);
|
|
extern uint32 luxDetect (DevReadRoutine rd, uint32 blocksz);
|
|
extern uint32 luxRead (const MountPoint* mp, FILE* f, uint32 elemsz, uint32 n, uint8* buffer);
|
|
extern FILE* luxOpen (const MountPoint* mp, FILE* f, string path);
|
|
extern DirectoryEntry* luxTest (const MountPoint* mp, string path);
|
|
extern FILE* luxClose (const MountPoint* mp, FILE* f);
|
|
extern DirectoryEntry* luxReadDir (const MountPoint* mp, FILE* f, uint32 index);
|
|
|
|
|
|
#endif /* INITDR_H_ */
|