summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-05-04 12:56:12 +0000
committerCorinna Vinschen <corinna@vinschen.de>2011-05-04 12:56:12 +0000
commit82fa6b929bfebd3afd8cdb39b6cf48a03ff646b7 (patch)
tree2883d6b71b70ff431db0428a70581e532ba8d3ec /winsup/cygwin/fhandler.h
parent412693ab6529ecd163630785064f2c989db9ad4a (diff)
downloadcygnal-82fa6b929bfebd3afd8cdb39b6cf48a03ff646b7.tar.gz
cygnal-82fa6b929bfebd3afd8cdb39b6cf48a03ff646b7.tar.bz2
cygnal-82fa6b929bfebd3afd8cdb39b6cf48a03ff646b7.zip
* fhandler.h (class fhandler_mailslot): Move down in file and change
parent class to fhandler_base_overlapped. Remove declaration of method write. Add declaraiotns for raw_read and raw_write. * fhandler_mailslot.cc (fhandler_mailslot::fhandler_mailslot): Call fhandler_base_overlapped constructor. (fhandler_mailslot::fstat): Call fhandler_base_overlapped::fstat. (fhandler_mailslot::open): Drop FILE_SYNCHRONOUS_IO_NONALERT flag from call to NtOpenFile. (fhandler_mailslot::raw_read): New method. (fhandler_mailslot::raw_write): Ditto. Take over length algorithm from former write method. (fhandler_mailslot::write): Remove. (fhandler_mailslot::ioctl): Call fhandler_base_overlapped::ioctl.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r--winsup/cygwin/fhandler.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 398aca913..e4ef5cb4a 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -405,18 +405,6 @@ public:
virtual bool __stdcall has_ongoing_io () __attribute__ ((regparm (1))) {return false;}
};
-class fhandler_mailslot : public fhandler_base
-{
- POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &, PUNICODE_STRING, int);
- public:
- fhandler_mailslot ();
- int __stdcall fstat (struct __stat64 *buf) __attribute__ ((regparm (2)));
- int open (int flags, mode_t mode = 0);
- ssize_t __stdcall write (const void *ptr, size_t len);
- int ioctl (unsigned int cmd, void *);
- select_record *select_read (select_stuff *);
-};
-
struct wsa_event
{
LONG serial_number;
@@ -667,6 +655,19 @@ public:
select_record *select_except (select_stuff *);
};
+class fhandler_mailslot : public fhandler_base_overlapped
+{
+ POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &, PUNICODE_STRING, int);
+ public:
+ fhandler_mailslot ();
+ int __stdcall fstat (struct __stat64 *buf) __attribute__ ((regparm (2)));
+ int open (int flags, mode_t mode = 0);
+ void __stdcall raw_read (void *ptr, size_t& len);
+ ssize_t __stdcall raw_write (const void *, size_t);
+ int ioctl (unsigned int cmd, void *);
+ select_record *select_read (select_stuff *);
+};
+
class fhandler_dev_raw: public fhandler_base
{
protected: