/*********************************************************
- * Copyright (C) 2003-2017 VMware, Inc. All rights reserved.
+ * Copyright (C) 2003-2018 VMware, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
#endif
static INLINE void
-__GET_CPUID(int eax, // IN
+__GET_CPUID(uint32 eax, // IN
CPUIDRegs *regs) // OUT
{
__asm__ __volatile__(
VM_CPUID_BLOCK
- : "=a" (regs->eax), VM_EBX_OUT(regs->ebx), "=c" (regs->ecx), "=d" (regs->edx)
+ : "=a" (regs->eax),
+ VM_EBX_OUT(regs->ebx),
+ "=c" (regs->ecx),
+ "=d" (regs->edx)
: "a" (eax)
: "memory"
);
}
static INLINE void
-__GET_CPUID2(int eax, // IN
- int ecx, // IN
+__GET_CPUID2(uint32 eax, // IN
+ uint32 ecx, // IN
CPUIDRegs *regs) // OUT
{
__asm__ __volatile__(
VM_CPUID_BLOCK
- : "=a" (regs->eax), VM_EBX_OUT(regs->ebx), "=c" (regs->ecx), "=d" (regs->edx)
+ : "=a" (regs->eax),
+ VM_EBX_OUT(regs->ebx),
+ "=c" (regs->ecx),
+ "=d" (regs->edx)
: "a" (eax), "c" (ecx)
: "memory"
);
}
static INLINE uint32
-__GET_EAX_FROM_CPUID(int eax) // IN
+__GET_EAX_FROM_CPUID(uint32 eax) // IN
{
uint32 ebx;
__asm__ __volatile__(
VM_CPUID_BLOCK
- : "=a" (eax), VM_EBX_OUT(ebx)
+ : "=a" (eax),
+ VM_EBX_OUT(ebx)
: "a" (eax)
: "memory", "%ecx", "%edx"
);
}
static INLINE uint32
-__GET_EBX_FROM_CPUID(int eax) // IN
+__GET_EBX_FROM_CPUID(uint32 eax) // IN
{
uint32 ebx;
}
static INLINE uint32
-__GET_ECX_FROM_CPUID(int eax) // IN
+__GET_ECX_FROM_CPUID(uint32 eax) // IN
{
uint32 ecx;
uint32 ebx;
__asm__ __volatile__(
VM_CPUID_BLOCK
- : "=a" (eax), VM_EBX_OUT(ebx), "=c" (ecx)
+ : "=a" (eax),
+ VM_EBX_OUT(ebx),
+ "=c" (ecx)
: "a" (eax)
: "memory", "%edx"
);
}
static INLINE uint32
-__GET_EDX_FROM_CPUID(int eax) // IN
+__GET_EDX_FROM_CPUID(uint32 eax) // IN
{
uint32 edx;
uint32 ebx;
__asm__ __volatile__(
VM_CPUID_BLOCK
- : "=a" (eax), VM_EBX_OUT(ebx), "=d" (edx)
+ : "=a" (eax),
+ VM_EBX_OUT(ebx),
+ "=d" (edx)
: "a" (eax)
: "memory", "%ecx"
);
static INLINE uint32
-__GET_EAX_FROM_CPUID4(int ecx) // IN
+__GET_EAX_FROM_CPUID4(uint32 ecx) // IN
{
uint32 eax;
uint32 ebx;
#elif defined(_MSC_VER) // } {
static INLINE void
-__GET_CPUID(int input, CPUIDRegs *regs)
+__GET_CPUID(uint32 input, CPUIDRegs *regs)
{
#ifdef VM_X86_64
__cpuid((int *)regs, input);
*/
static INLINE void
-__GET_CPUID2(int inputEax, int inputEcx, CPUIDRegs *regs)
+__GET_CPUID2(uint32 inputEax, uint32 inputEcx, CPUIDRegs *regs)
{
__cpuidex((int *)regs, inputEax, inputEcx);
}
*/
extern void
-__GET_CPUID2(int inputEax, int inputEcx, CPUIDRegs *regs);
+__GET_CPUID2(uint32 inputEax, uint32 inputEcx, CPUIDRegs *regs);
#endif // _MSC_VER >= 1500
#else // VM_X86_64
static INLINE void
-__GET_CPUID2(int inputEax, int inputEcx, CPUIDRegs *regs)
+__GET_CPUID2(uint32 inputEax, uint32 inputEcx, CPUIDRegs *regs)
{
__asm push esi
__asm push ebx
#endif
static INLINE uint32
-__GET_EAX_FROM_CPUID(int input)
+__GET_EAX_FROM_CPUID(uint32 input)
{
#ifdef VM_X86_64
CPUIDRegs regs;
}
static INLINE uint32
-__GET_EBX_FROM_CPUID(int input)
+__GET_EBX_FROM_CPUID(uint32 input)
{
#ifdef VM_X86_64
CPUIDRegs regs;
}
static INLINE uint32
-__GET_ECX_FROM_CPUID(int input)
+__GET_ECX_FROM_CPUID(uint32 input)
{
#ifdef VM_X86_64
CPUIDRegs regs;
}
static INLINE uint32
-__GET_EDX_FROM_CPUID(int input)
+__GET_EDX_FROM_CPUID(uint32 input)
{
#ifdef VM_X86_64
CPUIDRegs regs;
*/
extern uint32
-__GET_EAX_FROM_CPUID4(int inputEcx);
+__GET_EAX_FROM_CPUID4(uint32 inputEcx);
#else // VM_X86_64
static INLINE uint32
-__GET_EAX_FROM_CPUID4(int inputEcx)
+__GET_EAX_FROM_CPUID4(uint32 inputEcx)
{
uint32 output;