Implement ArGetCpuFlags() routine
This commit is contained in:
@@ -82,6 +82,30 @@ ArFlushTlb(VOID)
|
||||
ArWriteControlRegister(3, ArReadControlRegister(3));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the RFLAGS register.
|
||||
*
|
||||
* @return This routine returns the RFLAGS register.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTCDECL
|
||||
ULONG
|
||||
ArGetCpuFlags(VOID)
|
||||
{
|
||||
ULONG Flags;
|
||||
|
||||
/* Get RFLAGS register */
|
||||
asm volatile("pushf\n"
|
||||
"pop %0\n"
|
||||
: "=rm" (Flags)
|
||||
:
|
||||
: "memory");
|
||||
|
||||
/* Return flags */
|
||||
return Flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the address of the current stack register.
|
||||
*
|
||||
|
@@ -82,6 +82,30 @@ ArFlushTlb(VOID)
|
||||
ArWriteControlRegister(3, ArReadControlRegister(3));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the EFLAGS register.
|
||||
*
|
||||
* @return This routine returns the EFLAGS register.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTCDECL
|
||||
ULONG
|
||||
ArGetCpuFlags(VOID)
|
||||
{
|
||||
ULONG Flags;
|
||||
|
||||
/* Get EFLAGS register */
|
||||
asm volatile("pushf\n"
|
||||
"pop %0\n"
|
||||
: "=rm" (Flags)
|
||||
:
|
||||
: "memory");
|
||||
|
||||
/* Return flags */
|
||||
return Flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the address of the current stack register.
|
||||
*
|
||||
|
Reference in New Issue
Block a user