From: corinna Date: Mon, 15 Jan 2001 12:25:00 +0000 (+0000) Subject: * syscalls.cc (getpagesize): Save pagesize in global variable to X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6d8385102462061c4d3dc05dc693869afbd795fa;p=pf3gnuchains%2Fpf3gnuchains3x.git * syscalls.cc (getpagesize): Save pagesize in global variable to avoid calling GetSystemInfo too often. * heap.cc (getpagesize): Eliminate. (heap_init): Use getpagesize function from syscalls.cc. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 673cd0ae7a..f236f117cb 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +Mon Jan 15 12:48:00 2001 Corinna Vinschen + + * syscalls.cc (getpagesize): Save pagesize in global variable to + avoid calling GetSystemInfo too often. + * heap.cc (getpagesize): Eliminate. + (heap_init): Use getpagesize function from syscalls.cc. + Mon Jan 15 11:56:00 2001 Corinna Vinschen * sysconf.cc (sysconf): return `getpagesize ()' on _SC_PAGESIZE diff --git a/winsup/cygwin/heap.cc b/winsup/cygwin/heap.cc index db3edb00fe..d2934f2d6a 100644 --- a/winsup/cygwin/heap.cc +++ b/winsup/cygwin/heap.cc @@ -21,14 +21,6 @@ details. */ static unsigned page_const = 0; -static __inline__ int -getpagesize(void) -{ - SYSTEM_INFO si; - GetSystemInfo(&si); - return (int)si.dwPageSize; -} - /* Initialize the heap at process start up. */ void @@ -37,7 +29,8 @@ heap_init () /* If we're the forkee, we must allocate the heap at exactly the same place as our parent. If not, we don't care where it ends up. */ - page_const = getpagesize(); + extern size_t getpagesize (); + page_const = getpagesize (); if (brkbase) { DWORD chunk = brkchunk; /* allocation chunk */ diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 0e6b631fa3..df51038099 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -1353,10 +1353,19 @@ getdtablesize () return fdtab.size; } +static DWORD sys_page_size = 0; + extern "C" size_t getpagesize () { return sysconf (_SC_PAGESIZE); + if (!sys_page_size) + { + SYSTEM_INFO si; + GetSystemInfo(&si); + sys_page_size = si.dwPageSize; + } + return (int)sys_page_size; } /* FIXME: not all values are correct... */