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:
Diffstat (limited to 'winsup/cygserver/shm.h')
-rwxr-xr-xwinsup/cygserver/shm.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/winsup/cygserver/shm.h b/winsup/cygserver/shm.h
new file mode 100755
index 000000000..32947f8ec
--- /dev/null
+++ b/winsup/cygserver/shm.h
@@ -0,0 +1,91 @@
+/* cygserver_shm.h
+
+ Copyright 2001 Red Hat Inc.
+ Written by Robert Collins <rbtcollins@hotmail.com>
+
+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. */
+
+#include <sys/types.h>
+#include "cygwin/cygserver_transport.h"
+#include "cygwin/cygserver.h"
+
+#define SHM_CREATE 0
+#define SHM_REATTACH 1
+#define SHM_ATTACH 2
+#define SHM_DETACH 3
+
+
+class client_request_shm : public client_request
+{
+ public:
+#ifndef __INSIDE_CYGWIN__
+ virtual void serve (transport_layer_base *conn, process_cache *cache);
+#endif
+ client_request_shm (key_t, size_t, int, char psdbuf[4096], pid_t);
+ client_request_shm ();
+ client_request_shm (int, int, pid_t);
+ client_request_shm (int, int);
+ union {
+ struct {int type; pid_t pid; int shm_id; key_t key; size_t size; int shmflg; char sd_buf[4096];} in;
+ struct {int shm_id; HANDLE filemap; HANDLE attachmap; key_t key;} out;
+ } parameters;
+};
+
+#ifndef __INSIDE_CYGWIN__
+class shm_cleanup : cleanup_routine
+{
+public:
+ virtual void cleanup (long winpid);
+};
+#endif
+#if 0
+class _shmattach {
+public:
+ void *data;
+ class _shmattach *next;
+};
+
+class shmid_ds {
+public:
+ struct ipc_perm shm_perm;
+ size_t shm_segsz;
+ pid_t shm_lpid;
+ pid_t shm_cpid;
+ shmatt_t shm_nattch;
+ time_t shm_atime;
+ time_t shm_dtime;
+ time_t shm_ctime;
+ HANDLE filemap;
+ HANDLE attachmap;
+ void *mapptr;
+ class _shmattach *attachhead;
+};
+
+class shmnode {
+public:
+ class shmid_ds * shmid;
+ class shmnode *next;
+ key_t key;
+};
+//....
+struct shmid_ds {
+ struct ipc_perm shm_perm;
+ size_t shm_segsz;
+ pid_t shm_lpid;
+ pid_t shm_cpid;
+ shmatt_t shm_nattch;
+ time_t shm_atime;
+ time_t shm_dtime;
+ time_t shm_ctime;
+};
+
+void *shmat(int, const void *, int);
+int shmctl(int, int, struct shmid_ds *);
+int shmdt(const void *);
+int shmget(key_t, size_t, int);
+
+#endif