summaryrefslogtreecommitdiff
path: root/fdisk/fdisk.h
diff options
context:
space:
mode:
Diffstat (limited to 'fdisk/fdisk.h')
-rw-r--r--fdisk/fdisk.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/fdisk/fdisk.h b/fdisk/fdisk.h
new file mode 100644
index 0000000..75dd88e
--- /dev/null
+++ b/fdisk/fdisk.h
@@ -0,0 +1,110 @@
+/*
+ fdisk.h
+*/
+
+#define DEFAULT_SECTOR_SIZE 512
+#define MAX_SECTOR_SIZE 2048
+#define SECTOR_SIZE 512 /* still used in BSD code */
+#define MAXIMUM_PARTS 60
+
+#define ACTIVE_FLAG 0x80
+
+#define EXTENDED 0x05
+#define WIN98_EXTENDED 0x0f
+#define LINUX_PARTITION 0x81
+#define LINUX_SWAP 0x82
+#define LINUX_NATIVE 0x83
+#define LINUX_EXTENDED 0x85
+#define LINUX_LVM 0x8e
+#define LINUX_RAID 0xfd
+
+#define IS_EXTENDED(i) \
+ ((i) == EXTENDED || (i) == WIN98_EXTENDED || (i) == LINUX_EXTENDED)
+
+#define SIZE(a) (sizeof(a)/sizeof((a)[0]))
+
+#define cround(n) (display_in_cyl_units ? ((n)/units_per_sector)+1 : (n))
+#define scround(x) (((x)+units_per_sector-1)/units_per_sector)
+
+#if defined(__GNUC__) && (defined(__arm__) || defined(__alpha__))
+# define PACKED __attribute__ ((packed))
+#else
+# define PACKED
+#endif
+
+struct partition {
+ unsigned char boot_ind; /* 0x80 - active */
+ unsigned char head; /* starting head */
+ unsigned char sector; /* starting sector */
+ unsigned char cyl; /* starting cylinder */
+ unsigned char sys_ind; /* What partition type */
+ unsigned char end_head; /* end head */
+ unsigned char end_sector; /* end sector */
+ unsigned char end_cyl; /* end cylinder */
+ unsigned char start4[4]; /* starting sector counting from 0 */
+ unsigned char size4[4]; /* nr of sectors in partition */
+} PACKED;
+
+enum failure {usage, usage2, ioctl_error,
+ unable_to_open, unable_to_read, unable_to_seek,
+ unable_to_write, out_of_memory};
+
+enum action {fdisk, require, try_only, create_empty_dos, create_empty_sun};
+
+struct geom {
+ unsigned int heads;
+ unsigned int sectors;
+ unsigned int cylinders;
+};
+
+/* prototypes for fdisk.c */
+extern char *disk_device, *line_ptr;
+extern int fd, partitions;
+extern unsigned int display_in_cyl_units, units_per_sector;
+extern void change_units(void);
+extern void fatal(enum failure why);
+extern void get_geometry(int fd, struct geom *);
+extern int get_boot(enum action what);
+extern int get_partition(int warn, int max);
+extern void list_types(struct systypes *sys);
+extern int read_line (void);
+extern char read_char(char *mesg);
+extern int read_hex(struct systypes *sys);
+extern void reread_partition_table(int leave);
+extern struct partition *get_part_table(int);
+extern int valid_part_table_flag(unsigned char *b);
+extern unsigned int read_int(unsigned int low, unsigned int dflt,
+ unsigned int high, unsigned int base, char *mesg);
+
+extern unsigned char MBRbuffer[MAX_SECTOR_SIZE];
+extern unsigned int heads, cylinders, sector_size;
+extern unsigned long long sectors;
+extern char *partition_type(unsigned char type);
+extern void update_units(void);
+extern char read_chars(char *mesg);
+extern void set_changed(int);
+extern void set_all_unchanged(void);
+
+#define PLURAL 0
+#define SINGULAR 1
+extern const char * str_units(int);
+
+extern unsigned long long get_start_sect(struct partition *p);
+extern unsigned long long get_nr_sects(struct partition *p);
+
+extern int osf_label;
+extern int sun_label;
+extern int sgi_label;
+extern int aix_label;
+extern int mac_label;
+
+/* prototypes for fdiskbsdlabel.c */
+extern void bselect(void);
+extern int check_osf_label(void);
+extern int btrydev(char * dev);
+extern void xbsd_print_disklabel(int);
+
+/* prototypes for fdisksgilabel.c */
+extern int valid_part_table_flag(unsigned char *b);
+
+#define PROC_PARTITIONS "/proc/partitions"