#include <sys/types.h> #define DOSPTYP_UBX 0x2A /* UbixFS partition type */ #define UBIXDISKMAGIC ((uInt32)0x45) /* The disk magic number */ #define MAXUBIXPARTITIONS 16 #define UBIXFSMAGIC ((uInt32)0x69) /* The File System Magic Number */ struct ubixDiskLabel { uInt32 magicNum; uInt32 magicNum2; uInt16 driveType; uInt16 numPartitions; struct ubixPartitions { /* the partition table */ uInt32 p_size; /* number of sectors in partition */ uInt32 p_offset; /* starting sector */ uInt32 p_fsize; /* filesystem basic fragment size */ uInt32 p_bsize; /* BAT size */ uInt8 p_fstype; /* filesystem type, see below */ uInt8 p_frag; /* filesystem fragments per block */ } partitions[MAXUBIXPARTITIONS]; }; //Block Allocation Table Entry struct blockAllocationTableEntry { long attributes; //Block Attributes long realSector; //Real Sector long nextBlock; //Sector Of Next Block long reserved; //Reserved }; struct directoryEntry { uLong startCluster; //Starting Cluster Of File uLong size; //Size Of File uLong creationDate; //Date Created uLong lastModified; //Date Last Modified uLong uid; //UID Of Owner uLong gid; //GID Of Owner uShort attributes; //Files Attributes uShort permissions; //Files Permissions char fileName[256]; //File Name };