diff options
author | Christopher Faylor <me@cgf.cx> | 2005-07-29 19:26:18 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-07-29 19:26:18 +0400 |
commit | 728b9af5c9abb690e0510916b38caf26360d4af9 (patch) | |
tree | 5f4df1b01f970970a040b3a7dddd4372e2f11df3 /winsup/cygwin/include/sys | |
parent | b78b8f53ae8531bc0fdec896110ec95c1ddf34d7 (diff) |
* include/sys/ioctl.h: Add some linux defines.
Diffstat (limited to 'winsup/cygwin/include/sys')
-rw-r--r-- | winsup/cygwin/include/sys/ioctl.h | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/winsup/cygwin/include/sys/ioctl.h b/winsup/cygwin/include/sys/ioctl.h index fd9515fb1..461def6fd 100644 --- a/winsup/cygwin/include/sys/ioctl.h +++ b/winsup/cygwin/include/sys/ioctl.h @@ -1,6 +1,6 @@ /* sys/ioctl.h - Copyright 1998, 2001, 2002 Red Hat, Inc. + Copyright 1998, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc. This file is part of Cygwin. @@ -15,15 +15,47 @@ details. */ #include <sys/cdefs.h> +__BEGIN_DECLS + /* /dev/windows ioctls */ #define WINDOWS_POST 0 /* Set write() behavior to PostMessage() */ #define WINDOWS_SEND 1 /* Set write() behavior to SendMessage() */ #define WINDOWS_HWND 2 /* Set hWnd for read() calls */ -__BEGIN_DECLS - -int ioctl (int __fd, int __cmd, ...); +/* Some standard linux defines */ + +#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) \ + (((dir) << _IOC_DIRSHIFT) | \ + + ((type) << _IOC_TYPESHIFT) | \ + + ((nr) << _IOC_NRSHIFT) | \ + + ((size) << _IOC_SIZESHIFT)) + +#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)) + +int __cdecl ioctl (int __fd, int __cmd, ...); __END_DECLS |