Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AG_CPUINFO(3)		    Library Functions Manual		 AG_CPUINFO(3)

NAME
       AG_CPUInfo -- agar architecture information structure

SYNOPSIS
       #include	<agar/core.h>

DESCRIPTION
       The  agar AG_CPUInfo interface provides some information	about the cur-
       rent architecture and architecture extensions.

INTERFACE
       void AG_GetCPUInfo(AG_CPUInfo *info)

       The AG_GetCPUInfo() function returns CPU	information into  an  existing
       info structure.

STRUCTURE DATA
       For the AG_CPUInfo structure:

       const char *arch	   A  string  describing  the architecture (e.g., "al-
			   pha", "i386", etc).

       char vendorID[13]   A vendor ID string (architecture-specific).

       Uint32 ext	   A list of architecture extensions  that  have  some
			   relevance  to  user applications (see "ARCHITECTURE
			   EXTENSIONS" below).

ARCHITECTURE EXTENSIONS
       The ext field can contain the following flags:
       AG_EXT_CPUID	       The i386	CPUID instruction is supported.
       AG_EXT_MMX	       MMX instructions	are available.
       AG_EXT_MMX_EXT	       AMD extensions to MMX are available.
       AG_EXT_3DNOW	       3dNow! is supported.
       AG_EXT_3DNOW_EXT	       Extended	3dNow! is supported.
       AG_EXT_ALTIVEC	       AltiVec instructions are	supported.
       AG_EXT_SSE	       Streaming SIMD extensions are supported.
       AG_EXT_SSE2	       SSE2 extensions are supported.
       AG_EXT_SSE3	       SSE3 (PNI) extensions are supported.
       AG_EXT_LONG_MODE	       Long mode is available.
       AG_EXT_RDTSCP	       The RDTSCP instruction exists.
       AG_EXT_FXSR	       Fast FXSAVE/FXSTOR is available.
       AG_EXT_PAGE_NX	       The per-page no-execute bit (W^X) is supported.
       AG_EXT_SSE5A	       SSE5A extensions	are available.
       AG_EXT_3DNOW_PREFETCH   The PREFETCH  and  PREFETCHW  instructions  for
			       3dNow! are available.
       AG_EXT_SSE_MISALIGNED   Misaligned SSE mode is supported.
       AG_EXT_SSE4A	       SSE4A extensions	are available.
       AG_EXT_ONCHIP_FPU       The floating point unit is on-chip.
       AG_EXT_TSC	       The Time	Stamp Counter is available.
       AG_EXT_CMOV	       The CMOV	(Conditional Move) instruction exists.
       AG_EXT_CLFLUSH	       The  CLFLUSH (Cache Line	Flush) instruction ex-
			       ists.
       AG_EXT_HTT	       Hyper-Threading technology is supported.
       AG_EXT_MON	       MONITOR and MWAIT instructions exist.
       AG_EXT_VMX	       Virtual Machine Extensions are available.
       AG_EXT_SSSE3	       SSSE3 extensions	are available.
       AG_EXT_SSE41	       SSE4.1 extensions are available.
       AG_EXT_SSE42	       SSE4.2 extensions are available.

EXAMPLES
       The following code prints architecture information:

	     AG_CPUInfo	cpu;

	     AG_GetCPUInfo(&cpu);
	     AG_Verbose("Architecture: %s\n", cpu.arch);
	     AG_Verbose("Vendor	ID: %s\n", cpu.vendorID);
	     AG_Verbose("AltiVec: %s\n", (cpu.ext & AG_EXT_ALTIVEC) ? "Yes" : "No");
	     AG_Verbose("SSE: %s\n", (cpu.ext &	AG_EXT_SSE) ? "Yes" : "No");

SEE ALSO
       AG_Intro(3)

HISTORY
       The AG_CPUInfo interface	first appeared in Agar 1.3.4.

Agar 1.7		       December	21, 2022		 AG_CPUINFO(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_CPUInfo&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help