235 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2006-2018, RT-Thread Development Team
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: Apache-2.0
 | 
						|
 */
 | 
						|
 | 
						|
/*
 | 
						|
 * File      : libc_ioctl.h
 | 
						|
 *
 | 
						|
 * Change Logs:
 | 
						|
 * Date           Author       Notes
 | 
						|
 * 2017-01-21     Bernard      the first version
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef LIBC_IOCTL_H__
 | 
						|
#define LIBC_IOCTL_H__
 | 
						|
 | 
						|
#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
 | 
						|
#define _IOC_NONE  0U
 | 
						|
#define _IOC_WRITE 1U
 | 
						|
#define _IOC_READ  2U
 | 
						|
 | 
						|
#ifndef _WIN32
 | 
						|
#define _IO(a,b)    _IOC(_IOC_NONE,(a),(b),0)
 | 
						|
#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
 | 
						|
#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
 | 
						|
#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
 | 
						|
 | 
						|
#define FIONREAD    _IOR('f', 127, int) /* get # bytes to read */
 | 
						|
#define FIONBIO     _IOW('f', 126, int) /* set/clear non-blocking i/o */
 | 
						|
#define FIONWRITE   _IOR('f', 121, int) /* get # bytes outstanding
 | 
						|
                         * in send queue. */
 | 
						|
#endif
 | 
						|
 | 
						|
#define TCGETS		0x5401
 | 
						|
#define TCSETS		0x5402
 | 
						|
#define TCSETSW		0x5403
 | 
						|
#define TCSETSF		0x5404
 | 
						|
#define TCGETA		0x5405
 | 
						|
#define TCSETA		0x5406
 | 
						|
#define TCSETAW		0x5407
 | 
						|
#define TCSETAF		0x5408
 | 
						|
#define TCSBRK		0x5409
 | 
						|
#define TCXONC		0x540A
 | 
						|
#define TCFLSH		0x540B
 | 
						|
#define TIOCEXCL	0x540C
 | 
						|
#define TIOCNXCL	0x540D
 | 
						|
#define TIOCSCTTY	0x540E
 | 
						|
#define TIOCGPGRP	0x540F
 | 
						|
#define TIOCSPGRP	0x5410
 | 
						|
#define TIOCOUTQ	0x5411
 | 
						|
#define TIOCSTI		0x5412
 | 
						|
#define TIOCGWINSZ	0x5413
 | 
						|
#define TIOCSWINSZ	0x5414
 | 
						|
#define TIOCMGET	0x5415
 | 
						|
#define TIOCMBIS	0x5416
 | 
						|
#define TIOCMBIC	0x5417
 | 
						|
#define TIOCMSET	0x5418
 | 
						|
#define TIOCGSOFTCAR	0x5419
 | 
						|
#define TIOCSSOFTCAR	0x541A
 | 
						|
// #define FIONREAD	0x541B
 | 
						|
#define TIOCINQ		FIONREAD
 | 
						|
#define TIOCLINUX	0x541C
 | 
						|
#define TIOCCONS	0x541D
 | 
						|
#define TIOCGSERIAL	0x541E
 | 
						|
#define TIOCSSERIAL	0x541F
 | 
						|
#define TIOCPKT		0x5420
 | 
						|
// #define FIONBIO		0x5421
 | 
						|
#define TIOCNOTTY	0x5422
 | 
						|
#define TIOCSETD	0x5423
 | 
						|
#define TIOCGETD	0x5424
 | 
						|
#define TCSBRKP		0x5425
 | 
						|
#define TIOCSBRK	0x5427
 | 
						|
#define TIOCCBRK	0x5428
 | 
						|
#define TIOCGSID	0x5429
 | 
						|
#define TIOCGRS485	0x542E
 | 
						|
#define TIOCSRS485	0x542F
 | 
						|
#define TIOCGPTN	0x80045430
 | 
						|
#define TIOCSPTLCK	0x40045431
 | 
						|
#define TIOCGDEV	0x80045432
 | 
						|
#define TCGETX		0x5432
 | 
						|
#define TCSETX		0x5433
 | 
						|
