|
#define | _IOC_NRBITS 8 |
|
#define | _IOC_TYPEBITS 8 |
|
#define | _IOC_SIZEBITS 14 |
|
#define | _IOC_DIRBITS 2 |
|
#define | _IOC_NRMASK ((1 << _IOC_NRBITS)-1) |
|
#define | _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) |
|
#define | _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1) |
|
#define | _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1) |
|
#define | _IOC_NRSHIFT 0 |
|
#define | _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS) |
|
#define | _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS) |
|
#define | _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) |
|
#define | _IOC_NONE 0U |
|
#define | _IOC_WRITE 1U |
|
#define | _IOC_READ 2U |
|
#define | _IOC(dir, type, nr, size) |
|
#define | _IOC_TYPECHECK(t) (sizeof(t)) |
|
#define | _IO(type, nr) _IOC(_IOC_NONE,(type),(nr),0) |
|
#define | _IOR(type, nr, size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) |
|
#define | _IOW(type, nr, size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) |
|
#define | _IOWR(type, nr, size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) |
|
#define | _IOR_BAD(type, nr, size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) |
|
#define | _IOW_BAD(type, nr, size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size)) |
|
#define | _IOWR_BAD(type, nr, size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) |
|
#define | _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) |
|
#define | _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) |
|
#define | _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) |
|
#define | _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK) |
|
#define | IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) |
|
#define | IOC_OUT (_IOC_READ << _IOC_DIRSHIFT) |
|
#define | IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT) |
|
#define | IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT) |
|
#define | IOCSIZE_SHIFT (_IOC_SIZESHIFT) |
|