Alexandre Julliard : server: Use sysconf() instead of getpagesize().

Alexandre Julliard julliard at winehq.org
Wed Jan 9 13:30:37 CST 2013


Module: wine
Branch: master
Commit: 2b97a064e3a2a2a6bdfc9c16064193e4fde80b6c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2b97a064e3a2a2a6bdfc9c16064193e4fde80b6c

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Jan  8 22:02:28 2013 +0100

server: Use sysconf() instead of getpagesize().

---

 server/mapping.c |   35 +++--------------------------------
 1 files changed, 3 insertions(+), 32 deletions(-)

diff --git a/server/mapping.c b/server/mapping.c
index 90956e9..be0d885 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -108,36 +108,7 @@ static const struct fd_ops mapping_fd_ops =
 
 static struct list shared_list = LIST_INIT(shared_list);
 
-#ifdef __i386__
-
-/* These are always the same on an i386, and it will be faster this way */
-# define page_mask  0xfff
-# define page_shift 12
-# define init_page_size() do { /* nothing */ } while(0)
-
-#else  /* __i386__ */
-
-static int page_shift, page_mask;
-
-static void init_page_size(void)
-{
-    int page_size;
-# ifdef HAVE_GETPAGESIZE
-    page_size = getpagesize();
-# else
-#  ifdef __svr4__
-    page_size = sysconf(_SC_PAGESIZE);
-#  else
-#   error Cannot get the page size on this platform
-#  endif
-# endif
-    page_mask = page_size - 1;
-    /* Make sure we have a power of 2 */
-    assert( !(page_size & page_mask) );
-    page_shift = 0;
-    while ((1 << page_shift) != page_size) page_shift++;
-}
-#endif  /* __i386__ */
+static size_t page_mask;
 
 #define ROUND_SIZE(size)  (((size) + page_mask) & ~page_mask)
 
@@ -474,7 +445,7 @@ static struct object *create_mapping( struct directory *root, const struct unico
     int unix_fd;
     struct stat st;
 
-    if (!page_mask) init_page_size();
+    if (!page_mask) page_mask = sysconf( _SC_PAGESIZE ) - 1;
 
     if (!(mapping = create_named_object_dir( root, name, attr, &mapping_ops )))
         return NULL;
@@ -647,7 +618,7 @@ static enum server_fd_type mapping_get_fd_type( struct fd *fd )
 
 int get_page_size(void)
 {
-    if (!page_mask) init_page_size();
+    if (!page_mask) page_mask = sysconf( _SC_PAGESIZE ) - 1;
     return page_mask + 1;
 }
 




More information about the wine-cvs mailing list