#define TCSETXF		0x5434
 | 
						|
#define TCSETXW		0x5435
 | 
						|
#define TIOCSIG		0x40045436
 | 
						|
#define TIOCVHANGUP	0x5437
 | 
						|
#define TIOCGPKT	0x80045438
 | 
						|
#define TIOCGPTLCK	0x80045439
 | 
						|
#define TIOCGEXCL	0x80045440
 | 
						|
 | 
						|
#define FIONCLEX	0x5450
 | 
						|
#define FIOCLEX		0x5451
 | 
						|
 | 
						|
#ifndef _WIN32
 | 
						|
#define FIOASYNC	0x5452
 | 
						|
#endif
 | 
						|
 | 
						|
#define TIOCSERCONFIG	0x5453
 | 
						|
#define TIOCSERGWILD	0x5454
 | 
						|
#define TIOCSERSWILD	0x5455
 | 
						|
#define TIOCGLCKTRMIOS	0x5456
 | 
						|
#define TIOCSLCKTRMIOS	0x5457
 | 
						|
#define TIOCSERGSTRUCT	0x5458
 | 
						|
#define TIOCSERGETLSR   0x5459
 | 
						|
#define TIOCSERGETMULTI 0x545A
 | 
						|
#define TIOCSERSETMULTI 0x545B
 | 
						|
 | 
						|
#define TIOCMIWAIT	0x545C
 | 
						|
#define TIOCGICOUNT	0x545D
 | 
						|
#define FIOQSIZE	0x5460
 | 
						|
 | 
						|
#define TIOCPKT_DATA		 0
 | 
						|
#define TIOCPKT_FLUSHREAD	 1
 | 
						|
#define TIOCPKT_FLUSHWRITE	 2
 | 
						|
#define TIOCPKT_STOP		 4
 | 
						|
#define TIOCPKT_START		 8
 | 
						|
#define TIOCPKT_NOSTOP		16
 | 
						|
#define TIOCPKT_DOSTOP		32
 | 
						|
#define TIOCPKT_IOCTL		64
 | 
						|
 | 
						|
#define TIOCSER_TEMT    0x01
 | 
						|
 | 
						|
struct winsize {
 | 
						|
	unsigned short ws_row;
 | 
						|
	unsigned short ws_col;
 | 
						|
	unsigned short ws_xpixel;
 | 
						|
	unsigned short ws_ypixel;
 | 
						|
};
 | 
						|
 | 
						|
#define TIOCM_LE        0x001
 | 
						|
#define TIOCM_DTR       0x002
 | 
						|
#define TIOCM_RTS       0x004
 | 
						|
#define TIOCM_ST        0x008
 | 
						|
#define TIOCM_SR        0x010
 | 
						|
#define TIOCM_CTS       0x020
 | 
						|
#define TIOCM_CAR       0x040
 | 
						|
#define TIOCM_RNG       0x080
 | 
						|
#define TIOCM_DSR       0x100
 | 
						|
#define TIOCM_CD        TIOCM_CAR
 | 
						|
#define TIOCM_RI        TIOCM_RNG
 | 
						|
#define TIOCM_OUT1      0x2000
 | 
						|
#define TIOCM_OUT2      0x4000
 | 
						|
#define TIOCM_LOOP      0x8000
 | 
						|
 | 
						|
#define N_TTY           0
 | 
						|
#define N_SLIP          1
 | 
						|
#define N_MOUSE         2
 | 
						|
#define N_PPP           3
 | 
						|
#define N_STRIP         4
 | 
						|
#define N_AX25          5
 | 
						|
#define N_X25           6
 | 
						|
#define N_6PACK         7
 | 
						|
#define N_MASC          8
 | 
						|
#define N_R3964         9
 | 
						|
#define N_PROFIBUS_FDL  10
 | 
						|
#define N_IRDA          11
 | 
						|
#define N_SMSBLOCK      12
 | 
						|
#define N_HDLC          13
 | 
						|
#define N_SYNC_PPP      14
 | 
						|
#define N_HCI           15
 | 
						|
 | 
						|
#define FIOSETOWN       0x8901
 | 
						|
