ioctl.h File Reference

Go to the source code of this file.

Defines

#define IOC_VOID   0x00000000
 param in size field
#define IOC_IN   0x40000000
 user --> kernel
#define IOC_OUT   0x80000000
 kernel --> user
#define IOC_INOUT   (IOC_IN | IOC_OUT)
 both
#define IOCSIZE_MASK   0x3fff0000
 size (max 16k-1 bytes)
#define IOCSIZE_SHIFT   16
 how to get the size
#define IOCCMD_MASK   0x0000ffff
 command code
#define IOCCMD_SHIFT   0
#define _IO(c, d)   (IOC_VOID | ((c)<<8) | (d))
 param encoded
#define _IOW(c, d, t)
#define _IOR(c, d, t)
#define _IOWR(c, d, t)
 WR rather than RW to avoid conflict with stdio.h.


Define Documentation

#define _IO ( c,
 )     (IOC_VOID | ((c)<<8) | (d))

param encoded

_IO(magic, subcode); size field is zero and the subcode determines the command.

Definition at line 45 of file ioctl.h.

#define _IOR ( c,
d,
 ) 

Value:

(IOC_OUT | ((sizeof(t)<<16) & IOCSIZE_MASK) | \
                                   ((c)<<8) | (d))

Definition at line 56 of file ioctl.h.

#define _IOW ( c,
d,
 ) 

Value:

(IOC_IN | ((sizeof(t)<<16) & IOCSIZE_MASK) | \
                                  ((c)<<8) | (d))
_IOXX(magic, subcode, arg_t); where arg_t is the type of the (last) argument field in the ioctl call, if present.

Definition at line 54 of file ioctl.h.

#define _IOWR ( c,
d,
 ) 

Value:

(IOC_INOUT | ((sizeof(t)<<16) & IOCSIZE_MASK) | \
                                     ((c)<<8) | (d))
WR rather than RW to avoid conflict with stdio.h.

Definition at line 59 of file ioctl.h.

#define IOC_IN   0x40000000

user --> kernel

Definition at line 29 of file ioctl.h.

#define IOC_INOUT   (IOC_IN | IOC_OUT)

both

Definition at line 31 of file ioctl.h.

#define IOC_OUT   0x80000000

kernel --> user

Definition at line 30 of file ioctl.h.

#define IOC_VOID   0x00000000

param in size field

ioctl command encoding: 32 bits total, command in lower 16 bits, size of the parameter structure in the lower 14 bits of the upper 16 bits. Encoding the size of the parameter structure in the ioctl request is useful for catching programs compiled with old versions and to avoid overwriting user space outside the user buffer area. The highest 2 bits are reserved for indicating the ``access mode''. NOTE: This limits the max parameter size to 16kB -1 !

Definition at line 28 of file ioctl.h.

#define IOCCMD_MASK   0x0000ffff

command code

Definition at line 34 of file ioctl.h.

#define IOCCMD_SHIFT   0

Definition at line 35 of file ioctl.h.

#define IOCSIZE_MASK   0x3fff0000

size (max 16k-1 bytes)

Definition at line 32 of file ioctl.h.

#define IOCSIZE_SHIFT   16

how to get the size

Definition at line 33 of file ioctl.h.


Generated on Mon May 1 21:47:01 2006 for KernelAPI by  doxygen 1.4.6-5