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)
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define UBI_DEV_NUM_AUTO (- 1)
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_MAX_VOLUME_NAME 127
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOC_MAGIC 'o'
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCMKVOL _IOW(UBI_IOC_MAGIC, 0, struct ubi_mkvol_req)
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCRMVOL _IOW(UBI_IOC_MAGIC, 1, __s32)
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCRSVOL _IOW(UBI_IOC_MAGIC, 2, struct ubi_rsvol_req)
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req)
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_CTRL_IOC_MAGIC 'o'
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCATT _IOW(UBI_CTRL_IOC_MAGIC, 64, struct ubi_attach_req)
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCDET _IOW(UBI_CTRL_IOC_MAGIC, 65, __s32)
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_VOL_IOC_MAGIC 'O'
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCVOLUP _IOW(UBI_VOL_IOC_MAGIC, 0, __s64)
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBER _IOW(UBI_VOL_IOC_MAGIC, 1, __s32)
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, __s32)
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req)
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBUNMAP _IOW(UBI_VOL_IOC_MAGIC, 4, __s32)
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_IOCEBISMAP _IOR(UBI_VOL_IOC_MAGIC, 5, __s32)
45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, struct ubi_set_vol_prop_req)
46ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UBI_IOCVOLCRBLK _IOW(UBI_VOL_IOC_MAGIC, 7, struct ubi_blkcreate_req)
47ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UBI_IOCVOLRMBLK _IO(UBI_VOL_IOC_MAGIC, 8)
48ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define MAX_UBI_MTD_NAME_LEN 127
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UBI_MAX_RNVOL 32
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  UBI_DYNAMIC_VOLUME = 3,
53ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  UBI_STATIC_VOLUME = 4,
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  UBI_VOL_PROP_DIRECT_WRITE = 1,
58ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_attach_req {
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 ubi_num;
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 mtd_num;
63ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 vid_hdr_offset;
65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s16 max_beb_per1024;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding[10];
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
68ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_mkvol_req {
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 vol_id;
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 alignment;
72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s64 bytes;
73ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 vol_type;
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding1;
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s16 name_len;
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding2[4];
78ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char name[UBI_MAX_VOLUME_NAME + 1];
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed;
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_rsvol_req {
82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s64 bytes;
83ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 vol_id;
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed;
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_rnvol_req {
87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 count;
88ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding1[12];
90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct {
91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __s32 vol_id;
92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __s16 name_len;
93ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __s8 padding2[2];
95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    char name[UBI_MAX_VOLUME_NAME + 1];
96d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } ents[UBI_MAX_RNVOL];
97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed;
98ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_leb_change_req {
100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 lnum;
101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 bytes;
102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 dtype;
103ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding[7];
105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed;
106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_map_req {
107d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 lnum;
108ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 dtype;
110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding[3];
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed;
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ubi_set_vol_prop_req {
113ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 property;
115d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 padding[7];
116d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u64 value;
117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __packed;
118ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct ubi_blkcreate_req {
120d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 padding[128];
121ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __packed;
122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
123ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124