#include /* for __u16, __u32 */ typedef struct { unsigned char info[128]; /* Informative text string */ unsigned char spare0[14]; struct sun_info { unsigned char spare1; unsigned char id; unsigned char spare2; unsigned char flags; } infos[8]; unsigned char spare1[246]; /* Boot information etc. */ unsigned short rspeed; /* Disk rotational speed */ unsigned short pcylcount; /* Physical cylinder count */ unsigned short sparecyl; /* extra sects per cylinder */ unsigned char spare2[4]; /* More magic... */ unsigned short ilfact; /* Interleave factor */ unsigned short ncyl; /* Data cylinder count */ unsigned short nacyl; /* Alt. cylinder count */ unsigned short ntrks; /* Tracks per cylinder */ unsigned short nsect; /* Sectors per track */ unsigned char spare3[4]; /* Even more magic... */ struct sun_partition { __u32 start_cylinder; __u32 num_sectors; } partitions[8]; unsigned short magic; /* Magic number */ unsigned short csum; /* Label xor'd checksum */ } sun_partition; #define SUN_LABEL_MAGIC 0xDABE #define SUN_LABEL_MAGIC_SWAPPED 0xBEDA #define sunlabel ((sun_partition *)MBRbuffer) #define SSWAP16(x) (other_endian ? __swap16(x) \ : (__u16)(x)) #define SSWAP32(x) (other_endian ? __swap32(x) \ : (__u32)(x)) /* fdisk.c */ extern char MBRbuffer[MAX_SECTOR_SIZE]; extern unsigned int heads, sectors, cylinders; extern int show_begin; extern int sun_label; extern char *partition_type(unsigned char type); extern void update_units(void); extern char read_chars(char *mesg); extern void set_all_unchanged(void); extern void set_changed(int); /* fdisksunlabel.c */ #define SUNOS_SWAP 3 #define WHOLE_DISK 5 extern struct systypes sun_sys_types[]; extern int get_num_sectors(struct sun_partition p); extern void guess_device_type(int fd); extern int check_sun_label(void); extern void sun_nolabel(void); extern void create_sunlabel(void); extern void sun_delete_partition(int i); extern void sun_change_sysid(int i, int sys); extern void sun_list_table(int xtra); extern void verify_sun(void); extern void add_sun_partition(int n, int sys); extern void sun_write_table(void); extern void sun_set_alt_cyl(void); extern void sun_set_ncyl(int cyl); extern void sun_set_xcyl(void); extern void sun_set_ilfact(void); extern void sun_set_rspeed(void); extern void sun_set_pcylcount(void); extern void toggle_sunflags(int i, unsigned char mask);