diff options
Diffstat (limited to 'platform/sysroot/usr/include/linux/ublk_cmd.h')
-rw-r--r-- | platform/sysroot/usr/include/linux/ublk_cmd.h | 65 |
1 files changed, 45 insertions, 20 deletions
diff --git a/platform/sysroot/usr/include/linux/ublk_cmd.h b/platform/sysroot/usr/include/linux/ublk_cmd.h index 2d4f42269..d05c7c4f1 100644 --- a/platform/sysroot/usr/include/linux/ublk_cmd.h +++ b/platform/sysroot/usr/include/linux/ublk_cmd.h @@ -1,21 +1,9 @@ -/**************************************************************************** - **************************************************************************** - *** - *** This header was automatically generated from a Linux kernel header - *** of the same name, to make information necessary for userspace to - *** call into the kernel available to libc. It contains only constants, - *** structures, and macros generated from the original header, and thus, - *** contains no copyrightable information. - *** - *** To edit the content of this header, modify the corresponding - *** source file (e.g. under external/kernel-headers/original/) then - *** run bionic/libc/kernel/tools/update_all.py - *** - *** Any manual change here will be lost the next time this script will - *** be run. You've been warned! - *** - **************************************************************************** - ****************************************************************************/ +/* + * This file is auto-generated. Modifications will be lost. + * + * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ + * for more information. + */ #ifndef USER_BLK_DRV_CMD_INC_H #define USER_BLK_DRV_CMD_INC_H #include <linux/types.h> @@ -41,6 +29,8 @@ #define UBLK_U_CMD_START_USER_RECOVERY _IOWR('u', UBLK_CMD_START_USER_RECOVERY, struct ublksrv_ctrl_cmd) #define UBLK_U_CMD_END_USER_RECOVERY _IOWR('u', UBLK_CMD_END_USER_RECOVERY, struct ublksrv_ctrl_cmd) #define UBLK_U_CMD_GET_DEV_INFO2 _IOR('u', UBLK_CMD_GET_DEV_INFO2, struct ublksrv_ctrl_cmd) +#define UBLK_U_CMD_GET_FEATURES _IOR('u', 0x13, struct ublksrv_ctrl_cmd) +#define UBLK_FEATURES_LEN 8 #define UBLK_IO_FETCH_REQ 0x20 #define UBLK_IO_COMMIT_AND_FETCH_REQ 0x21 #define UBLK_IO_NEED_GET_DATA 0x22 @@ -53,6 +43,18 @@ #define UBLKSRV_CMD_BUF_OFFSET 0 #define UBLKSRV_IO_BUF_OFFSET 0x80000000 #define UBLK_MAX_QUEUE_DEPTH 4096 +#define UBLK_IO_BUF_OFF 0 +#define UBLK_IO_BUF_BITS 25 +#define UBLK_IO_BUF_BITS_MASK ((1ULL << UBLK_IO_BUF_BITS) - 1) +#define UBLK_TAG_OFF UBLK_IO_BUF_BITS +#define UBLK_TAG_BITS 16 +#define UBLK_TAG_BITS_MASK ((1ULL << UBLK_TAG_BITS) - 1) +#define UBLK_QID_OFF (UBLK_TAG_OFF + UBLK_TAG_BITS) +#define UBLK_QID_BITS 12 +#define UBLK_QID_BITS_MASK ((1ULL << UBLK_QID_BITS) - 1) +#define UBLK_MAX_NR_QUEUES (1U << UBLK_QID_BITS) +#define UBLKSRV_IO_BUF_TOTAL_BITS (UBLK_QID_OFF + UBLK_QID_BITS) +#define UBLKSRV_IO_BUF_TOTAL_SIZE (1ULL << UBLKSRV_IO_BUF_TOTAL_BITS) #define UBLK_F_SUPPORT_ZERO_COPY (1ULL << 0) #define UBLK_F_URING_CMD_COMP_IN_TASK (1ULL << 1) #define UBLK_F_NEED_GET_DATA (1UL << 2) @@ -60,6 +62,8 @@ #define UBLK_F_USER_RECOVERY_REISSUE (1UL << 4) #define UBLK_F_UNPRIVILEGED_DEV (1UL << 5) #define UBLK_F_CMD_IOCTL_ENCODE (1UL << 6) +#define UBLK_F_USER_COPY (1UL << 7) +#define UBLK_F_ZONED (1ULL << 8) #define UBLK_S_DEV_DEAD 0 #define UBLK_S_DEV_LIVE 1 #define UBLK_S_DEV_QUIESCED 2 @@ -95,6 +99,13 @@ struct ublksrv_ctrl_dev_info { #define UBLK_IO_OP_DISCARD 3 #define UBLK_IO_OP_WRITE_SAME 4 #define UBLK_IO_OP_WRITE_ZEROES 5 +#define UBLK_IO_OP_ZONE_OPEN 10 +#define UBLK_IO_OP_ZONE_CLOSE 11 +#define UBLK_IO_OP_ZONE_FINISH 12 +#define UBLK_IO_OP_ZONE_APPEND 13 +#define UBLK_IO_OP_ZONE_RESET_ALL 14 +#define UBLK_IO_OP_ZONE_RESET 15 +#define UBLK_IO_OP_REPORT_ZONES 18 #define UBLK_IO_F_FAILFAST_DEV (1U << 8) #define UBLK_IO_F_FAILFAST_TRANSPORT (1U << 9) #define UBLK_IO_F_FAILFAST_DRIVER (1U << 10) @@ -104,7 +115,10 @@ struct ublksrv_ctrl_dev_info { #define UBLK_IO_F_SWAP (1U << 16) struct ublksrv_io_desc { __u32 op_flags; - __u32 nr_sectors; + union { + __u32 nr_sectors; + __u32 nr_zones; + }; __u64 start_sector; __u64 addr; }; @@ -112,7 +126,10 @@ struct ublksrv_io_cmd { __u16 q_id; __u16 tag; __s32 result; - __u64 addr; + union { + __u64 addr; + __u64 zone_append_lba; + }; }; struct ublk_param_basic { #define UBLK_ATTR_READ_ONLY (1 << 0) @@ -143,14 +160,22 @@ struct ublk_param_devt { __u32 disk_major; __u32 disk_minor; }; +struct ublk_param_zoned { + __u32 max_open_zones; + __u32 max_active_zones; + __u32 max_zone_append_sectors; + __u8 reserved[20]; +}; struct ublk_params { __u32 len; #define UBLK_PARAM_TYPE_BASIC (1 << 0) #define UBLK_PARAM_TYPE_DISCARD (1 << 1) #define UBLK_PARAM_TYPE_DEVT (1 << 2) +#define UBLK_PARAM_TYPE_ZONED (1 << 3) __u32 types; struct ublk_param_basic basic; struct ublk_param_discard discard; struct ublk_param_devt devt; + struct ublk_param_zoned zoned; }; #endif |