#define SIOCSPGRP       0x8902
 | 
						|
#define FIOGETOWN       0x8903
 | 
						|
#define SIOCGPGRP       0x8904
 | 
						|
// #define SIOCATMARK      0x8905
 | 
						|
#define SIOCGSTAMP      0x8906
 | 
						|
#define SIOCGSTAMPNS    0x8907
 | 
						|
 | 
						|
#define SIOCADDRT       0x890B
 | 
						|
#define SIOCDELRT       0x890C
 | 
						|
#define SIOCRTMSG       0x890D
 | 
						|
 | 
						|
#define SIOCGIFNAME     0x8910
 | 
						|
#define SIOCSIFLINK     0x8911
 | 
						|
#define SIOCGIFCONF     0x8912
 | 
						|
#define SIOCGIFFLAGS    0x8913
 | 
						|
#define SIOCSIFFLAGS    0x8914
 | 
						|
#define SIOCGIFADDR     0x8915
 | 
						|
#define SIOCSIFADDR     0x8916
 | 
						|
#define SIOCGIFDSTADDR  0x8917
 | 
						|
#define SIOCSIFDSTADDR  0x8918
 | 
						|
#define SIOCGIFBRDADDR  0x8919
 | 
						|
#define SIOCSIFBRDADDR  0x891a
 | 
						|
#define SIOCGIFNETMASK  0x891b
 | 
						|
#define SIOCSIFNETMASK  0x891c
 | 
						|
#define SIOCGIFMETRIC   0x891d
 | 
						|
#define SIOCSIFMETRIC   0x891e
 | 
						|
#define SIOCGIFMEM      0x891f
 | 
						|
#define SIOCSIFMEM      0x8920
 | 
						|
#define SIOCGIFMTU      0x8921
 | 
						|
#define SIOCSIFMTU      0x8922
 | 
						|
#define SIOCSIFNAME     0x8923
 | 
						|
#define SIOCSIFHWADDR   0x8924
 | 
						|
#define SIOCGIFENCAP    0x8925
 | 
						|
#define SIOCSIFENCAP    0x8926
 | 
						|
#define SIOCGIFHWADDR   0x8927
 | 
						|
#define SIOCGIFSLAVE    0x8929
 | 
						|
#define SIOCSIFSLAVE    0x8930
 | 
						|
#define SIOCADDMULTI    0x8931
 | 
						|
#define SIOCDELMULTI    0x8932
 | 
						|
#define SIOCGIFINDEX    0x8933
 | 
						|
#define SIOGIFINDEX     SIOCGIFINDEX
 | 
						|
#define SIOCSIFPFLAGS   0x8934
 | 
						|
#define SIOCGIFPFLAGS   0x8935
 | 
						|
#define SIOCDIFADDR     0x8936
 | 
						|
#define SIOCSIFHWBROADCAST 0x8937
 | 
						|
#define SIOCGIFCOUNT    0x8938
 | 
						|
 | 
						|
#define SIOCGIFBR       0x8940
 | 
						|
#define SIOCSIFBR       0x8941
 | 
						|
 | 
						|
#define SIOCGIFTXQLEN   0x8942
 | 
						|
#define SIOCSIFTXQLEN   0x8943
 | 
						|
 | 
						|
#define SIOCDARP        0x8953
 | 
						|
#define SIOCGARP        0x8954
 | 
						|
#define SIOCSARP        0x8955
 | 
						|
 | 
						|
#define SIOCDRARP       0x8960
 | 
						|
#define SIOCGRARP       0x8961
 | 
						|
#define SIOCSRARP       0x8962
 | 
						|
 | 
						|
#define SIOCGIFMAP      0x8970
 | 
						|
#define SIOCSIFMAP      0x8971
 | 
						|
 | 
						|
#define SIOCADDDLCI     0x8980
 | 
						|
#define SIOCDELDLCI     0x8981
 | 
						|
 | 
						|
#define SIOCDEVPRIVATE		0x89F0
 | 
						|
#define SIOCPROTOPRIVATE	0x89E0
 | 
						|
 | 
						|
#endif
 | 
						|
 |