clang API Documentation

Defines | Functions
cpuid.h File Reference

Go to the source code of this file.

Defines

#define signature_AMD_ebx   0x68747541
#define signature_AMD_edx   0x69746e65
#define signature_AMD_ecx   0x444d4163
#define signature_CENTAUR_ebx   0x746e6543
#define signature_CENTAUR_edx   0x48727561
#define signature_CENTAUR_ecx   0x736c7561
#define signature_CYRIX_ebx   0x69727943
#define signature_CYRIX_edx   0x736e4978
#define signature_CYRIX_ecx   0x64616574
#define signature_INTEL_ebx   0x756e6547
#define signature_INTEL_edx   0x49656e69
#define signature_INTEL_ecx   0x6c65746e
#define signature_TM1_ebx   0x6e617254
#define signature_TM1_edx   0x74656d73
#define signature_TM1_ecx   0x55504361
#define signature_TM2_ebx   0x756e6547
#define signature_TM2_edx   0x54656e69
#define signature_TM2_ecx   0x3638784d
#define signature_NSC_ebx   0x646f6547
#define signature_NSC_edx   0x43534e20
#define signature_NSC_ecx   0x79622065
#define signature_NEXGEN_ebx   0x4778654e
#define signature_NEXGEN_edx   0x72446e65
#define signature_NEXGEN_ecx   0x6e657669
#define signature_RISE_ebx   0x65736952
#define signature_RISE_edx   0x65736952
#define signature_RISE_ecx   0x65736952
#define signature_SIS_ebx   0x20536953
#define signature_SIS_edx   0x20536953
#define signature_SIS_ecx   0x20536953
#define signature_UMC_ebx   0x20434d55
#define signature_UMC_edx   0x20434d55
#define signature_UMC_ecx   0x20434d55
#define signature_VIA_ebx   0x20414956
#define signature_VIA_edx   0x20414956
#define signature_VIA_ecx   0x20414956
#define signature_VORTEX_ebx   0x74726f56
#define signature_VORTEX_edx   0x36387865
#define signature_VORTEX_ecx   0x436f5320
#define bit_SSE3   0x00000001
#define bit_PCLMULQDQ   0x00000002
#define bit_DTES64   0x00000004
#define bit_MONITOR   0x00000008
#define bit_DSCPL   0x00000010
#define bit_VMX   0x00000020
#define bit_SMX   0x00000040
#define bit_EIST   0x00000080
#define bit_TM2   0x00000100
#define bit_SSSE3   0x00000200
#define bit_CNXTID   0x00000400
#define bit_FMA   0x00001000
#define bit_CMPXCHG16B   0x00002000
#define bit_xTPR   0x00004000
#define bit_PDCM   0x00008000
#define bit_PCID   0x00020000
#define bit_DCA   0x00040000
#define bit_SSE41   0x00080000
#define bit_SSE42   0x00100000
#define bit_x2APIC   0x00200000
#define bit_MOVBE   0x00400000
#define bit_POPCNT   0x00800000
#define bit_TSCDeadline   0x01000000
#define bit_AESNI   0x02000000
#define bit_XSAVE   0x04000000
#define bit_OSXSAVE   0x08000000
#define bit_AVX   0x10000000
#define bit_RDRND   0x40000000
#define bit_FPU   0x00000001
#define bit_VME   0x00000002
#define bit_DE   0x00000004
#define bit_PSE   0x00000008
#define bit_TSC   0x00000010
#define bit_MSR   0x00000020
#define bit_PAE   0x00000040
#define bit_MCE   0x00000080
#define bit_CX8   0x00000100
#define bit_APIC   0x00000200
#define bit_SEP   0x00000800
#define bit_MTRR   0x00001000
#define bit_PGE   0x00002000
#define bit_MCA   0x00004000
#define bit_CMOV   0x00008000
#define bit_PAT   0x00010000
#define bit_PSE36   0x00020000
#define bit_PSN   0x00040000
#define bit_CLFSH   0x00080000
#define bit_DS   0x00200000
#define bit_ACPI   0x00400000
#define bit_MMX   0x00800000
#define bit_FXSR   0x01000000
#define bit_FXSAVE   bit_FXSR /* for gcc compat */
#define bit_SSE   0x02000000
#define bit_SSE2   0x04000000
#define bit_SS   0x08000000
#define bit_HTT   0x10000000
#define bit_TM   0x20000000
#define bit_PBE   0x80000000
#define bit_FSGSBASE   0x00000001
#define bit_SMEP   0x00000080
#define bit_ENH_MOVSB   0x00000200
#define __cpuid(__level, __eax, __ebx, __ecx, __edx)
#define __cpuid_count(__level, __count, __eax, __ebx, __ecx, __edx)

Functions

static __inline int __get_cpuid (unsigned int __level, unsigned int *__eax, unsigned int *__ebx, unsigned int *__ecx, unsigned int *__edx)
static __inline int __get_cpuid_max (unsigned int __level, unsigned int *__sig)

Define Documentation

