123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package linux
- const IOC_NRBITS = 8
- const IOC_TYPEBITS = 8
- const IOC_SIZEBITS = 14
- const IOC_DIRBITS = 2
- const IOC_NRMASK = ((1 << IOC_NRBITS)-1)
- const IOC_TYPEMASK = ((1 << IOC_TYPEBITS)-1)
- const IOC_SIZEMASK = ((1 << IOC_SIZEBITS)-1)
- const IOC_DIRMASK = ((1 << IOC_DIRBITS)-1)
- const IOC_NRSHIFT = 0
- const IOC_TYPESHIFT = (IOC_NRSHIFT+IOC_NRBITS)
- const IOC_SIZESHIFT = (IOC_TYPESHIFT+IOC_TYPEBITS)
- const IOC_DIRSHIFT = (IOC_SIZESHIFT+IOC_SIZEBITS)
- const IOC_NONE = 0
- const IOC_WRITE = 1
- const IOC_READ = 2
- func IOC(dir uint32, type_ rune, nr uint32, size uintptr) uint32 {
- return (((dir) << IOC_DIRSHIFT) |
- ((uint32(type_)) << IOC_TYPESHIFT) |
- (uint32(nr) << IOC_NRSHIFT) |
- (uint32(size) << IOC_SIZESHIFT))
- }
- func IO(type_ rune,nr uint32) uint32 {
- return IOC(IOC_NONE,(type_),(nr),0)
- }
- func IOR(type_ rune, nr uint32, size uintptr) uint32 {
- return IOC(IOC_READ,type_,nr, size)
- }
- func IOW(type_ rune ,nr uint32,size uintptr) uint32 {
- return IOC(IOC_WRITE,(type_),(nr),((size)))
- }
- func IOWR(type_ rune,nr uint32,size uintptr) uint32 {
- return IOC(IOC_READ|IOC_WRITE,(type_),(nr),((size)))
- }
- func IOC_DIR(nr uint32) uint32 {
- return (((nr) >> IOC_DIRSHIFT) & IOC_DIRMASK)
- }
- func IOC_TYPE(nr uint32) uint32 {
- return (((nr) >> IOC_TYPESHIFT) & IOC_TYPEMASK)
- }
- func IOC_NR(nr uint32) uint32 {
- return (((nr) >> IOC_NRSHIFT) & IOC_NRMASK)
- }
- func IOC_SIZE(nr uint32) uint32 {
- return (((nr) >> IOC_SIZESHIFT) & IOC_SIZEMASK)
- }
- const IOC_IN = (IOC_WRITE << IOC_DIRSHIFT)
- const IOC_OUT = (IOC_READ << IOC_DIRSHIFT)
- const IOCINOUT = ((IOC_WRITE|IOC_READ) << IOC_DIRSHIFT)
- const IOCSIZE_MASK = (IOC_SIZEMASK << IOC_SIZESHIFT)
- const IOCSIZE_SHIFT = (IOC_SIZESHIFT)
|