_IOC
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
#define _IOW(g,n,t) _IOC(IOC_IN , (g), (n), sizeof(t))
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
#define _IO(tag,num) _IOC(0,tag,num,0)
#define _IOW(tag,num,type) _IOC(1,tag,num,sizeof(type))
#define _IOR(tag,num,type) _IOC(2,tag,num,sizeof(type))
#define _IOWR(tag,num,type) _IOC(3,tag,num,sizeof(type))