#define __cpuid (   __level,
  __eax,
  __ebx,
  __ecx,
  __edx 
)
Value:
__asm("  xchgq  %%rbx,%q1\n" \
          "  cpuid\n" \
          "  xchgq  %%rbx,%q1" \
        : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \
        : "0"(__level))

Definition at line 159 of file cpuid.h.

Referenced by __get_cpuid(), and __get_cpuid_max().

#define __cpuid_count (   __level,
  __count,
  __eax,
  __ebx,
  __ecx,
  __edx 
)
Value:
__asm("  xchgq  %%rbx,%q1\n" \
          "  cpuid\n" \
          "  xchgq  %%rbx,%q1" \
        : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \
        : "0"(__level), "2"(__count))

Definition at line 166 of file cpuid.h.

#define bit_ACPI   0x00400000

Definition at line 133 of file cpuid.h.

#define bit_AESNI   0x02000000

Definition at line 106 of file cpuid.h.

#define bit_APIC   0x00000200

Definition at line 122 of file cpuid.h.

#define bit_AVX   0x10000000

Definition at line 109 of file cpuid.h.

#define bit_CLFSH   0x00080000

Definition at line 131 of file cpuid.h.

#define bit_CMOV   0x00008000

Definition at line 127 of file cpuid.h.

#define bit_CMPXCHG16B   0x00002000

Definition at line 95 of file cpuid.h.

#define bit_CNXTID   0x00000400

Definition at line 93 of file cpuid.h.

#define bit_CX8   0x00000100

Definition at line 121 of file cpuid.h.

#define bit_DCA   0x00040000

Definition at line 99 of file cpuid.h.

#define bit_DE   0x00000004

Definition at line 115 of file cpuid.h.

#define bit_DS   0x00200000

Definition at line 132 of file cpuid.h.

#define bit_DSCPL   0x00000010

Definition at line 87 of file cpuid.h.

#define bit_DTES64   0x00000004

Definition at line 85 of file cpuid.h.

#define bit_EIST   0x00000080

Definition at line 90 of file cpuid.h.

#define bit_ENH_MOVSB   0x00000200

Definition at line 147 of file cpuid.h.

#define bit_FMA   0x00001000

Definition at line 94 of file cpuid.h.

#define bit_FPU   0x00000001

Definition at line 113 of file cpuid.h.

#define bit_FSGSBASE   0x00000001

Definition at line 145 of file cpuid.h.

#define bit_FXSAVE   bit_FXSR /* for gcc compat */

Definition at line 136 of file cpuid.h.

#define bit_FXSR   0x01000000

Definition at line 135 of file cpuid.h.

#define bit_HTT   0x10000000

Definition at line 140 of file cpuid.h.

#define bit_MCA   0x00004000

Definition at line 126 of file cpuid.h.

#define bit_MCE   0x00000080

Definition at line 120 of file cpuid.h.

#define bit_MMX   0x00800000

Definition at line 134 of file cpuid.h.

#define bit_MONITOR   0x00000008

Definition at line 86 of file cpuid.h.

#define bit_MOVBE   0x00400000

Definition at line 103 of file cpuid.h.

#define bit_MSR   0x00000020

Definition at line 118 of file cpuid.h.

#define bit_MTRR   0x00001000

Definition at line 124 of file cpuid.h.

#define bit_OSXSAVE   0x08000000

Definition at line 108 of file cpuid.h.

#define bit_PAE   0x00000040

Definition at line 119 of file cpuid.h.

#define bit_PAT   0x00010000

Definition at line 128 of file cpuid.h.

#define bit_PBE   0x80000000

Definition at line 142 of file cpuid.h.

#define bit_PCID   0x00020000

Definition at line 98 of file cpuid.h.

#define bit_PCLMULQDQ   0x00000002

Definition at line 84 of file cpuid.h.

#define bit_PDCM   0x00008000

Definition at line 97 of file cpuid.h.

#define bit_PGE   0x00002000

Definition at line 125 of file cpuid.h.

#define bit_POPCNT   0x00800000

Definition at line 104 of file cpuid.h.

#define bit_PSE   0x00000008

Definition at line 116 of file cpuid.h.

#define bit_PSE36   0x00020000

Definition at line 129 of file cpuid.h.

#define bit_PSN   0x00040000

Definition at line 130 of file cpuid.h.

#define bit_RDRND   0x40000000

Definition at line 110 of file cpuid.h.

#define bit_SEP   0x00000800

Definition at line 123 of file cpuid.h.

#define bit_SMEP   0x00000080

Definition at line 146 of file cpuid.h.

#define bit_SMX   0x00000040

Definition at line 89 of file cpuid.h.

#define bit_SS   0x08000000

Definition at line 139 of file cpuid.h.

#define bit_SSE   0x02000000

Definition at line 137 of file cpuid.h.

#define bit_SSE2   0x04000000

Definition at line 138 of file cpuid.h.

#define bit_SSE3   0x00000001

Definition at line 83 of file cpuid.h.

#define bit_SSE41   0x00080000

Definition at line 100 of file cpuid.h.

#define bit_SSE42   0x00100000

