1*53ee8cc1Swenshuai.xi #ifndef _LINUX_BLKPG_H 2*53ee8cc1Swenshuai.xi #define _LINUX_BLKPG_H 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi /* 5*53ee8cc1Swenshuai.xi * Partition table and disk geometry handling 6*53ee8cc1Swenshuai.xi * 7*53ee8cc1Swenshuai.xi * A single ioctl with lots of subfunctions: 8*53ee8cc1Swenshuai.xi * 9*53ee8cc1Swenshuai.xi * Device number stuff: 10*53ee8cc1Swenshuai.xi * get_whole_disk() (given the device number of a partition, 11*53ee8cc1Swenshuai.xi * find the device number of the encompassing disk) 12*53ee8cc1Swenshuai.xi * get_all_partitions() (given the device number of a disk, return the 13*53ee8cc1Swenshuai.xi * device numbers of all its known partitions) 14*53ee8cc1Swenshuai.xi * 15*53ee8cc1Swenshuai.xi * Partition stuff: 16*53ee8cc1Swenshuai.xi * add_partition() 17*53ee8cc1Swenshuai.xi * delete_partition() 18*53ee8cc1Swenshuai.xi * test_partition_in_use() (also for test_disk_in_use) 19*53ee8cc1Swenshuai.xi * 20*53ee8cc1Swenshuai.xi * Geometry stuff: 21*53ee8cc1Swenshuai.xi * get_geometry() 22*53ee8cc1Swenshuai.xi * set_geometry() 23*53ee8cc1Swenshuai.xi * get_bios_drivedata() 24*53ee8cc1Swenshuai.xi * 25*53ee8cc1Swenshuai.xi * For today, only the partition stuff - aeb, 990515 26*53ee8cc1Swenshuai.xi */ 27*53ee8cc1Swenshuai.xi #include <linux/ioctl.h> 28*53ee8cc1Swenshuai.xi 29*53ee8cc1Swenshuai.xi #define BLKPG _IO(0x12,105) 30*53ee8cc1Swenshuai.xi 31*53ee8cc1Swenshuai.xi /* The argument structure */ 32*53ee8cc1Swenshuai.xi struct blkpg_ioctl_arg { 33*53ee8cc1Swenshuai.xi int op; 34*53ee8cc1Swenshuai.xi int flags; 35*53ee8cc1Swenshuai.xi int datalen; 36*53ee8cc1Swenshuai.xi void *data; 37*53ee8cc1Swenshuai.xi }; 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xi /* The subfunctions (for the op field) */ 40*53ee8cc1Swenshuai.xi #define BLKPG_ADD_PARTITION 1 41*53ee8cc1Swenshuai.xi #define BLKPG_DEL_PARTITION 2 42*53ee8cc1Swenshuai.xi 43*53ee8cc1Swenshuai.xi /* Sizes of name fields. Unused at present. */ 44*53ee8cc1Swenshuai.xi #define BLKPG_DEVNAMELTH 64 45*53ee8cc1Swenshuai.xi #define BLKPG_VOLNAMELTH 64 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xi /* The data structure for ADD_PARTITION and DEL_PARTITION */ 48*53ee8cc1Swenshuai.xi struct blkpg_partition { 49*53ee8cc1Swenshuai.xi long long start; /* starting offset in bytes */ 50*53ee8cc1Swenshuai.xi long long length; /* length in bytes */ 51*53ee8cc1Swenshuai.xi int pno; /* partition number */ 52*53ee8cc1Swenshuai.xi char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2, 53*53ee8cc1Swenshuai.xi to be used in kernel messages */ 54*53ee8cc1Swenshuai.xi char volname[BLKPG_VOLNAMELTH]; /* volume label */ 55*53ee8cc1Swenshuai.xi }; 56*53ee8cc1Swenshuai.xi 57*53ee8cc1Swenshuai.xi #endif /* _LINUX_BLKPG_H */ 58