Coverage Report

Created: 2026-10-06 06:17

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/nspr/pr/src/md/prosdep.c
Line
Count
Source
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5
#include "prbit.h"
6
#include "prsystem.h"
7
8
#ifdef XP_UNIX
9
#  include <unistd.h>
10
#endif
11
#ifdef _WIN32
12
#  include <windows.h>
13
#endif
14
15
PRInt32 _pr_pageShift;
16
PRInt32 _pr_pageSize;
17
18
/*
19
** Get system page size
20
*/
21
21
static void GetPageSize(void) {
22
21
  PRInt32 pageSize;
23
24
  /* Get page size */
25
21
#ifdef XP_UNIX
26
21
#  if defined AIX || defined LINUX || defined __GNU__ || defined __GLIBC__ || \
27
21
      defined FREEBSD || defined NETBSD || defined OPENBSD || defined DARWIN
28
21
  _pr_pageSize = getpagesize();
29
#  else
30
  _pr_pageSize = sysconf(_SC_PAGESIZE);
31
#  endif
32
21
#endif /* XP_UNIX */
33
34
#ifdef XP_PC
35
#  ifdef _WIN32
36
  SYSTEM_INFO info;
37
  GetSystemInfo(&info);
38
  _pr_pageSize = info.dwPageSize;
39
#  else
40
  _pr_pageSize = 4096;
41
#  endif
42
#endif /* XP_PC */
43
44
21
  pageSize = _pr_pageSize;
45
21
  PR_CEILING_LOG2(_pr_pageShift, pageSize);
46
21
}
47
48
0
PR_IMPLEMENT(PRInt32) PR_GetPageShift(void) {
49
0
  if (!_pr_pageSize) {
50
0
    GetPageSize();
51
0
  }
52
0
  return _pr_pageShift;
53
0
}
54
55
21
PR_IMPLEMENT(PRInt32) PR_GetPageSize(void) {
56
21
  if (!_pr_pageSize) {
57
21
    GetPageSize();
58
21
  }
59
21
  return _pr_pageSize;
60
21
}