#define DOSPTYP_UBX 0xAD /* UbixFS partition type */
#define UBIXDISKMAGIC ((u_int32_t)0x45) /* The disk magic number */
#define MAXUBIXPARTITIONS 16
#define UBIXFSMAGIC ((u_int32_t)0x69) /* The File System Magic Number */
typedef unsigned long uLong;
typedef unsigned short uShort;
struct ubixDiskLabel {
u_int32_t magicNum;
u_int32_t magicNum2;
u_int16_t driveType;
u_int16_t numPartitions;
struct ubixPartitions { /* the partition table */
u_int32_t p_size; /* number of sectors in partition */
u_int32_t p_offset; /* starting sector */
u_int32_t p_fsize; /* filesystem basic fragment size */
u_int32_t p_bsize; /* BAT size */
u_int8_t p_fstype; /* filesystem type, see below */
u_int8_t 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
};