2001-03-05 22:29:24 +01:00
|
|
|
/* sys/ioctl.h
|
|
|
|
|
2013-01-21 05:38:31 +01:00
|
|
|
Copyright 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
|
2001-03-05 22:29:24 +01:00
|
|
|
|
|
|
|
This file is part of Cygwin.
|
|
|
|
|
|
|
|
This software is a copyrighted work licensed under the terms of the
|
|
|
|
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
|
|
|
details. */
|
|
|
|
|
2000-02-17 20:38:33 +01:00
|
|
|
/* sys/ioctl.h */
|
|
|
|
|
|
|
|
#ifndef _SYS_IOCTL_H
|
|
|
|
#define _SYS_IOCTL_H
|
|
|
|
|
|
|
|
#include <sys/cdefs.h>
|
2006-12-06 15:08:08 +01:00
|
|
|
#include <sys/termios.h>
|
2000-02-17 20:38:33 +01:00
|
|
|
|
2005-07-29 17:26:18 +02:00
|
|
|
__BEGIN_DECLS
|
|
|
|
|
2000-02-17 20:38:33 +01:00
|
|
|
/* /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 */
|
|
|
|
|
2005-07-29 17:26:18 +02:00
|
|
|
/* Some standard linux defines */
|
|
|
|
|
2005-07-29 19:04:46 +02:00
|
|
|
#define _IOC_NRBITS 8
|
|
|
|
#define _IOC_TYPEBITS 8
|
|
|
|
#define _IOC_SIZEBITS 14
|
|
|
|
#define _IOC_DIRBITS 2
|
2005-08-12 04:39:13 +02:00
|
|
|
|
2005-07-29 19:04:46 +02:00
|
|
|
#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)
|
2005-08-12 04:39:13 +02:00
|
|
|
|
2005-07-29 19:04:46 +02:00
|
|
|
#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)
|
2005-08-12 04:39:13 +02:00
|
|
|
|
2005-07-29 19:04:46 +02:00
|
|
|
#define _IOC_NONE 0U
|
|
|
|
#define _IOC_WRITE 1U
|
|
|
|
#define _IOC_READ 2U
|
2005-08-12 04:39:13 +02:00
|
|
|
|
2005-07-29 17:26:18 +02:00
|
|
|
#define _IOC(dir,type,nr,size) \
|
2005-07-29 19:04:46 +02:00
|
|
|
(((dir) << _IOC_DIRSHIFT) | \
|
|
|
|
+ ((type) << _IOC_TYPESHIFT) | \
|
|
|
|
+ ((nr) << _IOC_NRSHIFT) | \
|
|
|
|
+ ((size) << _IOC_SIZESHIFT))
|
2005-07-29 17:26:18 +02:00
|
|
|
|
2005-07-29 19:04:46 +02:00
|
|
|
#define _LINUX_IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
|
|
|
|
#define _LINUX_IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
|
|
|
|
#define _LINUX_IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
|
|
|
|
#define _LINUX_IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
|
|
|
|
|
|
|
|
#ifdef __USE_LINUX_IOCTL_DEFS
|
2005-07-29 19:06:57 +02:00
|
|
|
# define _IO _LINUX_IO
|
|
|
|
# define _IOR _LINUX_IOR
|
|
|
|
# define _IOW _LINUX_IOW
|
|
|
|
# define _IOWR _LINUX_IOWR
|
2005-07-29 19:04:46 +02:00
|
|
|
#endif /*__USE_LINUX_IOCTL_DEFS */
|
2005-07-29 17:26:18 +02:00
|
|
|
|
|
|
|
int __cdecl ioctl (int __fd, int __cmd, ...);
|
2000-02-17 20:38:33 +01:00
|
|
|
|
|
|
|
__END_DECLS
|
|
|
|
#endif
|