diff options
author | Karel Zak | 2012-11-30 16:31:04 +0100 |
---|---|---|
committer | Karel Zak | 2013-03-11 11:20:40 +0100 |
commit | a8019843ab545040e0a64719014f5dcbd35ea8b0 (patch) | |
tree | 6945040d2c05706a9cc8223a9c363bb495bab758 /fdisks/fdisk.h | |
parent | fdisk: use debug stuff from libfdisk (diff) | |
download | kernel-qcow2-util-linux-a8019843ab545040e0a64719014f5dcbd35ea8b0.tar.gz kernel-qcow2-util-linux-a8019843ab545040e0a64719014f5dcbd35ea8b0.tar.xz kernel-qcow2-util-linux-a8019843ab545040e0a64719014f5dcbd35ea8b0.zip |
libfdisk: add basic structs
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'fdisks/fdisk.h')
-rw-r--r-- | fdisks/fdisk.h | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/fdisks/fdisk.h b/fdisks/fdisk.h index 14b0a7a6a..efc9969b6 100644 --- a/fdisks/fdisk.h +++ b/fdisks/fdisk.h @@ -63,111 +63,6 @@ enum failure { unable_to_write }; -typedef unsigned long long sector_t; - -/* - * Supported partition table types (labels) - */ -enum fdisk_labeltype { - FDISK_DISKLABEL_DOS = 1, - FDISK_DISKLABEL_SUN = 2, - FDISK_DISKLABEL_SGI = 4, - FDISK_DISKLABEL_AIX = 8, - FDISK_DISKLABEL_OSF = 16, - FDISK_DISKLABEL_MAC = 32, - FDISK_DISKLABEL_GPT = 64, - FDISK_DISKLABEL_ANY = -1 -}; - -/* - * Partition types - */ -struct fdisk_parttype { - unsigned int type; /* type as number or zero */ - const char *name; /* description */ - char *typestr; /* type as string or NULL */ - - unsigned int flags; /* FDISK_PARTTYPE_* flags */ -}; - -enum { - FDISK_PARTTYPE_UNKNOWN = (1 << 1), - FDISK_PARTTYPE_INVISIBLE = (1 << 2), - FDISK_PARTTYPE_ALLOCATED = (1 << 3) -}; - -#define fdisk_parttype_is_unknown(_x) ((_x) && ((_x)->flags & FDISK_PARTTYPE_UNKNONW)) -#define fdisk_parttype_is_invisible(_x) ((_x) && ((_x)->flags & FDISK_PARTTYPE_INVISIBLE)) -#define fdisk_parttype_is_allocated(_x) ((_x) && ((_x)->flags & FDISK_PARTTYPE_ALLOCATED)) - -/* - * Legacy CHS based geometry - */ -struct fdisk_geometry { - unsigned int heads; - sector_t sectors; - sector_t cylinders; -}; - -struct fdisk_context { - int dev_fd; /* device descriptor */ - char *dev_path; /* device path */ - unsigned char *firstsector; /* buffer with master boot record */ - - /* topology */ - unsigned long io_size; /* I/O size used by fdisk */ - unsigned long optimal_io_size; /* optional I/O returned by device */ - unsigned long min_io_size; /* minimal I/O size */ - unsigned long phy_sector_size; /* physical size */ - unsigned long sector_size; /* logical size */ - unsigned long alignment_offset; - - enum fdisk_labeltype disklabel; /* current disklabel */ - - /* alignment */ - unsigned long grain; /* alignment unit */ - sector_t first_lba; /* recommended begin of the first partition */ - - /* geometry */ - sector_t total_sectors; /* in logical sectors */ - struct fdisk_geometry geom; - - /* label operations and description */ - const struct fdisk_label *label; -}; - -#define fdisk_is_disklabel(c, x) fdisk_dev_is_disklabel(c, FDISK_DISKLABEL_ ## x) - -/* - * Label specific operations - */ -struct fdisk_label { - const char *name; - - /* array with partition types */ - struct fdisk_parttype *parttypes; - size_t nparttypes; /* number of items in parttypes[] */ - - /* probe disk label */ - int (*probe)(struct fdisk_context *cxt); - /* write in-memory changes to disk */ - int (*write)(struct fdisk_context *cxt); - /* verify the partition table */ - int (*verify)(struct fdisk_context *cxt); - /* create new disk label */ - int (*create)(struct fdisk_context *cxt); - /* new partition */ - int (*part_add)(struct fdisk_context *cxt, int partnum, struct fdisk_parttype *t); - /* delete partition */ - int (*part_delete)(struct fdisk_context *cxt, int partnum); - /* get partition type */ - struct fdisk_parttype *(*part_get_type)(struct fdisk_context *cxt, int partnum); - /* set partition type */ - int (*part_set_type)(struct fdisk_context *cxt, int partnum, struct fdisk_parttype *t); - /* refresh alignment setting */ - int (*reset_alignment)(struct fdisk_context *cxt); -}; - /* * labels */ |