Functions

cpu.h File Reference

Functions related to CPU specific instructions. More...

Go to the source code of this file.

Functions

uint64 ottd_rdtsc ()
 Get the tick counter from the CPU (high precision timing).
void ottd_cpuid (int info[4], int type)
 Get the CPUID information from the CPU.
bool HasCPUIDFlag (uint type, uint index, uint bit)
 Check whether the current CPU has the given flag.

Detailed Description

Functions related to CPU specific instructions.

Definition in file cpu.h.


Function Documentation

bool HasCPUIDFlag ( uint  type,
uint  index,
uint  bit 
)

Check whether the current CPU has the given flag.

Parameters:
type The type to be passing to cpuid (usually 1).
index The index in the returned info array.
bit The bit index that needs to be set.
Returns:
The value of the bit, or false when there is no CPUID or the type is not available.

Definition at line 131 of file cpu.cpp.

References HasBit(), and ottd_cpuid().

void ottd_cpuid ( int  info[4],
int  type 
)

Get the CPUID information from the CPU.

Parameters:
info The retrieved info. All zeros on architectures without CPUID.
type The information this instruction should retrieve.

Get the CPUID information from the CPU.

MSVC offers cpu information while gcc only implements in gcc 4.8 __builtin_cpu_supports and friends http://msdn.microsoft.com/library/vstudio/hskdteyh%28v=vs.100%29.aspx http://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html

Other platforms/architectures don't have CPUID, so zero the info and then most (if not all) of the features are set as if they do not exist.

Definition at line 125 of file cpu.cpp.

Referenced by HasCPUIDFlag().

uint64 ottd_rdtsc (  ) 

Get the tick counter from the CPU (high precision timing).

Returns:
The count.

Definition at line 76 of file cpu.cpp.