OS.c revision 7a84e134
1/* $XFree86: xc/lib/Xaw/OS.c,v 1.1 1998/12/06 10:44:34 dawes Exp $ */ 2 3/* Some OS-dependent utility code */ 4 5#ifdef HAVE_CONFIG_H 6#include <config.h> 7#endif 8#include <X11/Xosdefs.h> 9#include <X11/IntrinsicP.h> 10#include "Private.h" 11 12#ifndef X_NOT_POSIX 13#include <unistd.h> /* for sysconf(), and getpagesize() */ 14#endif 15 16#if defined(linux) 17/* kernel header doesn't work with -ansi */ 18/* #include <asm/page.h> *//* for PAGE_SIZE */ 19#define HAS_GETPAGESIZE 20#define HAS_SC_PAGESIZE /* _SC_PAGESIZE may be an enum for Linux */ 21#endif 22 23#if defined(CSRG_BASED) 24#define HAS_GETPAGESIZE 25#endif 26 27#if defined(sun) 28#define HAS_GETPAGESIZE 29#endif 30 31int 32_XawGetPageSize() 33{ 34 static int pagesize = -1; 35 36 if (pagesize != -1) 37 return pagesize; 38 39 /* Try each supported method in the preferred order */ 40 41#if defined(_SC_PAGESIZE) || defined(HAS_SC_PAGESIZE) 42 pagesize = sysconf(_SC_PAGESIZE); 43#endif 44 45#ifdef _SC_PAGE_SIZE 46 if (pagesize == -1) 47 pagesize = sysconf(_SC_PAGE_SIZE); 48#endif 49 50#ifdef HAS_GETPAGESIZE 51 if (pagesize == -1) 52 pagesize = getpagesize(); 53#endif 54 55#ifdef PAGE_SIZE 56 if (pagesize == -1) 57 pagesize = PAGE_SIZE; 58#endif 59 60 if (pagesize == -1) 61 pagesize = 0; 62 63 return pagesize; 64} 65