|
|
1.1 root 1: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2: /*
3: * The contents of this file are subject to the Mozilla Public
4: * License Version 1.1 (the "License"); you may not use this file
5: * except in compliance with the License. You may obtain a copy of
6: * the License at http://www.mozilla.org/MPL/
7: *
8: * Software distributed under the License is distributed on an "AS
9: * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10: * implied. See the License for the specific language governing
11: * rights and limitations under the License.
12: *
13: * The Original Code is the Netscape Portable Runtime (NSPR).
14: *
15: * The Initial Developer of the Original Code is Netscape
16: * Communications Corporation. Portions created by Netscape are
17: * Copyright (C) 1998-2000 Netscape Communications Corporation. All
18: * Rights Reserved.
19: *
20: * Contributor(s):
21: *
22: * Alternatively, the contents of this file may be used under the
23: * terms of the GNU General Public License Version 2 or later (the
24: * "GPL"), in which case the provisions of the GPL are applicable
25: * instead of those above. If you wish to allow use of your
26: * version of this file only under the terms of the GPL and not to
27: * allow others to use your version of this file under the MPL,
28: * indicate your decision by deleting the provisions above and
29: * replace them with the notice and other provisions required by
30: * the GPL. If you do not delete the provisions above, a recipient
31: * may use your version of this file under either the MPL or the
32: * GPL.
33: */
34:
35: #ifndef prsystem_h___
36: #define prsystem_h___
37:
38: /*
39: ** API to NSPR functions returning system info.
40: */
41: #include "prtypes.h"
42:
43: PR_BEGIN_EXTERN_C
44:
45: /*
46: ** Get the host' directory separator.
47: ** Pathnames are then assumed to be of the form:
48: ** [<sep><root_component><sep>]*(<component><sep>)<leaf_name>
49: */
50:
51: NSPR_API(char) PR_GetDirectorySeparator(void);
52:
53: /*
54: ** OBSOLETE -- the function name is misspelled.
55: ** Use PR_GetDirectorySeparator instead.
56: */
57:
58: NSPR_API(char) PR_GetDirectorySepartor(void);
59:
60: /*
61: ** Get the host' path separator.
62: ** Paths are assumed to be of the form:
63: ** <directory>[<sep><directory>]*
64: */
65:
66: NSPR_API(char) PR_GetPathSeparator(void);
67:
68: /* Types of information available via PR_GetSystemInfo(...) */
69: typedef enum {
70: PR_SI_HOSTNAME,
71: PR_SI_SYSNAME,
72: PR_SI_RELEASE,
73: PR_SI_ARCHITECTURE
74: } PRSysInfo;
75:
76:
77: /*
78: ** If successful returns a null termintated string in 'buf' for
79: ** the information indicated in 'cmd'. If unseccussful the reason for
80: ** the failure can be retrieved from PR_GetError().
81: **
82: ** The buffer is allocated by the caller and should be at least
83: ** SYS_INFO_BUFFER_LENGTH bytes in length.
84: */
85:
86: #define SYS_INFO_BUFFER_LENGTH 256
87:
88: NSPR_API(PRStatus) PR_GetSystemInfo(PRSysInfo cmd, char *buf, PRUint32 buflen);
89:
90: /*
91: ** Return the number of bytes in a page
92: */
93: NSPR_API(PRInt32) PR_GetPageSize(void);
94:
95: /*
96: ** Return log2 of the size of a page
97: */
98: NSPR_API(PRInt32) PR_GetPageShift(void);
99:
100: /*
101: ** PR_GetNumberOfProcessors() -- returns the number of CPUs
102: **
103: ** Description:
104: ** PR_GetNumberOfProcessors() extracts the number of processors
105: ** (CPUs available in an SMP system) and returns the number.
106: **
107: ** Parameters:
108: ** none
109: **
110: ** Returns:
111: ** The number of available processors or -1 on error
112: **
113: */
114: NSPR_API(PRInt32) PR_GetNumberOfProcessors( void );
115:
116: PR_END_EXTERN_C
117:
118: #endif /* prsystem_h___ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.