00001 typedef struct hsc {
00002 unsigned char byte0;
00003 unsigned char head;
00004 unsigned char sector;
00005 unsigned char cyl;
00006 } hsc;
00007
00008 #define head(x) ((x).head)
00009 #define sector(x) ((x).sector & 0x3f)
00010 #define cyl(x) ((x).cyl | (((x).sector & 0xc0)<<2))
00011
00012 #define BEGIN(p) _DWORD((p).start_sect)
00013 #define END(p) (_DWORD((p).start_sect)+(_DWORD((p).nr_sects)))
00014
00015
00016 struct partition {
00017 hsc start;
00018 hsc end;
00019 unsigned char start_sect[4];
00020 unsigned char nr_sects[4];
00021 };
00022
00023 #define boot_ind start.byte0
00024 #define sys_ind end.byte0
00025
00026 int consistencyCheck(struct partition *partTable, int doprint, int verbose,
00027 int *has_activated, int *last_end, int *j,
00028 struct device *used_dev, int target_partition);
00029
00030 void setBeginEnd(struct partition *partTable, int begin, int end,
00031 int heads, int sector, int activate, int type);