tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

prsystem.h (2698B)


      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 #ifndef prsystem_h___
      7 #define prsystem_h___
      8 
      9 /*
     10 ** API to NSPR functions returning system info.
     11 */
     12 #include "prtypes.h"
     13 
     14 PR_BEGIN_EXTERN_C
     15 
     16 /*
     17 ** Get the host' directory separator.
     18 **  Pathnames are then assumed to be of the form:
     19 **      [<sep><root_component><sep>]*(<component><sep>)<leaf_name>
     20 */
     21 
     22 NSPR_API(char) PR_GetDirectorySeparator(void);
     23 
     24 /*
     25 ** OBSOLETE -- the function name is misspelled.
     26 ** Use PR_GetDirectorySeparator instead.
     27 */
     28 
     29 NSPR_API(char) PR_GetDirectorySepartor(void);
     30 
     31 /*
     32 ** Get the host' path separator.
     33 **  Paths are assumed to be of the form:
     34 **      <directory>[<sep><directory>]*
     35 */
     36 
     37 NSPR_API(char) PR_GetPathSeparator(void);
     38 
     39 /* Types of information available via PR_GetSystemInfo(...) */
     40 typedef enum {
     41    PR_SI_HOSTNAME,  /* the hostname with the domain name (if any)
     42                      * removed */
     43    PR_SI_SYSNAME,
     44    PR_SI_RELEASE,
     45    PR_SI_ARCHITECTURE,
     46    PR_SI_HOSTNAME_UNTRUNCATED, /* the hostname exactly as configured
     47                                 * on the system */
     48    PR_SI_RELEASE_BUILD
     49 } PRSysInfo;
     50 
     51 
     52 /*
     53 ** If successful returns a null termintated string in 'buf' for
     54 ** the information indicated in 'cmd'. If unseccussful the reason for
     55 ** the failure can be retrieved from PR_GetError().
     56 **
     57 ** The buffer is allocated by the caller and should be at least
     58 ** SYS_INFO_BUFFER_LENGTH bytes in length.
     59 */
     60 
     61 #define SYS_INFO_BUFFER_LENGTH 256
     62 
     63 NSPR_API(PRStatus) PR_GetSystemInfo(PRSysInfo cmd, char *buf, PRUint32 buflen);
     64 
     65 /*
     66 ** Return the number of bytes in a page
     67 */
     68 NSPR_API(PRInt32) PR_GetPageSize(void);
     69 
     70 /*
     71 ** Return log2 of the size of a page
     72 */
     73 NSPR_API(PRInt32) PR_GetPageShift(void);
     74 
     75 /*
     76 ** PR_GetNumberOfProcessors() -- returns the number of CPUs
     77 **
     78 ** Description:
     79 ** PR_GetNumberOfProcessors() extracts the number of processors
     80 ** (CPUs available in an SMP system) and returns the number.
     81 **
     82 ** Parameters:
     83 **   none
     84 **
     85 ** Returns:
     86 **   The number of available processors or -1 on error
     87 **
     88 */
     89 NSPR_API(PRInt32) PR_GetNumberOfProcessors( void );
     90 
     91 /*
     92 ** PR_GetPhysicalMemorySize() -- returns the amount of system RAM
     93 **
     94 ** Description:
     95 ** PR_GetPhysicalMemorySize() determines the amount of physical RAM
     96 ** in the system and returns the size in bytes.
     97 **
     98 ** Parameters:
     99 **   none
    100 **
    101 ** Returns:
    102 **   The amount of system RAM, or 0 on failure.
    103 **
    104 */
    105 NSPR_API(PRUint64) PR_GetPhysicalMemorySize(void);
    106 
    107 PR_END_EXTERN_C
    108 
    109 #endif /* prsystem_h___ */