From 4ea34a68506bcd5233be1a3bfca9b81b5f9234b2 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sat, 7 Oct 2000 17:35:36 +0000 Subject: * fhandler.h (fhandler_dev_mem): Add methods mmap, munmap and msync. Add `unit' member. * fhandler_mem.cc (fhandler_dev_mem): Initialize `unit' as well. (init): Care for differences between /dev/mem, /dev/kmem (not implemented yet) and /dev/port. (open): Change debug message to reflect the device. (mmap): New function. (munmap): Ditto. (msync): Ditto. (fstat): Use unit when setting st_dev in stat structure. * mmap.cc (mmap): Handle MAP_ANONYMOUS flag. Change error handling slightly. * path.cc (get_device_number): Handle /dev/port. --- winsup/cygwin/fhandler.h | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'winsup/cygwin/fhandler.h') diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 16b0e7332..3f8a1c1e0 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -467,10 +467,9 @@ public: BOOL is_device () { return FALSE; } int fstat (struct stat *buf); - virtual HANDLE mmap (caddr_t *addr, size_t len, DWORD access, - int flags, off_t off); - virtual int munmap (HANDLE h, caddr_t addr, size_t len); - virtual int msync (HANDLE h, caddr_t addr, size_t len, int flags); + HANDLE mmap (caddr_t *addr, size_t len, DWORD access, int flags, off_t off); + int munmap (HANDLE h, caddr_t addr, size_t len); + int msync (HANDLE h, caddr_t addr, size_t len, int flags); }; class fhandler_serial: public fhandler_base @@ -777,8 +776,9 @@ public: class fhandler_dev_mem: public fhandler_base { protected: - unsigned long mem_size; - unsigned long pos; + int unit; + DWORD mem_size; + DWORD pos; bool init_phase; void init (void); @@ -795,6 +795,10 @@ public: int fstat (struct stat *buf); int dup (fhandler_base *child); + HANDLE mmap (caddr_t *addr, size_t len, DWORD access, int flags, off_t off); + int munmap (HANDLE h, caddr_t addr, size_t len); + int msync (HANDLE h, caddr_t addr, size_t len, int flags); + void dump (); }; -- cgit v1.2.3