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