1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _UAPI_BLKZONED_H 20 #define _UAPI_BLKZONED_H 21 #include <linux/types.h> 22 #include <linux/ioctl.h> 23 enum blk_zone_type { 24 BLK_ZONE_TYPE_CONVENTIONAL = 0x1, 25 BLK_ZONE_TYPE_SEQWRITE_REQ = 0x2, 26 BLK_ZONE_TYPE_SEQWRITE_PREF = 0x3, 27 }; 28 enum blk_zone_cond { 29 BLK_ZONE_COND_NOT_WP = 0x0, 30 BLK_ZONE_COND_EMPTY = 0x1, 31 BLK_ZONE_COND_IMP_OPEN = 0x2, 32 BLK_ZONE_COND_EXP_OPEN = 0x3, 33 BLK_ZONE_COND_CLOSED = 0x4, 34 BLK_ZONE_COND_READONLY = 0xD, 35 BLK_ZONE_COND_FULL = 0xE, 36 BLK_ZONE_COND_OFFLINE = 0xF, 37 }; 38 struct blk_zone { 39 __u64 start; 40 __u64 len; 41 __u64 wp; 42 __u8 type; 43 __u8 cond; 44 __u8 non_seq; 45 __u8 reset; 46 __u8 reserved[36]; 47 }; 48 struct blk_zone_report { 49 __u64 sector; 50 __u32 nr_zones; 51 __u8 reserved[4]; 52 struct blk_zone zones[0]; 53 }; 54 struct blk_zone_range { 55 __u64 sector; 56 __u64 nr_sectors; 57 }; 58 #define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report) 59 #define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range) 60 #define BLKGETZONESZ _IOR(0x12, 132, __u32) 61 #define BLKGETNRZONES _IOR(0x12, 133, __u32) 62 #define BLKOPENZONE _IOW(0x12, 134, struct blk_zone_range) 63 #define BLKCLOSEZONE _IOW(0x12, 135, struct blk_zone_range) 64 #define BLKFINISHZONE _IOW(0x12, 136, struct blk_zone_range) 65 #endif 66