Ottenere alcune informazioni sulla CPU mediante l'API di Libavutil

Da Gambas-it.org - Wikipedia.

Con la libreria Libavutil è possibile ottenere alcune informazioni sulla CPU.

E' necessario aver installato e richiamare in Gambas la libreria condivisa: "libavutil.so.56.70.100 " oppure "libavutil.so.58.29.100.

Mostriamo un esempio pratico:

Library "libavutil:56.70.100"   ' oppure "libavutil:58.29.100"

' int av_get_cpu_flags(void)
' Return the flags which specify extensions supported by the CPU.
Private Extern av_get_cpu_flags() As Integer


Public Sub Main()

 Dim i, i2, c As Integer
 Dim b As Byte

 i = av_get_cpu_flags()
  
 While c < &40000000
   i2 = i And c
   Select Case i2
     Case 1
       Print "standard MMX"
     Case 2
       Print "SSE integer functions or AMD MMX ext"
     Case 4
       Print "AMD 3DNOW"
     Case 8
       Print "SSE functions"
     Case 16
       Print "PIV SSE2 functions"
     Case 32
       Print "AMD 3DNowExt"
     Case 64
       Print "Prescott SSE3 functions"
     Case 128
       Print "Conroe SSSE3 functions"
     Case 256
       Print "Penryn SSE4.1 functions"
     Case 512
       Print "Nehalem SSE4.2 functions"
     Case 1024
       Print "Bulldozer XOP functions"
     Case 2048
       Print "Bulldozer FMA4 functions"
     Case 4096
       Print "i686 cmov"
     Case 16384
       Print "AVX functions"
     Case 268435456
       Print "Atom processor"
     Case 536870912
       Print "SSE3 supported"
     Case 1073741824
       Print "SSE2 supported"
   End Select
   c = 2 ^ b
   Inc b
 Wend
  
End


Riferimenti