/* * initdr.h * * Created on: Sep 1, 2011 * Author: Tiberiu */ #ifndef INITDR_H_ #define INITDR_H_ #include #include 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_ */