/* * * F11DEF - bad block descriptor definitions [not in Starlet] */ #ifndef _BBDDEF_H #define _BBDDEF_H /* Bad block descriptor (generated by formatters for RK06, RM03, et al) */ #define BBD$K_DESCRIPT 8 /* start of bad block descriptors */ #define BBD$C_DESCRIPT 8 #define BBD$S_BBDDEF 512 struct bbddef { unsigned long bbd$l_serial; /* pack serial number */ unsigned short bbd$w_reserved; /* reserved area (MBZ) */ unsigned short bbd$w_flags; /* pack status flags (zero for normal use) */ char bbddef$_fill[500]; unsigned long bbd$l_lastword; /* last longword of block */ }; #define BBD$S_CYLINDER 15 #define BBD$S_SECTOR 8 #define BBD$S_TRACK 7 #define BBD$K_ENTRY 4 #define BBD$C_ENTRY 4 #define BBD$S_BBDDEF1 4 union bbddef1 { unsigned long bbd$l_badblock; /* individual bad block entry */ struct { unsigned bbd$v_cylinder : 15; /* cylinder number of bad block */ unsigned : 1; unsigned bbd$v_sector : 8; /* sector number of bad block */ unsigned bbd$v_track : 7; /* track number of bad block */ unsigned : 1; /* padding */ } bbd$r_badblock_bits; }; #endif /*_BBDDEF_H*/