LCOV - app.info - nsprpub/pr/src/md/prosdep.c

LCOV - code coverage report
| Current view: | directory - nsprpub/pr/src/md - prosdep.c (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 13 | 9 | 69.2 %
| Date: | 2012-04-07 | Functions: | 3 | 2 | 66.7 %

           1                 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
           2                 : /* ***** BEGIN LICENSE BLOCK *****
           3                 :  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
           4                 :  *
           5                 :  * The contents of this file are subject to the Mozilla Public License Version
           6                 :  * 1.1 (the "License"); you may not use this file except in compliance with
           7                 :  * the License. You may obtain a copy of the License at
           8                 :  * http://www.mozilla.org/MPL/
           9                 :  *
          10                 :  * Software distributed under the License is distributed on an "AS IS" basis,
          11                 :  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
          12                 :  * for the specific language governing rights and limitations under the
          13                 :  * License.
          14                 :  *
          15                 :  * The Original Code is the Netscape Portable Runtime (NSPR).
          16                 :  *
          17                 :  * The Initial Developer of the Original Code is
          18                 :  * Netscape Communications Corporation.
          19                 :  * Portions created by the Initial Developer are Copyright (C) 1998-2000
          20                 :  * the Initial Developer. All Rights Reserved.
          21                 :  *
          22                 :  * Contributor(s):
          23                 :  *
          24                 :  * Alternatively, the contents of this file may be used under the terms of
          25                 :  * either the GNU General Public License Version 2 or later (the "GPL"), or
          26                 :  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
          27                 :  * in which case the provisions of the GPL or the LGPL are applicable instead
          28                 :  * of those above. If you wish to allow use of your version of this file only
          29                 :  * under the terms of either the GPL or the LGPL, and not to allow others to
          30                 :  * use your version of this file under the terms of the MPL, indicate your
          31                 :  * decision by deleting the provisions above and replace them with the notice
          32                 :  * and other provisions required by the GPL or the LGPL. If you do not delete
          33                 :  * the provisions above, a recipient may use your version of this file under
          34                 :  * the terms of any one of the MPL, the GPL or the LGPL.
          35                 :  *
          36                 :  * ***** END LICENSE BLOCK ***** */
          37                 :
          38                 : #include "prbit.h"
          39                 : #include "prsystem.h"
          40                 :
          41                 : #ifdef XP_UNIX
          42                 : #include <unistd.h>
          43                 : #endif
          44                 : #ifdef SUNOS4
          45                 : #include "md/sunos4.h"
          46                 : #endif
          47                 : #ifdef _WIN32
          48                 : #include <windows.h>
          49                 : #endif
          50                 : #ifdef XP_BEOS
          51                 : #include <OS.h>
          52                 : #endif
          53                 :
          54                 : PRInt32 _pr_pageShift;
          55                 : PRInt32 _pr_pageSize;
          56                 :
          57                 : /*
          58                 : ** Get system page size
          59                 : */
          60           18667 : static void GetPageSize(void)
          61                 : {
          62                 :         PRInt32 pageSize;
          63                 :
          64                 :     /* Get page size */
          65                 : #ifdef XP_UNIX
          66                 : #if defined SUNOS4 || defined BSDI || defined AIX \
          67                 :         || defined LINUX || defined __GNU__ || defined __GLIBC__ \
          68                 :         || defined FREEBSD || defined NETBSD || defined OPENBSD \
          69                 :         || defined DARWIN || defined NEXTSTEP || defined SYMBIAN
          70           18667 :     _pr_pageSize = getpagesize();
          71                 : #elif defined(HPUX)
          72                 :     /* I have no idea. Don't get me started. --Rob */
          73                 :     _pr_pageSize = sysconf(_SC_PAGE_SIZE);
          74                 : #else
          75                 :     _pr_pageSize = sysconf(_SC_PAGESIZE);
          76                 : #endif
          77                 : #endif /* XP_UNIX */
          78                 :
          79                 : #ifdef XP_BEOS
          80                 :     _pr_pageSize = B_PAGE_SIZE;
          81                 : #endif
          82                 :
          83                 : #ifdef XP_PC
          84                 : #ifdef _WIN32
          85                 :     SYSTEM_INFO info;
          86                 :     GetSystemInfo(&info);
          87                 :     _pr_pageSize = info.dwPageSize;
          88                 : #else
          89                 :     _pr_pageSize = 4096;
          90                 : #endif
          91                 : #endif /* XP_PC */
          92                 :
          93           18667 :         pageSize = _pr_pageSize;
          94           18667 :         PR_CEILING_LOG2(_pr_pageShift, pageSize);
          95           18667 : }
          96                 :
          97               0 : PR_IMPLEMENT(PRInt32) PR_GetPageShift(void)
          98                 : {
          99               0 :     if (!_pr_pageSize) {
         100               0 :         GetPageSize();
         101                 :     }
         102               0 :     return _pr_pageShift;
         103                 : }
         104                 :
         105           18667 : PR_IMPLEMENT(PRInt32) PR_GetPageSize(void)
         106                 : {
         107           18667 :     if (!_pr_pageSize) {
         108           18667 :         GetPageSize();
         109                 :     }
         110           18667 :     return _pr_pageSize;
         111                 : }

Generated by: LCOV version 1.7