]> granicus.if.org Git - python/commitdiff
my_getpagesize(): New function; returns the size of a page of memory.
authorFred Drake <fdrake@acm.org>
Sun, 1 Oct 2000 17:50:46 +0000 (17:50 +0000)
committerFred Drake <fdrake@acm.org>
Sun, 1 Oct 2000 17:50:46 +0000 (17:50 +0000)
                   Versions are defined for Windows and Unix; the Unix
                   flavor uses sysconf() to get the page size; this avoids
                   the use of getpagesize(), which is deprecated and
                   requires an additional library on some platforms
                   (specifically, Reliant UNIX).

This partially closes SourceForge bug #113797.

Modules/mmapmodule.c

index cbb2452906fdfcb6fc4414b81ffa0cec2c6c82d6..b245c895d6e5611967f236794fda6a7735ff40a3 100644 (file)
 
 #ifdef MS_WIN32
 #include <windows.h>
+static int
+my_getpagesize(void)
+{
+    SYSTEM_INFO si;
+    GetSystemInfo(&si);
+    return si.dwPageSize;
+}
 #endif
 
 #ifdef UNIX
 #define MS_SYNC 0
 #endif
 
+#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
+static int
+my_getpagesize(void)
+{
+    return sysconf(_SC_PAGESIZE);
+}
+#else
+#define my_getpagesize getpagesize
+#endif
+
 #endif /* UNIX */
 
 #include <string.h>
@@ -981,18 +998,7 @@ initmmap(void)
                              PyInt_FromLong(MAP_ANON) );
 #endif
 
-#ifdef UNIX
        PyDict_SetItemString (dict, "PAGESIZE",
-                             PyInt_FromLong( (long)getpagesize() ) );
-#endif
-#ifdef MS_WIN32
-       {
-           SYSTEM_INFO si;
-           GetSystemInfo(&si);
-           PyDict_SetItemString (dict, "PAGESIZE",
-                                 PyInt_FromLong( si.dwPageSize ) );
-       }
-#endif /* MS_WIN32 */
-
+                             PyInt_FromLong( (long)my_getpagesize() ) );
 }