blob: f24b441038c66daecacf3e07bda0ac77f2870fde [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _LINUX_DM_IOCTL_V4_H
8#define _LINUX_DM_IOCTL_V4_H
9#include <linux/types.h>
10#define DM_DIR "mapper"
Ben Cheng655a7c02013-10-16 16:09:24 -070011#define DM_CONTROL_NODE "control"
12#define DM_MAX_TYPE_NAME 16
13#define DM_NAME_LEN 128
14#define DM_UUID_LEN 129
Ben Cheng655a7c02013-10-16 16:09:24 -070015struct dm_ioctl {
Tao Baod7db5942015-01-28 10:07:51 -080016 __u32 version[3];
17 __u32 data_size;
18 __u32 data_start;
Tao Baod7db5942015-01-28 10:07:51 -080019 __u32 target_count;
20 __s32 open_count;
21 __u32 flags;
22 __u32 event_nr;
Tao Baod7db5942015-01-28 10:07:51 -080023 __u32 padding;
24 __u64 dev;
25 char name[DM_NAME_LEN];
26 char uuid[DM_UUID_LEN];
Tao Baod7db5942015-01-28 10:07:51 -080027 char data[7];
Ben Cheng655a7c02013-10-16 16:09:24 -070028};
29struct dm_target_spec {
Tao Baod7db5942015-01-28 10:07:51 -080030 __u64 sector_start;
Tao Baod7db5942015-01-28 10:07:51 -080031 __u64 length;
32 __s32 status;
33 __u32 next;
34 char target_type[DM_MAX_TYPE_NAME];
Ben Cheng655a7c02013-10-16 16:09:24 -070035};
36struct dm_target_deps {
Tao Baod7db5942015-01-28 10:07:51 -080037 __u32 count;
38 __u32 padding;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070039 __u64 dev[];
Ben Cheng655a7c02013-10-16 16:09:24 -070040};
41struct dm_name_list {
Tao Baod7db5942015-01-28 10:07:51 -080042 __u64 dev;
Tao Baod7db5942015-01-28 10:07:51 -080043 __u32 next;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070044 char name[];
Ben Cheng655a7c02013-10-16 16:09:24 -070045};
Christopher Ferrisfcc3b4f2021-07-01 01:30:21 +000046#define DM_NAME_LIST_FLAG_HAS_UUID 1
47#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
Ben Cheng655a7c02013-10-16 16:09:24 -070048struct dm_target_versions {
Tao Baod7db5942015-01-28 10:07:51 -080049 __u32 next;
50 __u32 version[3];
Christopher Ferris7447a1c2022-10-04 18:24:44 -070051 char name[];
Ben Cheng655a7c02013-10-16 16:09:24 -070052};
Ben Cheng655a7c02013-10-16 16:09:24 -070053struct dm_target_msg {
Tao Baod7db5942015-01-28 10:07:51 -080054 __u64 sector;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070055 char message[];
Ben Cheng655a7c02013-10-16 16:09:24 -070056};
Ben Cheng655a7c02013-10-16 16:09:24 -070057enum {
Tao Baod7db5942015-01-28 10:07:51 -080058 DM_VERSION_CMD = 0,
59 DM_REMOVE_ALL_CMD,
60 DM_LIST_DEVICES_CMD,
Tao Baod7db5942015-01-28 10:07:51 -080061 DM_DEV_CREATE_CMD,
62 DM_DEV_REMOVE_CMD,
63 DM_DEV_RENAME_CMD,
64 DM_DEV_SUSPEND_CMD,
Tao Baod7db5942015-01-28 10:07:51 -080065 DM_DEV_STATUS_CMD,
66 DM_DEV_WAIT_CMD,
67 DM_TABLE_LOAD_CMD,
68 DM_TABLE_CLEAR_CMD,
Tao Baod7db5942015-01-28 10:07:51 -080069 DM_TABLE_DEPS_CMD,
70 DM_TABLE_STATUS_CMD,
71 DM_LIST_VERSIONS_CMD,
72 DM_TARGET_MSG_CMD,
Christopher Ferris1308ad32017-11-14 17:32:13 -080073 DM_DEV_SET_GEOMETRY_CMD,
74 DM_DEV_ARM_POLL_CMD,
Christopher Ferris9584fa42019-12-09 15:36:13 -080075 DM_GET_TARGET_VERSION_CMD,
Ben Cheng655a7c02013-10-16 16:09:24 -070076};
77#define DM_IOCTL 0xfd
78#define DM_VERSION _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl)
Ben Cheng655a7c02013-10-16 16:09:24 -070079#define DM_REMOVE_ALL _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl)
80#define DM_LIST_DEVICES _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl)
81#define DM_DEV_CREATE _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl)
82#define DM_DEV_REMOVE _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl)
Ben Cheng655a7c02013-10-16 16:09:24 -070083#define DM_DEV_RENAME _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl)
84#define DM_DEV_SUSPEND _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl)
85#define DM_DEV_STATUS _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl)
86#define DM_DEV_WAIT _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl)
Christopher Ferris1308ad32017-11-14 17:32:13 -080087#define DM_DEV_ARM_POLL _IOWR(DM_IOCTL, DM_DEV_ARM_POLL_CMD, struct dm_ioctl)
Ben Cheng655a7c02013-10-16 16:09:24 -070088#define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl)
89#define DM_TABLE_CLEAR _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl)
90#define DM_TABLE_DEPS _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl)
91#define DM_TABLE_STATUS _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl)
Ben Cheng655a7c02013-10-16 16:09:24 -070092#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl)
Christopher Ferris9584fa42019-12-09 15:36:13 -080093#define DM_GET_TARGET_VERSION _IOWR(DM_IOCTL, DM_GET_TARGET_VERSION_CMD, struct dm_ioctl)
Ben Cheng655a7c02013-10-16 16:09:24 -070094#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
95#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
96#define DM_VERSION_MAJOR 4
Christopher Ferris37c3f3c2023-07-10 10:59:05 -070097#define DM_VERSION_MINOR 48
Ben Cheng655a7c02013-10-16 16:09:24 -070098#define DM_VERSION_PATCHLEVEL 0
Christopher Ferris37c3f3c2023-07-10 10:59:05 -070099#define DM_VERSION_EXTRA "-ioctl(2023-03-01)"
Ben Cheng655a7c02013-10-16 16:09:24 -0700100#define DM_READONLY_FLAG (1 << 0)
Ben Cheng655a7c02013-10-16 16:09:24 -0700101#define DM_SUSPEND_FLAG (1 << 1)
102#define DM_PERSISTENT_DEV_FLAG (1 << 3)
103#define DM_STATUS_TABLE_FLAG (1 << 4)
104#define DM_ACTIVE_PRESENT_FLAG (1 << 5)
Ben Cheng655a7c02013-10-16 16:09:24 -0700105#define DM_INACTIVE_PRESENT_FLAG (1 << 6)
106#define DM_BUFFER_FULL_FLAG (1 << 8)
107#define DM_SKIP_BDGET_FLAG (1 << 9)
108#define DM_SKIP_LOCKFS_FLAG (1 << 10)
Ben Cheng655a7c02013-10-16 16:09:24 -0700109#define DM_NOFLUSH_FLAG (1 << 11)
110#define DM_QUERY_INACTIVE_TABLE_FLAG (1 << 12)
111#define DM_UEVENT_GENERATED_FLAG (1 << 13)
112#define DM_UUID_FLAG (1 << 14)
Ben Cheng655a7c02013-10-16 16:09:24 -0700113#define DM_SECURE_DATA_FLAG (1 << 15)
114#define DM_DATA_OUT_FLAG (1 << 16)
Christopher Ferris38062f92014-07-09 15:33:25 -0700115#define DM_DEFERRED_REMOVE (1 << 17)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800116#define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700117#define DM_IMA_MEASUREMENT_FLAG (1 << 19)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800118#endif