/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _ALPHA_IOCTL_H #define _ALPHA_IOCTL_H /* * The original linux ioctl numbering scheme was just a general * "anything goes" setup, where more or less random numbers were * assigned. Sorry, I was clueless when I started out on this. * * On the alpha, we'll try to clean it up a bit, using a more sane * ioctl numbering, and also trying to be compatible with OSF/1 in * the process. I'd like to clean it up for the i386 as well, but * it's so painful recognizing both the new and the old numbers.. */ #define _IOC_NRBITS 8 #define _IOC_TYPEBITS 8 #define _IOC_SIZEBITS 13 #define _IOC_DIRBITS 3 #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) /* * Direction bits _IOC_NONE could be 0, but OSF/1 gives it a bit. * And this turns out useful to catch old ioctl numbers in header * files for us. */ #define _IOC_NONE 1U #define _IOC_READ 2U #define _IOC_WRITE 4U #define _IOC(dir,type,nr,size) \ ((unsigned int) \ (((dir) << _IOC_DIRSHIFT) | \ ((type) << _IOC_TYPESHIFT) | \ ((nr) << _IOC_NRSHIFT) | \ ((size) << _IOC_SIZESHIFT))) /* used to create numbers */ #define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0) #define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) #define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size)) #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) /* used to decode them.. */ #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) /* ...and for the drivers/sound files... */ #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) #endif /* _ALPHA_IOCTL_H */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Kbuild | File | 101 B | 0644 |
|
a.out.h | File | 2 KB | 0644 |
|
auxvec.h | File | 774 B | 0644 |
|
bitsperlong.h | File | 237 B | 0644 |
|
byteorder.h | File | 194 B | 0644 |
|
compiler.h | File | 4.12 KB | 0644 |
|
console.h | File | 1.15 KB | 0644 |
|
errno.h | File | 5.31 KB | 0644 |
|
fcntl.h | File | 1.86 KB | 0644 |
|
fpu.h | File | 4.52 KB | 0644 |
|
gentrap.h | File | 1.43 KB | 0644 |
|
ioctl.h | File | 2.3 KB | 0644 |
|
ioctls.h | File | 4.32 KB | 0644 |
|
ipcbuf.h | File | 95 B | 0644 |
|
kvm_para.h | File | 97 B | 0644 |
|
mman.h | File | 3.45 KB | 0644 |
|
msgbuf.h | File | 922 B | 0644 |
|
pal.h | File | 1.01 KB | 0644 |
|
param.h | File | 313 B | 0644 |
|
poll.h | File | 93 B | 0644 |
|
posix_types.h | File | 513 B | 0644 |
|
ptrace.h | File | 1.66 KB | 0644 |
|
reg.h | File | 1005 B | 0644 |
|
regdef.h | File | 1.04 KB | 0644 |
|
resource.h | File | 761 B | 0644 |
|
sembuf.h | File | 670 B | 0644 |
|
setup.h | File | 1.43 KB | 0644 |
|
shmbuf.h | File | 1.08 KB | 0644 |
|
sigcontext.h | File | 891 B | 0644 |
|
siginfo.h | File | 468 B | 0644 |
|
signal.h | File | 3.08 KB | 0644 |
|
socket.h | File | 2.54 KB | 0644 |
|
sockios.h | File | 497 B | 0644 |
|
stat.h | File | 1.05 KB | 0644 |
|
statfs.h | File | 314 B | 0644 |
|
swab.h | File | 1.25 KB | 0644 |
|
sysinfo.h | File | 775 B | 0644 |
|
termbits.h | File | 5.14 KB | 0644 |
|
termios.h | File | 1.49 KB | 0644 |
|
types.h | File | 884 B | 0644 |
|
unistd.h | File | 14.99 KB | 0644 |
|