1 #pragma once 2 3 #define PACKED __attribute__((packed)) 4 5 typedef struct 6 { 7 unsigned char JmpBoot[3]; 8 unsigned char BootDrive; 9 //unsigned char BootPartition; 10 //unsigned char SectorsPerTrack; 11 //unsigned short NumberOfHeads; 12 //unsigned long Reserved1; 13 //unsigned long Reserved2; 14 15 unsigned long Ext2VolumeStartSector; // Start sector of the ext2 volume 16 unsigned long Ext2BlockSize; // Block size in sectors 17 unsigned long Ext2BlockSizeInBytes; // Block size in bytes 18 unsigned long Ext2PointersPerBlock; // Number of block pointers that can be contained in one block 19 unsigned long Ext2GroupDescPerBlock; // Number of group descriptors per block 20 unsigned long Ext2FirstDataBlock; // First data block (1 for 1024-byte blocks, 0 for bigger sizes) 21 unsigned long Ext2InodesPerGroup; // Number of inodes per group 22 unsigned long Ext2InodesPerBlock; // Number of inodes per block 23 24 unsigned char BootCodeAndData[459]; 25 26 unsigned char BootPartition; 27 unsigned short BootSignature; 28 29 } PACKED EXT2_BOOTCODE, *PEXT2_BOOTCODE;