PageRenderTime 203ms CodeModel.GetById 111ms app.highlight 3ms RepoModel.GetById 87ms app.codeStats 1ms

/gecko_api/include/prsystem.h

http://firefox-mac-pdf.googlecode.com/
C++ Header | 140 lines | 22 code | 20 blank | 98 comment | 0 complexity | 432dd49b6887289594258b3d0bca0b53 MD5 | raw file
  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#ifndef prsystem_h___
 39#define prsystem_h___
 40
 41/*
 42** API to NSPR functions returning system info.
 43*/
 44#include "prtypes.h"
 45
 46PR_BEGIN_EXTERN_C
 47
 48/*
 49** Get the host' directory separator.
 50**  Pathnames are then assumed to be of the form:
 51**      [<sep><root_component><sep>]*(<component><sep>)<leaf_name>
 52*/
 53
 54NSPR_API(char) PR_GetDirectorySeparator(void);
 55
 56/*
 57** OBSOLETE -- the function name is misspelled.
 58** Use PR_GetDirectorySeparator instead.
 59*/
 60
 61NSPR_API(char) PR_GetDirectorySepartor(void);
 62
 63/*
 64** Get the host' path separator.
 65**  Paths are assumed to be of the form:
 66**      <directory>[<sep><directory>]*
 67*/
 68
 69NSPR_API(char) PR_GetPathSeparator(void);
 70
 71/* Types of information available via PR_GetSystemInfo(...) */
 72typedef enum {
 73    PR_SI_HOSTNAME,  /* the hostname with the domain name (if any)
 74                      * removed */
 75    PR_SI_SYSNAME,
 76    PR_SI_RELEASE,
 77    PR_SI_ARCHITECTURE,
 78    PR_SI_HOSTNAME_UNTRUNCATED  /* the hostname exactly as configured
 79                                 * on the system */
 80} PRSysInfo;
 81
 82
 83/*
 84** If successful returns a null termintated string in 'buf' for
 85** the information indicated in 'cmd'. If unseccussful the reason for
 86** the failure can be retrieved from PR_GetError().
 87**
 88** The buffer is allocated by the caller and should be at least
 89** SYS_INFO_BUFFER_LENGTH bytes in length.
 90*/
 91
 92#define SYS_INFO_BUFFER_LENGTH 256
 93
 94NSPR_API(PRStatus) PR_GetSystemInfo(PRSysInfo cmd, char *buf, PRUint32 buflen);
 95
 96/*
 97** Return the number of bytes in a page
 98*/
 99NSPR_API(PRInt32) PR_GetPageSize(void);
100
101/*
102** Return log2 of the size of a page
103*/
104NSPR_API(PRInt32) PR_GetPageShift(void);
105
106/*
107** PR_GetNumberOfProcessors() -- returns the number of CPUs
108**
109** Description:
110** PR_GetNumberOfProcessors() extracts the number of processors
111** (CPUs available in an SMP system) and returns the number.
112** 
113** Parameters:
114**   none
115**
116** Returns:
117**   The number of available processors or -1 on error
118** 
119*/
120NSPR_API(PRInt32) PR_GetNumberOfProcessors( void );
121
122/*
123** PR_GetPhysicalMemorySize() -- returns the amount of system RAM
124**
125** Description:
126** PR_GetPhysicalMemorySize() determines the amount of physical RAM
127** in the system and returns the size in bytes.
128**
129** Parameters:
130**   none
131**
132** Returns:
133**   The amount of system RAM, or 0 on failure.
134**
135*/
136NSPR_API(PRUint64) PR_GetPhysicalMemorySize(void);
137
138PR_END_EXTERN_C
139
140#endif /* prsystem_h___ */