Go to the source code of this file.
|
typedef void(* | OsCpuCallback) (size_t processor, uintptr_t cbData) |
| called by os_cpu_CallByEachCPU. More...
|
|
◆ OsCpuCallback
typedef void(* OsCpuCallback) (size_t processor, uintptr_t cbData) |
called by os_cpu_CallByEachCPU.
- Parameters
-
processor | ID of processor running the current thread for the duration of this function. |
cbData | user-specified data passed through os_cpu_CallByEachCPU. |
◆ os_cpu_CallByEachCPU()
execute the specified function once on each processor.
this proceeds serially (the callback is never reentered) in increasing order of processor ID. fails if process affinity prevents running on all processors.
◆ os_cpu_ClockFrequency()
double os_cpu_ClockFrequency |
( |
| ) |
|
- Returns
- a rough estimate of the CPU clock frequency. this is usually accurate to a few MHz and is faster than measurement loops.
◆ os_cpu_LargePageSize()
size_t os_cpu_LargePageSize |
( |
| ) |
|
- Returns
- the size [bytes] of a large MMU page (4 MiB on most IA-32 systems) or zero if they are not supported.
◆ os_cpu_MemoryAvailable()
size_t os_cpu_MemoryAvailable |
( |
| ) |
|
- Returns
- the current amount [MB] of available memory.
◆ os_cpu_MemorySize()
size_t os_cpu_MemorySize |
( |
| ) |
|
- Returns
- the size [MB] of physical memory; caches the result of os_cpu_QueryMemorySize and overrides it with a more exact value if SMBIOS information is available.
◆ os_cpu_NumProcessors()
size_t os_cpu_NumProcessors |
( |
| ) |
|
- Returns
- the number of processors available to this process.
note: this function is necessary because POSIX sysconf _SC_NPROCESSORS_CONF is not suppored on MacOSX, else we would use that.
◆ os_cpu_PageSize()
size_t os_cpu_PageSize |
( |
| ) |
|
- Returns
- the size [bytes] of a MMU page (4096 on most IA-32 systems)
◆ os_cpu_ProcessorMask()
uintptr_t os_cpu_ProcessorMask |
( |
| ) |
|
- Returns
- bit mask of processors that exist and are available to this process. its population count is by definition equal to os_cpu_NumProcessors().
◆ os_cpu_QueryMemorySize()
size_t os_cpu_QueryMemorySize |
( |
| ) |
|
- Returns
- the size [MB] of physical memory as reported by the OS; no caching/validation is performed.
◆ os_cpu_SetThreadAffinityMask()
uintptr_t os_cpu_SetThreadAffinityMask |
( |
uintptr_t |
processorMask | ) |
|
restrict the current thread to a set of processors.
- Parameters
-
processorMask | a bit mask of acceptable processors (bit index i corresponds to processor i) |
- Returns
- the previous mask
◆ os_cpu_MaxProcessors
const size_t os_cpu_MaxProcessors = sizeof(uintptr_t)*CHAR_BIT |
|
static |
maximum number of processors supported by the OS (determined by the number of bits in an affinity mask)