[llvm-commits] CVS: llvm/include/Config/pagesize.h
Misha Brukman
brukman at cs.uiuc.edu
Fri Jun 18 10:38:01 PDT 2004
Changes in directory llvm/include/Config:
pagesize.h added (r1.1)
---
Log message:
Add a target-independent way to query page size.
---
Diffs of the changes: (+49 -0)
Index: llvm/include/Config/pagesize.h
diff -c /dev/null llvm/include/Config/pagesize.h:1.1
*** /dev/null Fri Jun 18 10:30:35 2004
--- llvm/include/Config/pagesize.h Fri Jun 18 10:30:25 2004
***************
*** 0 ****
--- 1,49 ----
+ /*
+ * The LLVM Compiler Infrastructure
+ *
+ * This file was developed by the LLVM research group and is distributed under
+ * the University of Illinois Open Source License. See LICENSE.TXT for details.
+ *
+ ******************************************************************************
+ *
+ * This header file provides a platform-independent way of quering page size.
+ */
+
+ #ifndef PAGESIZE_H
+ #define PAGESIZE_H
+
+ #include "Config/unistd.h"
+ #include <sys/param.h>
+
+ namespace llvm {
+
+ /* Compatibility chart:
+ *
+ * x86/Linux: _SC_PAGESIZE, _SC_PAGE_SIZE
+ * MacOS X/PowerPC: v. 10.2: NBPG,
+ * v. 10.3: _SC_PAGESIZE
+ * Solaris/Sparc: _SC_PAGESIZE, _SC_PAGE_SIZE
+ */
+
+ /**
+ * GetPageSize - wrapper to return page size in bytes for various
+ * architecture/OS combinations
+ */
+ unsigned GetPageSize() {
+ #ifdef _SC_PAGESIZE
+ return sysconf(_SC_PAGESIZE);
+ #elif defined(_SC_PAGE_SIZE)
+ return sysconf(_SC_PAGE_SIZE);
+ #elif defined(NBPG)
+ #ifndef CLSIZE
+ #define CLSIZE 1
+ #endif
+ return NBPG * CLSIZE;
+ #else
+ return 4096; /* allocate 4KB as a fall-back */
+ #endif
+ }
+
+ }
+
+ #endif
More information about the llvm-commits
mailing list