stos/amd64: hpet: Add MdHpetTimeUsec() helper
Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include <mm/vmm.h>
|
||||
#include <ke/knot.h>
|
||||
#include <ex/trace.h>
|
||||
#include <units.h>
|
||||
|
||||
#define DTRACE(Fmt, ...) \
|
||||
TRACE("[ HPET ]: " Fmt, ##__VA_ARGS__)
|
||||
@@ -57,6 +58,20 @@ HpetReadq(UCHAR Register)
|
||||
return MMIORead64(RegBase);
|
||||
}
|
||||
|
||||
USIZE
|
||||
MdHpetTimeUsec(VOID)
|
||||
{
|
||||
UQUAD Period, Freq, Caps;
|
||||
UQUAD Counter;
|
||||
|
||||
Caps = HpetReadq(HPET_GENERAL_CAP);
|
||||
Period = (Caps >> HPET_PERIOD_SHIFT) & HPET_PERIOD_MASK;
|
||||
Freq = FSEC_PER_SECOND / Period;
|
||||
Counter = HpetReadq(HPET_MAIN_COUNTER);
|
||||
|
||||
return (Counter * USEC_PER_SECOND) / Freq;
|
||||
}
|
||||
|
||||
VOID
|
||||
MdHpetInit(VOID)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user