Ottenere informazioni generali sulla CPU con le funzioni esterne del API di SDL2

Da Gambas-it.org - Wikipedia.

La libreria SDL2 fornisce funzioni per conoscere alcune caratteristiche generali della CPU utilizzata.

A tal fine sarà necessario servirsi della seguente libreria condivisa: "libSDL2-2.0.so.0.3000.0 ".

Mostriamo un semplice esempio:

Library "libSDL2-2.0:0.3000.0"

' const char* SDL_GetPlatform(void)
' Gets the name of the platform.
Private Extern SDL_GetPlatform() As String

' int SDL_GetCPUCount(void)
' Returns the number of CPU cores available.
Private Extern SDL_GetCPUCount() As Integer

' int SDL_GetCPUCacheLineSize(void)
' Determines the L1 cache line size of the CPU.
Private Extern SDL_GetCPUCacheLineSize() As Integer

' SDL_bool SDL_HasRDTSC(void)
' Determines whether the CPU has the RDTSC instruction.
Private Extern SDL_HasRDTSC() As Boolean

' SDL_bool SDL_HasAltiVec(void)
' Determines whether the CPU has AltiVec features.
Private Extern SDL_HasAltiVec() As Boolean

' SDL_bool SDL_HasMMX(void)
' Determines whether the CPU has MMX features.
Private Extern SDL_HasMMX() As Boolean

' SDL_bool SDL_Has3DNow(void)
' Determines whether the CPU has 3DNow! features.
Private Extern SDL_Has3DNow() As Boolean

' SDL_bool SDL_HasSSE(void)
' Determines whether the CPU has SSE features.
Private Extern SDL_HasSSE() As Boolean

' SDL_bool SDL_HasSSE2(void)
' Determines whether the CPU has SSE2 features.
Private Extern SDL_HasSSE2() As Boolean

' SDL_bool SDL_HasSSE3(void)
' Determines whether the CPU has SSE3 features.
Private Extern SDL_HasSSE3() As Boolean

' SDL_bool SDL_HasSSE41(void)
' Determines whether the CPU has SSE4.1 features.
Private Extern SDL_HasSSE41() As Boolean

' SDL_bool SDL_HasSSE42(void)
' Determines whether the CPU has SSE4.2 features.
Private Extern SDL_HasSSE42() As Boolean

' SDL_bool SDL_HasAVX(void)
' Determines whether the CPU has AVX features.
Private Extern SDL_HasAVX() As Boolean

' int SDL_GetSystemRAM(void)
' Gets the amount of RAM configured in the system.
Private Extern SDL_GetSystemRAM() As Integer


Public Sub Main()
 
 Print "Sistema operativo in esecuzione: "; SDL_GetPlatform()
 Print "CPU disponibili: "; SDL_GetCPUCount()
 Print "Dimensione della linea di cache della CPU: "; SDL_GetCPUCacheLineSize()
 Print "RDTSC: "; IIf(SDL_HasRDTSC(), "riscontrato", "non riscontrato")
 Print "AltiVec: "; IIf(SDL_HasAltiVec(), "riscontrato", "non riscontrato")
 Print "MMX: "; IIf(SDL_HasMMX(), "riscontrato", "non riscontrato")
 Print "3DNow!: "; IIf(SDL_Has3DNow(), "riscontrato", "non riscontrato")
 Print "SSE: "; IIf(SDL_HasSSE(), "riscontrato", "non riscontrato")
 Print "SSE2: "; IIf(SDL_HasSSE2(), "riscontrato", "non riscontrato")
 Print "SSE3: "; IIf(SDL_HasSSE3(), "riscontrato", "non riscontrato")
 Print "SSE4.1: "; IIf(SDL_HasSSE41(), "riscontrato", "non riscontrato")
 Print "SSE4.2: "; IIf(SDL_HasSSE42(), "riscontrato", "non riscontrato")
 Print "AVX: "; IIf(SDL_HasAVX(), "riscontrato", "non riscontrato")
 Print "RAM di sistema: "; SDL_GetSystemRAM(); "MB"

End


Riferimenti