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