1 struct signature { 2 char unknown[0x36]; /* 0x00 to 0x35 */ 3 char diskname[32]; /* 0x36 to 0x56 */ 4 char unknown2[0x6c-86]; /* 0x57 to 0x6B */ 5 unsigned int array_sectors; /* 0x6C to 0x6F */ 6 char unknown2b[8]; /* 0x70 to 0x77 */ 7 unsigned int thisdisk_sectors; /* 0x78 to 0x7B */ 8 char unknown2c[0xFF-0x7B]; /* 0x7C to 0xFF */ 9 char unknown3[4]; /* 0x100 to 0x103 */ 10 unsigned short PCI_DEV_ID; /* 0x104 and 0x105 */ 11 unsigned short PCI_VEND_ID; /* 0x106 and 0x107 */ 12 char unknown4[4]; /* 0x108 to 0x10B */ 13 unsigned char seconds; /* 0x10C */ 14 unsigned char minutes; /* 0x10D */ 15 unsigned char hour; /* 0x10E */ 16 unsigned char day; /* 0x10F */ 17 unsigned char month; /* 0x110 */ 18 unsigned char year; /* 0x111 */ 19 unsigned short raid0_sectors_per_stride; /* 0x112 */ 20 char unknown6[2]; /* 0x113 - 0x115 */ 21 unsigned char disk_in_set; /* 0x116 */ 22 unsigned char raidlevel; /* 0x117 */ 23 unsigned char disks_in_set; /* 0x118 */ 24 char unknown7[0x12a - 0x118]; /* 0x118 - 0x12a */ 25 unsigned char idechannel; /* 0x12b */ 26 char unknown8[0x13D-0x12B]; /* 0x12c - 0x13d */ 27 unsigned short checksum1; /* 0x13e and 0x13f */ 28 char assumed_zeros[509-0x13f]; 29 unsigned short checksum2; /* 0x1FE and 0x1FF */ 30 } __attribute__((packed)); 31