aboutsummaryrefslogtreecommitdiff
path: root/libXaw/src/OS.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-11-06 11:03:40 +0000
committermarha <marha@users.sourceforge.net>2009-11-06 11:03:40 +0000
commit08cb4425442ca65ec28d6a2f023f885e35a7f0ed (patch)
treea9061a472d247bce27d7fb6c700c5b7e2755d036 /libXaw/src/OS.c
parentccdb20929567c70c1bbdd5df275ca7bea5c747a7 (diff)
parentace7902333b6f61aab5a6035dbcb222763bff186 (diff)
downloadvcxsrv-08cb4425442ca65ec28d6a2f023f885e35a7f0ed.tar.gz
vcxsrv-08cb4425442ca65ec28d6a2f023f885e35a7f0ed.tar.bz2
vcxsrv-08cb4425442ca65ec28d6a2f023f885e35a7f0ed.zip
Added libXaw
Diffstat (limited to 'libXaw/src/OS.c')
-rw-r--r--libXaw/src/OS.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/libXaw/src/OS.c b/libXaw/src/OS.c
new file mode 100644
index 000000000..5801aebb8
--- /dev/null
+++ b/libXaw/src/OS.c
@@ -0,0 +1,64 @@
+/* $XFree86: xc/lib/Xaw/OS.c,v 1.1 1998/12/06 10:44:34 dawes Exp $ */
+
+/* Some OS-dependent utility code */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <X11/Xosdefs.h>
+#include <X11/IntrinsicP.h>
+#include "Private.h"
+
+#ifndef X_NOT_POSIX
+#include <unistd.h> /* for sysconf(), and getpagesize() */
+#endif
+
+#if defined(linux)
+/* kernel header doesn't work with -ansi */
+/* #include <asm/page.h> *//* for PAGE_SIZE */
+#define HAS_GETPAGESIZE
+#define HAS_SC_PAGESIZE /* _SC_PAGESIZE may be an enum for Linux */
+#endif
+
+#if defined(CSRG_BASED)
+#define HAS_GETPAGESIZE
+#endif
+
+#if defined(sun)
+#define HAS_GETPAGESIZE
+#endif
+
+int
+_XawGetPageSize(void)
+{
+ static int pagesize = -1;
+
+ if (pagesize != -1)
+ return pagesize;
+
+ /* Try each supported method in the preferred order */
+
+#if defined(_SC_PAGESIZE) || defined(HAS_SC_PAGESIZE)
+ pagesize = sysconf(_SC_PAGESIZE);
+#endif
+
+#ifdef _SC_PAGE_SIZE
+ if (pagesize == -1)
+ pagesize = sysconf(_SC_PAGE_SIZE);
+#endif
+
+#ifdef HAS_GETPAGESIZE
+ if (pagesize == -1)
+ pagesize = getpagesize();
+#endif
+
+#ifdef PAGE_SIZE
+ if (pagesize == -1)
+ pagesize = PAGE_SIZE;
+#endif
+
+ if (pagesize == -1)
+ pagesize = 0;
+
+ return pagesize;
+}