00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _BSD_H
00013 #define _BSD_H
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00019 typedef struct {
00020 uint8_t magic[4];
00021 uint8_t type[2];
00022 uint8_t sub_type[2];
00023 uint8_t type_name[16];
00024
00025 uint8_t packname[16];
00026
00027 uint8_t sec_size[4];
00028 uint8_t sec_per_tr[4];
00029 uint8_t tr_per_cyl[4];
00030 uint8_t cyl_per_unit[4];
00031 uint8_t sec_per_cyl[4];
00032 uint8_t sec_per_unit[4];
00033
00034 uint8_t spare_per_tr[2];
00035 uint8_t spare_per_cyl[2];
00036
00037 uint8_t alt_per_unit[4];
00038
00039 uint8_t rpm[2];
00040 uint8_t interleave[2];
00041 uint8_t trackskew[2];
00042 uint8_t cylskew[2];
00043 uint8_t headswitch[4];
00044 uint8_t track_seek[4];
00045 uint8_t flags[4];
00046
00047 uint8_t drivedata[20];
00048
00049 uint8_t reserved1[20];
00050
00051 uint8_t magic2[4];
00052 uint8_t checksum[2];
00053
00054 uint8_t num_parts[2];
00055 uint8_t bootarea_size[4];
00056 uint8_t sb_size[4];
00057
00058 struct {
00059 uint8_t size_sec[4];
00060 uint8_t start_sec[4];
00061 uint8_t frag_size[4];
00062 uint8_t fstype;
00063 uint8_t frag_per_block;
00064 uint8_t cyl_per_grp[2];
00065 } part[16];
00066
00067
00068 uint8_t reserved2[108];
00069
00070 } bsd_disklabel;
00071
00072 #define BSD_MAGIC 0x82564557
00073 #define BSD_PART_SOFFSET 1
00074
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 #endif