Definition at line 101 of file cpuid.h.

#define bit_SSSE3   0x00000200

Definition at line 92 of file cpuid.h.

#define bit_TM   0x20000000

Definition at line 141 of file cpuid.h.

#define bit_TM2   0x00000100

Definition at line 91 of file cpuid.h.

#define bit_TSC   0x00000010

Definition at line 117 of file cpuid.h.

#define bit_TSCDeadline   0x01000000

Definition at line 105 of file cpuid.h.

#define bit_VME   0x00000002

Definition at line 114 of file cpuid.h.

#define bit_VMX   0x00000020

Definition at line 88 of file cpuid.h.

#define bit_x2APIC   0x00200000

Definition at line 102 of file cpuid.h.

#define bit_XSAVE   0x04000000

Definition at line 107 of file cpuid.h.

#define bit_xTPR   0x00004000

Definition at line 96 of file cpuid.h.

#define signature_AMD_ebx   0x68747541

Definition at line 30 of file cpuid.h.

#define signature_AMD_ecx   0x444d4163

Definition at line 32 of file cpuid.h.

#define signature_AMD_edx   0x69746e65

Definition at line 31 of file cpuid.h.

#define signature_CENTAUR_ebx   0x746e6543

Definition at line 34 of file cpuid.h.

#define signature_CENTAUR_ecx   0x736c7561

Definition at line 36 of file cpuid.h.

#define signature_CENTAUR_edx   0x48727561

Definition at line 35 of file cpuid.h.

#define signature_CYRIX_ebx   0x69727943

Definition at line 38 of file cpuid.h.

#define signature_CYRIX_ecx   0x64616574

Definition at line 40 of file cpuid.h.

#define signature_CYRIX_edx   0x736e4978

Definition at line 39 of file cpuid.h.

#define signature_INTEL_ebx   0x756e6547

Definition at line 42 of file cpuid.h.

#define signature_INTEL_ecx   0x6c65746e

Definition at line 44 of file cpuid.h.

#define signature_INTEL_edx   0x49656e69

Definition at line 43 of file cpuid.h.

#define signature_NEXGEN_ebx   0x4778654e

Definition at line 58 of file cpuid.h.

#define signature_NEXGEN_ecx   0x6e657669

Definition at line 60 of file cpuid.h.

#define signature_NEXGEN_edx   0x72446e65

Definition at line 59 of file cpuid.h.

#define signature_NSC_ebx   0x646f6547

Definition at line 54 of file cpuid.h.

#define signature_NSC_ecx   0x79622065

Definition at line 56 of file cpuid.h.

#define signature_NSC_edx   0x43534e20

Definition at line 55 of file cpuid.h.

#define signature_RISE_ebx   0x65736952

Definition at line 62 of file cpuid.h.

#define signature_RISE_ecx   0x65736952

Definition at line 64 of file cpuid.h.

#define signature_RISE_edx   0x65736952

Definition at line 63 of file cpuid.h.

#define signature_SIS_ebx   0x20536953

Definition at line 66 of file cpuid.h.

#define signature_SIS_ecx   0x20536953

Definition at line 68 of file cpuid.h.

#define signature_SIS_edx   0x20536953

Definition at line 67 of file cpuid.h.

#define signature_TM1_ebx   0x6e617254

Definition at line 46 of file cpuid.h.

#define signature_TM1_ecx   0x55504361

Definition at line 48 of file cpuid.h.

#define signature_TM1_edx   0x74656d73

Definition at line 47 of file cpuid.h.

#define signature_TM2_ebx   0x756e6547

Definition at line 50 of file cpuid.h.

#define signature_TM2_ecx   0x3638784d

Definition at line 52 of file cpuid.h.

#define signature_TM2_edx   0x54656e69

Definition at line 51 of file cpuid.h.

#define signature_UMC_ebx   0x20434d55

Definition at line 70 of file cpuid.h.

#define signature_UMC_ecx   0x20434d55

Definition at line 72 of file cpuid.h.

#define signature_UMC_edx   0x20434d55

Definition at line 71 of file cpuid.h.

#define signature_VIA_ebx   0x20414956

Definition at line 74 of file cpuid.h.

#define signature_VIA_ecx   0x20414956

Definition at line 76 of file cpuid.h.

#define signature_VIA_edx   0x20414956

Definition at line 75 of file cpuid.h.

#define signature_VORTEX_ebx   0x74726f56

Definition at line 78 of file cpuid.h.

#define signature_VORTEX_ecx   0x436f5320

Definition at line 80 of file cpuid.h.

#define signature_VORTEX_edx   0x36387865

Definition at line 79 of file cpuid.h.


Function Documentation

static __inline int __get_cpuid ( unsigned int  __level,
unsigned int *  __eax,
unsigned int *  __ebx,
unsigned int *  __ecx,
unsigned int *  __edx 
) [static]

Definition at line 174 of file cpuid.h.

References __cpuid.

static __inline int __get_cpuid_max ( unsigned int  __level,
unsigned int *  __sig 
) [static]

Definition at line 181 of file cpuid.h.

References __cpuid.