1 /* 2 * Copyright (c) 2006-2018, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 /* 8 * File : libc_ioctl.h 9 * 10 * Change Logs: 11 * Date Author Notes 12 * 2017-01-21 Bernard the first version 13 */ 14 15 #ifndef LIBC_IOCTL_H__ 16 #define LIBC_IOCTL_H__ 17 18 #define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) 19 #define _IOC_NONE 0U 20 #define _IOC_WRITE 1U 21 #define _IOC_READ 2U 22 23 #ifndef _WIN32 24 #define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) 25 #define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) 26 #define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) 27 #define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) 28 29 #define FIONREAD _IOR('f', 127, int) /* get # bytes to read */ 30 #define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */ 31 #define FIONWRITE _IOR('f', 121, int) /* get # bytes outstanding 32 * in send queue. */ 33 #endif 34 35 #define TCGETS 0x5401 36 #define TCSETS 0x5402 37 #define TCSETSW 0x5403 38 #define TCSETSF 0x5404 39 #define TCGETA 0x5405 40 #define TCSETA 0x5406 41 #define TCSETAW 0x5407 42 #define TCSETAF 0x5408 43 #define TCSBRK 0x5409 44 #define TCXONC 0x540A 45 #define TCFLSH 0x540B 46 #define TIOCEXCL 0x540C 47 #define TIOCNXCL 0x540D 48 #define TIOCSCTTY 0x540E 49 #define TIOCGPGRP 0x540F 50 #define TIOCSPGRP 0x5410 51 #define TIOCOUTQ 0x5411 52 #define TIOCSTI 0x5412 53 #define TIOCGWINSZ 0x5413 54 #define TIOCSWINSZ 0x5414 55 #define TIOCMGET 0x5415 56 #define TIOCMBIS 0x5416 57 #define TIOCMBIC 0x5417 58 #define TIOCMSET 0x5418 59 #define TIOCGSOFTCAR 0x5419 60 #define TIOCSSOFTCAR 0x541A 61 // #define FIONREAD 0x541B 62 #define TIOCINQ FIONREAD 63 #define TIOCLINUX 0x541C 64 #define TIOCCONS 0x541D 65 #define TIOCGSERIAL 0x541E 66 #define TIOCSSERIAL 0x541F 67 #define TIOCPKT 0x5420 68 // #define FIONBIO 0x5421 69 #define TIOCNOTTY 0x5422 70 #define TIOCSETD 0x5423 71 #define TIOCGETD 0x5424 72 #define TCSBRKP 0x5425 73 #define TIOCSBRK 0x5427 74 #define TIOCCBRK 0x5428 75 #define TIOCGSID 0x5429 76 #define TIOCGRS485 0x542E 77 #define TIOCSRS485 0x542F 78 #define TIOCGPTN 0x80045430 79 #define TIOCSPTLCK 0x40045431 80 #define TIOCGDEV 0x80045432 81 #define TCGETX 0x5432 82 #define TCSETX 0x5433 83 #define TCSETXF 0x5434 84 #define TCSETXW 0x5435 85 #define TIOCSIG 0x40045436 86 #define TIOCVHANGUP 0x5437 87 #define TIOCGPKT 0x80045438 88 #define TIOCGPTLCK 0x80045439 89 #define TIOCGEXCL 0x80045440 90 91 #define FIONCLEX 0x5450 92 #define FIOCLEX 0x5451 93 94 #ifndef _WIN32 95 #define FIOASYNC 0x5452 96 #endif 97 98 #define TIOCSERCONFIG 0x5453 99 #define TIOCSERGWILD 0x5454 100 #define TIOCSERSWILD 0x5455 101 #define TIOCGLCKTRMIOS 0x5456 102 #define TIOCSLCKTRMIOS 0x5457 103 #define TIOCSERGSTRUCT 0x5458 104 #define TIOCSERGETLSR 0x5459 105 #define TIOCSERGETMULTI 0x545A 106 #define TIOCSERSETMULTI 0x545B 107 108 #define TIOCMIWAIT 0x545C 109 #define TIOCGICOUNT 0x545D 110 #define FIOQSIZE 0x5460 111 112 #define TIOCPKT_DATA 0 113 #define TIOCPKT_FLUSHREAD 1 114 #define TIOCPKT_FLUSHWRITE 2 115 #define TIOCPKT_STOP 4 116 #define TIOCPKT_START 8 117 #define TIOCPKT_NOSTOP 16 118 #define TIOCPKT_DOSTOP 32 119 #define TIOCPKT_IOCTL 64 120 121 #define TIOCSER_TEMT 0x01 122 123 struct winsize { 124 unsigned short ws_row; 125 unsigned short ws_col; 126 unsigned short ws_xpixel; 127 unsigned short ws_ypixel; 128 }; 129 130 #define TIOCM_LE 0x001 131 #define TIOCM_DTR 0x002 132 #define TIOCM_RTS 0x004 133 #define TIOCM_ST 0x008 134 #define TIOCM_SR 0x010 135 #define TIOCM_CTS 0x020 136 #define TIOCM_CAR 0x040 137 #define TIOCM_RNG 0x080 138 #define TIOCM_DSR 0x100 139 #define TIOCM_CD TIOCM_CAR 140 #define TIOCM_RI TIOCM_RNG 141 #define TIOCM_OUT1 0x2000 142 #define TIOCM_OUT2 0x4000 143 #define TIOCM_LOOP 0x8000 144 145 #define N_TTY 0 146 #define N_SLIP 1 147 #define N_MOUSE 2 148 #define N_PPP 3 149 #define N_STRIP 4 150 #define N_AX25 5 151 #define N_X25 6 152 #define N_6PACK 7 153 #define N_MASC 8 154 #define N_R3964 9 155 #define N_PROFIBUS_FDL 10 156 #define N_IRDA 11 157 #define N_SMSBLOCK 12 158 #define N_HDLC 13 159 #define N_SYNC_PPP 14 160 #define N_HCI 15 161 162 #define FIOSETOWN 0x8901 163 #define SIOCSPGRP 0x8902 164 #define FIOGETOWN 0x8903 165 #define SIOCGPGRP 0x8904 166 // #define SIOCATMARK 0x8905 167 #define SIOCGSTAMP 0x8906 168 #define SIOCGSTAMPNS 0x8907 169 170 #define SIOCADDRT 0x890B 171 #define SIOCDELRT 0x890C 172 #define SIOCRTMSG 0x890D 173 174 #define SIOCGIFNAME 0x8910 175 #define SIOCSIFLINK 0x8911 176 #define SIOCGIFCONF 0x8912 177 #define SIOCGIFFLAGS 0x8913 178 #define SIOCSIFFLAGS 0x8914 179 #define SIOCGIFADDR 0x8915 180 #define SIOCSIFADDR 0x8916 181 #define SIOCGIFDSTADDR 0x8917 182 #define SIOCSIFDSTADDR 0x8918 183 #define SIOCGIFBRDADDR 0x8919 184 #define SIOCSIFBRDADDR 0x891a 185 #define SIOCGIFNETMASK 0x891b 186 #define SIOCSIFNETMASK 0x891c 187 #define SIOCGIFMETRIC 0x891d 188 #define SIOCSIFMETRIC 0x891e 189 #define SIOCGIFMEM 0x891f 190 #define SIOCSIFMEM 0x8920 191 #define SIOCGIFMTU 0x8921 192 #define SIOCSIFMTU 0x8922 193 #define SIOCSIFNAME 0x8923 194 #define SIOCSIFHWADDR 0x8924 195 #define SIOCGIFENCAP 0x8925 196 #define SIOCSIFENCAP 0x8926 197 #define SIOCGIFHWADDR 0x8927 198 #define SIOCGIFSLAVE 0x8929 199 #define SIOCSIFSLAVE 0x8930 200 #define SIOCADDMULTI 0x8931 201 #define SIOCDELMULTI 0x8932 202 #define SIOCGIFINDEX 0x8933 203 #define SIOGIFINDEX SIOCGIFINDEX 204 #define SIOCSIFPFLAGS 0x8934 205 #define SIOCGIFPFLAGS 0x8935 206 #define SIOCDIFADDR 0x8936 207 #define SIOCSIFHWBROADCAST 0x8937 208 #define SIOCGIFCOUNT 0x8938 209 210 #define SIOCGIFBR 0x8940 211 #define SIOCSIFBR 0x8941 212 213 #define SIOCGIFTXQLEN 0x8942 214 #define SIOCSIFTXQLEN 0x8943 215 216 #define SIOCDARP 0x8953 217 #define SIOCGARP 0x8954 218 #define SIOCSARP 0x8955 219 220 #define SIOCDRARP 0x8960 221 #define SIOCGRARP 0x8961 222 #define SIOCSRARP 0x8962 223 224 #define SIOCGIFMAP 0x8970 225 #define SIOCSIFMAP 0x8971 226 227 #define SIOCADDDLCI 0x8980 228 #define SIOCDELDLCI 0x8981 229 230 #define SIOCDEVPRIVATE 0x89F0 231 #define SIOCPROTOPRIVATE 0x89E0 232 233 #endif 234 235