• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2012, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15 */
16 
17 #ifndef _IOCTLS_PORTABLE_H_
18 #define _IOCTLS_PORTABLE_H_
19 
20 /* Derived from development/ndk/platforms/android-3/include/asm-generic/ioctl.h */
21 
22 #define _IOC_NRBITS_PORTABLE 8
23 #define _IOC_TYPEBITS_PORTABLE 8
24 #define _IOC_SIZEBITS_PORTABLE 14
25 #define _IOC_DIRBITS_PORTABLE 2
26 
27 #define _IOC_NRMASK_PORTABLE ((1 << _IOC_NRBITS_PORTABLE)-1)
28 #define _IOC_TYPEMASK_PORTABLE ((1 << _IOC_TYPEBITS_PORTABLE)-1)
29 #define _IOC_SIZEMASK_PORTABLE ((1 << _IOC_SIZEBITS_PORTABLE)-1)
30 #define _IOC_DIRMASK_PORTABLE ((1 << _IOC_DIRBITS_PORTABLE)-1)
31 
32 #define _IOC_NRSHIFT_PORTABLE 0
33 #define _IOC_TYPESHIFT_PORTABLE (_IOC_NRSHIFT_PORTABLE+_IOC_NRBITS_PORTABLE)
34 #define _IOC_SIZESHIFT_PORTABLE (_IOC_TYPESHIFT_PORTABLE+_IOC_TYPEBITS_PORTABLE)
35 #define _IOC_DIRSHIFT_PORTABLE (_IOC_SIZESHIFT_PORTABLE+_IOC_SIZEBITS_PORTABLE)
36 
37 #define _IOC_NONE_PORTABLE 0U
38 #define _IOC_WRITE_PORTABLE 1U
39 #define _IOC_READ_PORTABLE 2U
40 
41 #define _IOC_PORTABLE(dir,type,nr,size)   (((dir) << _IOC_DIRSHIFT_PORTABLE) |   ((type) << _IOC_TYPESHIFT_PORTABLE) |   ((nr) << _IOC_NRSHIFT_PORTABLE) |   ((size) << _IOC_SIZESHIFT_PORTABLE))
42 
43 extern unsigned int __invalid_size_argument_for_IOC;
44 #define _IOC_TYPECHECK_PORTABLE(t)   ((sizeof(t) == sizeof(t[1]) &&   sizeof(t) < (1 << _IOC_SIZEBITS_PORTABLE)) ?   sizeof(t) : __invalid_size_argument_for_IOC)
45 
46 #define _IO_PORTABLE(type,nr) _IOC_PORTABLE(_IOC_NONE_PORTABLE,(type),(nr),0)
47 #define _IOR_PORTABLE(type,nr,size) _IOC_PORTABLE(_IOC_READ_PORTABLE,(type),(nr),(_IOC_TYPECHECK_PORTABLE(size)))
48 #define _IOW_PORTABLE(type,nr,size) _IOC_PORTABLE(_IOC_WRITE_PORTABLE,(type),(nr),(_IOC_TYPECHECK_PORTABLE(size)))
49 #define _IOWR_PORTABLE(type,nr,size) _IOC_PORTABLE(_IOC_READ_PORTABLE|_IOC_WRITE_PORTABLE,(type),(nr),(_IOC_TYPECHECK_PORTABLE(size)))
50 
51 /* Derived from development/ndk/platforms/android-3/arch-arm/include/asm/ioctls.h */
52 
53 #define TCGETS_PORTABLE     0x5401
54 #define TCSETS_PORTABLE     0x5402
55 #define TCSETSW_PORTABLE    0x5403
56 #define TCSETSF_PORTABLE    0x5404
57 #define TCGETA_PORTABLE     0x5405
58 #define TCSETA_PORTABLE     0x5406
59 #define TCSETAW_PORTABLE    0x5407
60 #define TCSETAF_PORTABLE    0x5408
61 #define TCSBRK_PORTABLE     0x5409
62 #define TCXONC_PORTABLE     0x540A
63 #define TCFLSH_PORTABLE     0x540B
64 #define TIOCEXCL_PORTABLE   0x540C
65 #define TIOCNXCL_PORTABLE   0x540D
66 #define TIOCSCTTY_PORTABLE  0x540E
67 #define TIOCGPGRP_PORTABLE  0x540F
68 #define TIOCSPGRP_PORTABLE  0x5410
69 #define TIOCOUTQ_PORTABLE   0x5411
70 #define TIOCSTI_PORTABLE    0x5412
71 #define TIOCGWINSZ_PORTABLE 0x5413
72 #define TIOCSWINSZ_PORTABLE 0x5414
73 #define TIOCMGET_PORTABLE   0x5415
74 #define TIOCMBIS_PORTABLE   0x5416
75 #define TIOCMBIC_PORTABLE   0x5417
76 #define TIOCMSET_PORTABLE   0x5418
77 #define TIOCGSOFTCAR_PORTABLE   0x5419
78 #define TIOCSSOFTCAR_PORTABLE   0x541A
79 #define FIONREAD_PORTABLE   0x541B
80 #define TIOCINQ_PORTABLE    FIONREAD_PORTABLE
81 #define TIOCLINUX_PORTABLE  0x541C
82 #define TIOCCONS_PORTABLE   0x541D
83 #define TIOCGSERIAL_PORTABLE    0x541E
84 #define TIOCSSERIAL_PORTABLE    0x541F
85 #define TIOCPKT_PORTABLE    0x5420
86 #define FIONBIO_PORTABLE    0x5421
87 #define TIOCNOTTY_PORTABLE  0x5422
88 #define TIOCSETD_PORTABLE   0x5423
89 #define TIOCGETD_PORTABLE   0x5424
90 #define TCSBRKP_PORTABLE    0x5425
91 #define TIOCSBRK_PORTABLE   0x5427
92 #define TIOCCBRK_PORTABLE   0x5428
93 #define TIOCGSID_PORTABLE   0x5429
94 #define TIOCGPTN_PORTABLE _IOR_PORTABLE('T',0x30, unsigned int)
95 #define TIOCSPTLCK_PORTABLE _IOW_PORTABLE('T',0x31, int)
96 
97 #define FIONCLEX_PORTABLE   0x5450
98 #define FIOCLEX_PORTABLE    0x5451
99 #define FIOASYNC_PORTABLE   0x5452
100 #define TIOCSERCONFIG_PORTABLE  0x5453
101 #define TIOCSERGWILD_PORTABLE   0x5454
102 #define TIOCSERSWILD_PORTABLE   0x5455
103 #define TIOCGLCKTRMIOS_PORTABLE 0x5456
104 #define TIOCSLCKTRMIOS_PORTABLE 0x5457
105 #define TIOCSERGSTRUCT_PORTABLE 0x5458
106 #define TIOCSERGETLSR_PORTABLE  0x5459
107 #define TIOCSERGETMULTI_PORTABLE 0x545A
108 #define TIOCSERSETMULTI_PORTABLE 0x545B
109 
110 #define TIOCMIWAIT_PORTABLE     0x545C
111 #define TIOCGICOUNT_PORTABLE    0x545D
112 #define FIOQSIZE_PORTABLE       0x545E /* x86 differs here */
113 
114 #define TIOCPKT_DATA_PORTABLE       0
115 #define TIOCPKT_FLUSHREAD_PORTABLE  1
116 #define TIOCPKT_FLUSHWRITE_PORTABLE 2
117 #define TIOCPKT_STOP_PORTABLE       4
118 #define TIOCPKT_START_PORTABLE      8
119 #define TIOCPKT_NOSTOP_PORTABLE     16
120 #define TIOCPKT_DOSTOP_PORTABLE     32
121 
122 #define TIOCSER_TEMT_PORTABLE   0x01
123 
124 /* Derived from development/ndk/platforms/android-3/include/sys/ioctl_compat.h */
125 
126 struct tchars_portable {
127         char    t_intrc;        /* interrupt */
128         char    t_quitc;        /* quit */
129         char    t_startc;       /* start output */
130         char    t_stopc;        /* stop output */
131         char    t_eofc;         /* end-of-file */
132         char    t_brkc;         /* input delimiter (like nl) */
133 };
134 
135 struct ltchars_portable {
136         char    t_suspc;        /* stop process signal */
137         char    t_dsuspc;       /* delayed stop process signal */
138         char    t_rprntc;       /* reprint line */
139         char    t_flushc;       /* flush output (toggles) */
140         char    t_werasc;       /* word erase */
141         char    t_lnextc;       /* literal next character */
142 };
143 
144 struct sgttyb_portable {
145         char    sg_ispeed;              /* input speed */
146         char    sg_ospeed;              /* output speed */
147         char    sg_erase;               /* erase character */
148         char    sg_kill;                /* kill character */
149         short   sg_flags;               /* mode flags */
150 };
151 
152 #ifdef USE_OLD_TTY
153 # define TIOCGETD_PORTABLE   _IOR_PORTABLE('t', 0, int)       /* get line discipline */
154 # define TIOCSETD_PORTABLE   _IOW_PORTABLE('t', 1, int)       /* set line discipline */
155 #else
156 # define OTIOCGETD_PORTABLE  _IOR_PORTABLE('t', 0, int)       /* get line discipline */
157 # define OTIOCSETD_PORTABLE  _IOW_PORTABLE('t', 1, int)       /* set line discipline */
158 #endif
159 #define TIOCHPCL_PORTABLE    _IO_PORTABLE('t', 2)             /* hang up on last close */
160 #define TIOCGETP_PORTABLE    _IOR_PORTABLE('t', 8,struct sgttyb_portable)/* get parameters -- gtty */
161 #define TIOCSETP_PORTABLE    _IOW_PORTABLE('t', 9,struct sgttyb_portable)/* set parameters -- stty */
162 #define TIOCSETN_PORTABLE    _IOW_PORTABLE('t',10,struct sgttyb_portable)/* as above, but no flushtty*/
163 #define TIOCSETC_PORTABLE    _IOW_PORTABLE('t',17,struct tchars_portable)/* set special characters */
164 #define TIOCGETC_PORTABLE    _IOR_PORTABLE('t',18,struct tchars_portable)/* get special characters */
165 
166 #define TIOCLBIS_PORTABLE    _IOW_PORTABLE('t', 127, int)     /* bis local mode bits */
167 #define TIOCLBIC_PORTABLE    _IOW_PORTABLE('t', 126, int)     /* bic local mode bits */
168 #define TIOCLSET_PORTABLE    _IOW_PORTABLE('t', 125, int)     /* set entire local mode word */
169 #define TIOCLGET_PORTABLE    _IOR_PORTABLE('t', 124, int)     /* get local modes */
170 #define TIOCSLTC_PORTABLE    _IOW_PORTABLE('t',117,struct ltchars_portable)/* set local special chars*/
171 #define TIOCGLTC_PORTABLE    _IOR_PORTABLE('t',116,struct ltchars_portable)/* get local special chars*/
172 #define OTIOCCONS_PORTABLE   _IO_PORTABLE('t', 98)    /* for hp300 -- sans int arg */
173 
174 /* Derived from development/ndk/platforms/android-3/arch-arm/include/asm/sockios.h */
175 
176 #define FIOSETOWN_PORTABLE 0x8901
177 #define SIOCSPGRP_PORTABLE 0x8902
178 #define FIOGETOWN_PORTABLE 0x8903
179 #define SIOCGPGRP_PORTABLE 0x8904
180 #define SIOCATMARK_PORTABLE 0x8905
181 #define SIOCGSTAMP_PORTABLE 0x8906
182 
183 #endif /* _IOCTLS_PORTABLE_H */
184