1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _UAPI__LINUX_BLKPG_H
3 #define _UAPI__LINUX_BLKPG_H
6 * Partition table and disk geometry handling
8 * A single ioctl with lots of subfunctions:
10 * Device number stuff:
11 * get_whole_disk() (given the device number of a partition,
12 * find the device number of the encompassing disk)
13 * get_all_partitions() (given the device number of a disk, return the
14 * device numbers of all its known partitions)
19 * test_partition_in_use() (also for test_disk_in_use)
24 * get_bios_drivedata()
26 * For today, only the partition stuff - aeb, 990515
28 #include <linux/compiler.h>
29 #include <linux/ioctl.h>
31 #define BLKPG _IO(0x12,105)
33 /* The argument structure */
34 struct blkpg_ioctl_arg
{
41 /* The subfunctions (for the op field) */
42 #define BLKPG_ADD_PARTITION 1
43 #define BLKPG_DEL_PARTITION 2
44 #define BLKPG_RESIZE_PARTITION 3
46 /* Sizes of name fields. Unused at present. */
47 #define BLKPG_DEVNAMELTH 64
48 #define BLKPG_VOLNAMELTH 64
50 /* The data structure for ADD_PARTITION and DEL_PARTITION */
51 struct blkpg_partition
{
52 long long start
; /* starting offset in bytes */
53 long long length
; /* length in bytes */
54 int pno
; /* partition number */
55 char devname
[BLKPG_DEVNAMELTH
]; /* partition name, like sda5 or c0d1p2,
56 to be used in kernel messages */
57 char volname
[BLKPG_VOLNAMELTH
]; /* volume label */
60 #endif /* _UAPI__LINUX_BLKPG_H */