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/cygwin/local_includes/shared_info.h')
-rw-r--r--winsup/cygwin/local_includes/shared_info.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/winsup/cygwin/local_includes/shared_info.h b/winsup/cygwin/local_includes/shared_info.h
new file mode 100644
index 000000000..6c53ec0b8
--- /dev/null
+++ b/winsup/cygwin/local_includes/shared_info.h
@@ -0,0 +1,97 @@
+/* shared_info.h: shared info for cygwin
+
+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 "tty.h"
+#include "security.h"
+#include "mtinfo.h"
+#include "limits.h"
+#include "mount.h"
+#include "loadavg.h"
+
+#define CURR_USER_MAGIC 0xab1fcce8U
+
+class user_info
+{
+ void initialize ();
+public:
+ LONG version;
+ DWORD cb;
+ bool warned_msdos;
+ bool warned_notty;
+ bool warned_nonativesyms;
+ mount_info mountinfo;
+ friend void dll_crt0_1 (void *);
+ static void create (bool);
+};
+
+/******** Shared Info ********/
+/* Data accessible to all tasks */
+
+
+#define CURR_SHARED_MAGIC 0x9f33cc5dU
+
+#define USER_VERSION 1
+
+/* NOTE: Do not make gratuitous changes to the names or organization of the
+ below class. The layout is checksummed to determine compatibility between
+ different cygwin versions. */
+class shared_info
+{
+ LONG version;
+ DWORD cb;
+ public:
+ tty_list tty;
+ LONG last_used_bindresvport;
+ DWORD obcaseinsensitive;
+ mtinfo mt;
+ loadavginfo loadavg;
+ LONG pid_src;
+ LONG forkable_hardlink_support;
+
+ void initialize ();
+ void init_obcaseinsensitive ();
+ unsigned heap_chunk_size ();
+ static void create ();
+};
+
+extern shared_info *cygwin_shared;
+extern user_info *user_shared;
+#define mount_table (&(user_shared->mountinfo))
+extern HANDLE cygwin_user_h;
+
+enum shared_locations
+{
+ SH_CYGWIN_SHARED,
+ SH_USER_SHARED,
+ SH_MYSELF,
+ SH_SHARED_CONSOLE,
+ SH_TOTAL_SIZE,
+ SH_JUSTCREATE,
+ SH_JUSTOPEN
+
+};
+
+void memory_init ();
+void shared_destroy ();
+
+#define shared_align_past(p) \
+ ((char *) (system_info.dwAllocationGranularity * \
+ (((DWORD) ((p) + 1) + system_info.dwAllocationGranularity - 1) / \
+ system_info.dwAllocationGranularity)))
+
+HANDLE get_shared_parent_dir ();
+HANDLE get_session_parent_dir ();
+char *shared_name (char *, const char *, int);
+WCHAR *shared_name (WCHAR *, const WCHAR *, int);
+void *open_shared (const WCHAR *, int, HANDLE&, DWORD,
+ shared_locations, PSECURITY_ATTRIBUTES = &sec_all,
+ DWORD = FILE_MAP_READ | FILE_MAP_WRITE);
+void *open_shared (const WCHAR *, int, HANDLE&, DWORD,
+ shared_locations *, PSECURITY_ATTRIBUTES = &sec_all,
+ DWORD = FILE_MAP_READ | FILE_MAP_WRITE);
+extern void user_shared_create (bool reinit);