Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2021-05-25 17:49:04 +0300
committerCorinna Vinschen <corinna@vinschen.de>2021-05-25 17:49:04 +0300
commitb62450cf172971c7805143a39c6c491a7a3c9785 (patch)
tree73b1054bd5ee9ec6ccd2ccf644dc3cee5f372879 /winsup/cygwin/globals.cc
parenta4e074672aa61bd8b8a3b9493b9bdc85683e7604 (diff)
Cygwin: POSIX msg queues: implement open/mq_open entirely in fhandler
The mq_open call is just a framework now. This patch moves the entire functionality into fhandler_mqueue. To support standard OS calls (as on Linux), make fhandler_mqueue a derived class from fhandler_disk_file and keep the base handle the handle to the default stream, to allow implementing O_PATH functionlaity as well as reading from the file and NOT reading binary message queue data. Implement a standard fhandler_mqueue::open method, allowing, for instance, to touch a file under /dev/mqueue and if it doesn't exist, to create a message queue file. FIXME: This introduces a BAD HACK into path_conv::check, which needs reviewing. Keep the posix path intact in the fhandler, and change get_proc_fd_name accordingly to return only the basename plus leading slash for /proc/<PID>/fd. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/globals.cc')
-rw-r--r--winsup/cygwin/globals.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc
index d0c6046a5..3b25c2803 100644
--- a/winsup/cygwin/globals.cc
+++ b/winsup/cygwin/globals.cc
@@ -153,6 +153,7 @@ const int __collate_load_error = 0;
extern UNICODE_STRING _RDATA ro_u_natsyml = _ROU (L"SymbolicLink");
extern UNICODE_STRING _RDATA ro_u_natdev = _ROU (L"Device");
extern UNICODE_STRING _RDATA ro_u_npfs = _ROU (L"\\Device\\NamedPipe\\");
+ extern UNICODE_STRING _RDATA ro_u_mq_suffix = _ROU (L":mqueue");
#undef _ROU
/* This is an exported copy of environ which can be used by DLLs