Implement ArGetCpuFlags() routine
This commit is contained in:
parent
efef3cb80d
commit
2a8cc7397e
@ -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.
|
||||
*
|
||||
|
@ -25,6 +25,10 @@ XTCDECL
|
||||
VOID
|
||||
ArFlushTlb(VOID);
|
||||
|
||||
XTCDECL
|
||||
ULONG
|
||||
ArGetCpuFlags(VOID);
|
||||
|
||||
XTASSEMBLY
|
||||
XTCDECL
|
||||
ULONG_PTR
|
||||
|
@ -25,6 +25,10 @@ XTCDECL
|
||||
VOID
|
||||
ArFlushTlb(VOID);
|
||||
|
||||
XTCDECL
|
||||
ULONG
|
||||
ArGetCpuFlags(VOID);
|
||||
|
||||
XTASSEMBLY
|
||||
XTCDECL
|
||||
ULONG_PTR
|
||||
|
Loading…
Reference in New Issue
Block a user