Go to the documentation of this file.
6 #define IOCPARM_SHIFT 13
7 #define IOCPARM_MASK ((1 << IOCPARM_SHIFT) - 1)
8 #define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
9 #define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
10 #define IOCGROUP(x) (((x) >> 8) & 0xff)
12 #define IOCPARM_MAX (1 << IOCPARM_SHIFT)
13 #define IOC_VOID 0x20000000
14 #define IOC_OUT 0x40000000
15 #define IOC_IN 0x80000000
16 #define IOC_INOUT (IOC_IN|IOC_OUT)
17 #define IOC_DIRMASK (IOC_VOID|IOC_OUT|IOC_IN)
19 #define _IOC(inout,group,num,len) ((unsigned long) \
20 ((inout) | (((len) & IOCPARM_MASK) << 16) | ((group) << 8) | (num)))
21 #define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
22 #define _IOWINT(g,n) _IOC(IOC_VOID, (g), (n), sizeof(int))
23 #define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
24 #define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
26 #define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
28 #define IOCPARM_IVAL(x) ((int)(intptr_t)(void *)*(caddr_t *)(void *)(x))
33 typedef unsigned char cc_t;
53 #define TIOCGETA _IOR('t', 19, struct termios)
54 #define TIOCGWINSZ _IOR('t', 104, struct winsize)