* fhandler.h (fhandler_base::pread): Declare new function.
(fhandler_base::pwrite): Ditto. (fhandler_disk_file::pread): Ditto. (fhandler_disk_file::pwrite): Ditto. * fhandler.cc (fhandler_base::pread): Define new function. (fhandler_base::pwrite): Ditto. * fhandler_disk_file.cc (fhandler_base::pread): Ditto. (fhandler_base::pwrite): Ditto. * syscalls.cc (pread): Define new function. (pwrite): Ditto. * cygwin.din: Export pread, pwrite. * include/sys/ioctl.h: Guard some _IO* declarations to avoid conflict with socket.h.
This commit is contained in:
@ -25,38 +25,44 @@ __BEGIN_DECLS
|
||||
|
||||
/* Some standard linux defines */
|
||||
|
||||
#define _IOC_NRBITS 8
|
||||
#define _IOC_TYPEBITS 8
|
||||
#define _IOC_SIZEBITS 14
|
||||
#define _IOC_DIRBITS 2
|
||||
#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_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_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_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))
|
||||
(((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))
|
||||
#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
|
||||
#define _IO _LINUX_IO
|
||||
#define _IOR _LINUX_IOR
|
||||
#define _IOW _LINUX_IOW
|
||||
#define _IOWR _LINUX_IOWR
|
||||
#endif /*__USE_LINUX_IOCTL_DEFS */
|
||||
|
||||
int __cdecl ioctl (int __fd, int __cmd, ...);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user