[fuzzer] Platfom specific version of PageSize
authorVitaly Buka <vitalybuka@google.com>
Fri, 26 May 2023 03:58:52 +0000 (20:58 -0700)
committerVitaly Buka <vitalybuka@google.com>
Fri, 26 May 2023 04:00:14 +0000 (21:00 -0700)
compiler-rt/lib/fuzzer/FuzzerUtil.cpp
compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp
compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp

index 71c3dc1..aeab70f 100644 (file)
@@ -21,7 +21,6 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <thread>
-#include <unistd.h>
 
 namespace fuzzer {
 
@@ -235,9 +234,4 @@ uint64_t SimpleFastHash(const void *Data, size_t Size, uint64_t Initial) {
   return Res;
 }
 
-size_t PageSize() {
-  static size_t PageSizeCached = sysconf(_SC_PAGESIZE);
-  return PageSizeCached;
-}
-
 }  // namespace fuzzer
index d80b80c..2a21529 100644 (file)
@@ -551,6 +551,11 @@ void DiscardOutput(int Fd) {
   dup2(nullfd, Fd);
 }
 
+size_t PageSize() {
+  static size_t PageSizeCached = _zx_system_get_page_size();
+  return PageSizeCached;
+}
+
 } // namespace fuzzer
 
 #endif // LIBFUZZER_FUCHSIA
index 0446d73..392c1e5 100644 (file)
@@ -183,6 +183,11 @@ std::string SearchRegexCmd(const std::string &Regex) {
   return "grep '" + Regex + "'";
 }
 
+size_t PageSize() {
+  static size_t PageSizeCached = sysconf(_SC_PAGESIZE);
+  return PageSizeCached;
+}
+
 }  // namespace fuzzer
 
 #endif // LIBFUZZER_POSIX
index 3598758..6d9bc76 100644 (file)
@@ -224,6 +224,15 @@ void DiscardOutput(int Fd) {
   fclose(Temp);
 }
 
+size_t PageSize() {
+  static size_t PageSizeCached = []() -> size_t {
+    SYSTEM_INFO si;
+    GetSystemInfo(&si);
+    return si.dwPageSize;
+  }();
+  return PageSizeCached;
+}
+
 } // namespace fuzzer
 
 #endif // LIBFUZZER_WINDOWS