Implement HlReadTimeStampCounter() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
f46615f92c
commit
fcfa575bff
@ -69,6 +69,10 @@ XTCDECL
|
|||||||
ULONGLONG
|
ULONGLONG
|
||||||
HlReadModelSpecificRegister(IN ULONG Register);
|
HlReadModelSpecificRegister(IN ULONG Register);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
ULONGLONG
|
||||||
|
HlReadTimeStampCounter();
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
HlSetInterruptFlag();
|
HlSetInterruptFlag();
|
||||||
|
@ -69,6 +69,10 @@ XTCDECL
|
|||||||
ULONGLONG
|
ULONGLONG
|
||||||
HlReadModelSpecificRegister(IN ULONG Register);
|
HlReadModelSpecificRegister(IN ULONG Register);
|
||||||
|
|
||||||
|
XTCDECL
|
||||||
|
ULONGLONG
|
||||||
|
HlReadTimeStampCounter();
|
||||||
|
|
||||||
XTCDECL
|
XTCDECL
|
||||||
VOID
|
VOID
|
||||||
HlSetInterruptFlag();
|
HlSetInterruptFlag();
|
||||||
|
@ -321,6 +321,26 @@ HlReadModelSpecificRegister(IN ULONG Register)
|
|||||||
return ((ULONGLONG)High << 32) | Low;
|
return ((ULONGLONG)High << 32) | Low;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads the current value of the CPU's time-stamp counter.
|
||||||
|
*
|
||||||
|
* @return This routine returns the current instruction cycle count since the processor was started.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
ULONGLONG
|
||||||
|
HlReadTimeStampCounter()
|
||||||
|
{
|
||||||
|
ULONGLONG Low, High;
|
||||||
|
|
||||||
|
asm volatile("rdtsc"
|
||||||
|
:"=a"(Low),
|
||||||
|
"=d"(High));
|
||||||
|
|
||||||
|
return ((ULONGLONG)High << 32) | Low;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instructs the processor to set the interrupt flag.
|
* Instructs the processor to set the interrupt flag.
|
||||||
*
|
*
|
||||||
|
@ -313,6 +313,25 @@ HlReadModelSpecificRegister(IN ULONG Register)
|
|||||||
return Value;
|
return Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads the current value of the CPU's time-stamp counter.
|
||||||
|
*
|
||||||
|
* @return This routine returns the current instruction cycle count since the processor was started.
|
||||||
|
*
|
||||||
|
* @since XT 1.0
|
||||||
|
*/
|
||||||
|
XTCDECL
|
||||||
|
ULONGLONG
|
||||||
|
HlReadTimeStampCounter()
|
||||||
|
{
|
||||||
|
ULONGLONG Value;
|
||||||
|
|
||||||
|
asm volatile("rdtsc"
|
||||||
|
: "=A"(Value));
|
||||||
|
|
||||||
|
return Value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instructs the processor to set the interrupt flag.
|
* Instructs the processor to set the interrupt flag.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user