diff options
author | marha <marha@users.sourceforge.net> | 2009-11-06 06:59:46 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-11-06 06:59:46 +0000 |
commit | ace7902333b6f61aab5a6035dbcb222763bff186 (patch) | |
tree | 28445e829d5f04c8d79bda2514be37d5fb29738e /libXaw/src/OS.c | |
parent | c9179017c7e70703b7cac46c2df8b950506319e0 (diff) | |
download | vcxsrv-ace7902333b6f61aab5a6035dbcb222763bff186.tar.gz vcxsrv-ace7902333b6f61aab5a6035dbcb222763bff186.tar.bz2 vcxsrv-ace7902333b6f61aab5a6035dbcb222763bff186.zip |
Added libXaw-1.0.7
Diffstat (limited to 'libXaw/src/OS.c')
-rw-r--r-- | libXaw/src/OS.c | 64 |
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; +} |