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_LINUX_CHIO_H
20 #define _UAPI_LINUX_CHIO_H
21 #define CHET_MT 0
22 #define CHET_ST 1
23 #define CHET_IE 2
24 #define CHET_DT 3
25 #define CHET_V1 4
26 #define CHET_V2 5
27 #define CHET_V3 6
28 #define CHET_V4 7
29 struct changer_params {
30   int cp_curpicker;
31   int cp_npickers;
32   int cp_nslots;
33   int cp_nportals;
34   int cp_ndrives;
35 };
36 struct changer_vendor_params {
37   int cvp_n1;
38   char cvp_label1[16];
39   int cvp_n2;
40   char cvp_label2[16];
41   int cvp_n3;
42   char cvp_label3[16];
43   int cvp_n4;
44   char cvp_label4[16];
45   int reserved[8];
46 };
47 struct changer_move {
48   int cm_fromtype;
49   int cm_fromunit;
50   int cm_totype;
51   int cm_tounit;
52   int cm_flags;
53 };
54 #define CM_INVERT 1
55 struct changer_exchange {
56   int ce_srctype;
57   int ce_srcunit;
58   int ce_fdsttype;
59   int ce_fdstunit;
60   int ce_sdsttype;
61   int ce_sdstunit;
62   int ce_flags;
63 };
64 #define CE_INVERT1 1
65 #define CE_INVERT2 2
66 struct changer_position {
67   int cp_type;
68   int cp_unit;
69   int cp_flags;
70 };
71 #define CP_INVERT 1
72 struct changer_element_status {
73   int ces_type;
74   unsigned char __user * ces_data;
75 };
76 #define CESTATUS_FULL 0x01
77 #define CESTATUS_IMPEXP 0x02
78 #define CESTATUS_EXCEPT 0x04
79 #define CESTATUS_ACCESS 0x08
80 #define CESTATUS_EXENAB 0x10
81 #define CESTATUS_INENAB 0x20
82 struct changer_get_element {
83   int cge_type;
84   int cge_unit;
85   int cge_status;
86   int cge_errno;
87   int cge_srctype;
88   int cge_srcunit;
89   int cge_id;
90   int cge_lun;
91   char cge_pvoltag[36];
92   char cge_avoltag[36];
93   int cge_flags;
94 };
95 #define CGE_ERRNO 0x01
96 #define CGE_INVERT 0x02
97 #define CGE_SRC 0x04
98 #define CGE_IDLUN 0x08
99 #define CGE_PVOLTAG 0x10
100 #define CGE_AVOLTAG 0x20
101 struct changer_set_voltag {
102   int csv_type;
103   int csv_unit;
104   char csv_voltag[36];
105   int csv_flags;
106 };
107 #define CSV_PVOLTAG 0x01
108 #define CSV_AVOLTAG 0x02
109 #define CSV_CLEARTAG 0x04
110 #define CHIOMOVE _IOW('c', 1, struct changer_move)
111 #define CHIOEXCHANGE _IOW('c', 2, struct changer_exchange)
112 #define CHIOPOSITION _IOW('c', 3, struct changer_position)
113 #define CHIOGPICKER _IOR('c', 4, int)
114 #define CHIOSPICKER _IOW('c', 5, int)
115 #define CHIOGPARAMS _IOR('c', 6, struct changer_params)
116 #define CHIOGSTATUS _IOW('c', 8, struct changer_element_status)
117 #define CHIOGELEM _IOW('c', 16, struct changer_get_element)
118 #define CHIOINITELEM _IO('c', 17)
119 #define CHIOSVOLTAG _IOW('c', 18, struct changer_set_voltag)
120 #define CHIOGVPARAMS _IOR('c', 19, struct changer_vendor_params)
121 #endif
122