Implement ArYieldProcessor() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2023-02-27 17:28:20 +01:00
parent 286fc76577
commit e41de62dab
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
4 changed files with 42 additions and 0 deletions

View File

@ -108,4 +108,8 @@ VOID
ArWriteModelSpecificRegister(IN ULONG Register,
IN ULONGLONG Value);
XTCDECL
VOID
ArYieldProcessor();
#endif /* __XTDK_AMD64_ARFUNCS_H */

View File

@ -104,4 +104,8 @@ VOID
ArWriteModelSpecificRegister(IN ULONG Register,
IN ULONGLONG Value);
XTCDECL
VOID
ArYieldProcessor();
#endif /* __XTDK_I686_ARFUNCS_H */

View File

@ -592,3 +592,20 @@ ArWriteModelSpecificRegister(IN ULONG Register,
"a" (Low),
"d" (High));
}
/**
* Yields a current thread running on the processor.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTCDECL
VOID
ArYieldProcessor()
{
asm volatile("pause"
:
:
: "memory");
}

View File

@ -551,3 +551,20 @@ ArWriteModelSpecificRegister(IN ULONG Register,
: "c" (Register),
"A" (Value));
}
/**
* Yields a current thread running on the processor.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTCDECL
VOID
ArYieldProcessor()
{
asm volatile("pause"
:
:
: "memory");
}