字节偏移量
(十六进制)
|
字节数
|
说明
|
00~01
|
2
|
签名(0x504D)
|
02~03
|
2
|
保留
|
04~07
|
4
|
总的分区个数
|
08~0B
|
4
|
本分区起始扇区号
|
|
4
|
本分区大小扇区数
|
10~
|
32
|
分区名(ASCII码)
|
30~
|
32
|
分区类型(ASCII码)
|
50~53
|
4
|
本分区内数据起始扇区号
|
54~57
|
4
|
本分区内数据区大小扇区数
|
58~5B
|
4
|
分区状态
|
|
4
|
引导代码起始扇区号
|
60~63
|
4
|
引导代码大小扇区数
|
64~67
|
4
|
引导装载程序地址
|
68~6B
|
4
|
保留
|
|
4
|
引导代码目录指针
|
70~73
|
4
|
保留
|
74~77
|
4
|
引导代码校验和
|
78~87
|
16
|
处理器类型
|
88~1FF
|
376
|
保留
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/* * fs/partitions/mac.h */ #define MAC_PARTITION_MAGIC 0x504d /* type field value for A/UX or other Unix partitions */ #define APPLE_AUX_TYPE "Apple_UNIX_SVR2" struct mac_partition { __be16 signature; /* expected to be MAC_PARTITION_MAGIC */ __be16 res1; __be32 map_count; /* # blocks in partition map */ __be32 start_block; /* absolute starting block # of partition */ __be32 block_count; /* number of blocks in partition */ char name[32]; /* partition name */ char type[32]; /* string type description */ __be32 data_start; /* rel block # of first data block */ __be32 data_count; /* number of data blocks */ __be32 status; /* partition status bits */ __be32 boot_start; __be32 boot_size; __be32 boot_load; __be32 boot_load2; __be32 boot_entry; __be32 boot_entry2; __be32 boot_cksum; char processor[16]; /* identifies ISA of boot */ /* there is more stuff after this that we don't need */ }; #define MAC_STATUS_BOOTABLE 8 /* partition is bootable */ #define MAC_DRIVER_MAGIC 0x4552 /* Driver descriptor structure, in block 0 */ struct mac_driver_desc { __be16 signature; /* expected to be MAC_DRIVER_MAGIC */ __be16 block_size; __be32 block_count; /* ... more stuff */ }; int mac_partition(struct parsed_partitions *state); |