1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __UBI_USER_H__ 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __UBI_USER_H__ 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 22d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define UBI_VOL_NUM_AUTO (- 1) 23d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define UBI_DEV_NUM_AUTO (- 1) 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_MAX_VOLUME_NAME 127 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOC_MAGIC 'o' 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCMKVOL _IOW(UBI_IOC_MAGIC, 0, struct ubi_mkvol_req) 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCRMVOL _IOW(UBI_IOC_MAGIC, 1, __s32) 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCRSVOL _IOW(UBI_IOC_MAGIC, 2, struct ubi_rsvol_req) 29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req) 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_CTRL_IOC_MAGIC 'o' 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCATT _IOW(UBI_CTRL_IOC_MAGIC, 64, struct ubi_attach_req) 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCDET _IOW(UBI_CTRL_IOC_MAGIC, 65, __s32) 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_VOL_IOC_MAGIC 'O' 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCVOLUP _IOW(UBI_VOL_IOC_MAGIC, 0, __s64) 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBER _IOW(UBI_VOL_IOC_MAGIC, 1, __s32) 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, __s32) 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req) 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBUNMAP _IOW(UBI_VOL_IOC_MAGIC, 4, __s32) 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBISMAP _IOR(UBI_VOL_IOC_MAGIC, 5, __s32) 40d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, struct ubi_set_vol_prop_req) 41ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UBI_IOCVOLCRBLK _IOW(UBI_VOL_IOC_MAGIC, 7, struct ubi_blkcreate_req) 42ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UBI_IOCVOLRMBLK _IO(UBI_VOL_IOC_MAGIC, 8) 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define MAX_UBI_MTD_NAME_LEN 127 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_MAX_RNVOL 32 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao UBI_DYNAMIC_VOLUME = 3, 47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao UBI_STATIC_VOLUME = 4, 48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao UBI_VOL_PROP_DIRECT_WRITE = 1, 51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_attach_req { 53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 ubi_num; 54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 mtd_num; 55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 vid_hdr_offset; 56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s16 max_beb_per1024; 57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding[10]; 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_mkvol_req { 60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 vol_id; 61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 alignment; 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s64 bytes; 63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 vol_type; 64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding1; 65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s16 name_len; 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding2[4]; 67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao char name[UBI_MAX_VOLUME_NAME + 1]; 68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed; 69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_rsvol_req { 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s64 bytes; 71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 vol_id; 72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed; 73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_rnvol_req { 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 count; 75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding1[12]; 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct { 77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 vol_id; 78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s16 name_len; 79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding2[2]; 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao char name[UBI_MAX_VOLUME_NAME + 1]; 81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao } ents[UBI_MAX_RNVOL]; 82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed; 83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_leb_change_req { 84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 lnum; 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 bytes; 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 dtype; 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding[7]; 88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed; 89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_map_req { 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 lnum; 91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 dtype; 92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding[3]; 93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed; 94655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_set_vol_prop_req { 95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 property; 96d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 padding[7]; 97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 value; 98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed; 99ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct ubi_blkcreate_req { 100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s8 padding[128]; 101ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __packed; 102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 103