LCOV - code coverage report
Current view: top level - nsprpub/pr/src/md - prosdep.c (source / functions) Hit Total Coverage
Test: output.info Lines: 10 11 90.9 %
Date: 2017-07-14 16:53:18 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : #include "prbit.h"
       7             : #include "prsystem.h"
       8             : 
       9             : #ifdef XP_UNIX
      10             : #include <unistd.h>
      11             : #endif
      12             : #ifdef _WIN32
      13             : #include <windows.h>
      14             : #endif 
      15             : #ifdef XP_BEOS
      16             : #include <OS.h>
      17             : #endif
      18             : 
      19             : PRInt32 _pr_pageShift;
      20             : PRInt32 _pr_pageSize;
      21             : 
      22             : /*
      23             : ** Get system page size
      24             : */
      25           3 : static void GetPageSize(void)
      26             : {
      27             :         PRInt32 pageSize;
      28             : 
      29             :     /* Get page size */
      30             : #ifdef XP_UNIX
      31             : #if defined BSDI || defined AIX \
      32             :         || defined LINUX || defined __GNU__ || defined __GLIBC__ \
      33             :         || defined FREEBSD || defined NETBSD || defined OPENBSD \
      34             :         || defined DARWIN || defined SYMBIAN
      35           3 :     _pr_pageSize = getpagesize();
      36             : #elif defined(HPUX)
      37             :     /* I have no idea. Don't get me started. --Rob */
      38             :     _pr_pageSize = sysconf(_SC_PAGE_SIZE);
      39             : #else
      40             :     _pr_pageSize = sysconf(_SC_PAGESIZE);
      41             : #endif
      42             : #endif /* XP_UNIX */
      43             : 
      44             : #ifdef XP_BEOS
      45             :     _pr_pageSize = B_PAGE_SIZE;
      46             : #endif
      47             : 
      48             : #ifdef XP_PC
      49             : #ifdef _WIN32
      50             :     SYSTEM_INFO info;
      51             :     GetSystemInfo(&info);
      52             :     _pr_pageSize = info.dwPageSize;
      53             : #else
      54             :     _pr_pageSize = 4096;
      55             : #endif
      56             : #endif /* XP_PC */
      57             : 
      58           3 :         pageSize = _pr_pageSize;
      59           3 :         PR_CEILING_LOG2(_pr_pageShift, pageSize);
      60           3 : }
      61             : 
      62             : PR_IMPLEMENT(PRInt32) PR_GetPageShift(void)
      63             : {
      64           1 :     if (!_pr_pageSize) {
      65           0 :         GetPageSize();
      66             :     }
      67           1 :     return _pr_pageShift;
      68             : }
      69             : 
      70             : PR_IMPLEMENT(PRInt32) PR_GetPageSize(void)
      71             : {
      72           5 :     if (!_pr_pageSize) {
      73           3 :         GetPageSize();
      74             :     }
      75           5 :     return _pr_pageSize;
      76             : }

Generated by: LCOV version 1.13