Implement ArGetCpuFlags() routine
This commit is contained in:
parent
efef3cb80d
commit
2a8cc7397e
@ -82,6 +82,30 @@ ArFlushTlb(VOID)
|
|||||||
ArWriteControlRegister(3, ArReadControlRegister(3));
|
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.
|
* Gets the address of the current stack register.
|
||||||
*
|
*
|
||||||
|
@ -82,6 +82,30 @@ ArFlushTlb(VOID)
|
|||||||
ArWriteControlRegister(3, ArReadControlRegister(3));
|
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.
|
* Gets the address of the current stack register.
|
||||||
*
|
*
|
||||||
|
@ -25,6 +25,10 @@ XTCDECL
|
|||||||
VOID
|
VOID
|
||||||
ArFlushTlb(VOID);
|
ArFlushTlb(VOID);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
ULONG
|
||||||
|
ArGetCpuFlags(VOID);
|
||||||
|
|
||||||
XTASSEMBLY
|
XTASSEMBLY
|
||||||
XTCDECL
|
XTCDECL
|
||||||
ULONG_PTR
|
ULONG_PTR
|
||||||
|
@ -25,6 +25,10 @@ XTCDECL
|
|||||||
VOID
|
VOID
|
||||||
ArFlushTlb(VOID);
|
ArFlushTlb(VOID);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
ULONG
|
||||||
|
ArGetCpuFlags(VOID);
|
||||||
|
|
||||||
XTASSEMBLY
|
XTASSEMBLY
|
||||||
XTCDECL
|
XTCDECL
|
||||||
ULONG_PTR
|
ULONG_PTR
|
||||||
|
Loading…
Reference in New Issue
Block a user