/*
 *  ======== TimestampProvider_get64 ========
 */
Void TimestampProvider_get64(Types_Timestamp64 *result) 
{
    result->lo = (Bits32)TimestampProvider_get32();
    result->hi = MOD->upper32Bits;

    if (TimestampProvider_getOverflowCCNT() != 0) {
        result->lo = (Bits32)TimestampProvider_get32();
        result->hi = ++MOD->upper32Bits;
    }
}
/*
 *  ======== TimestampProvider_get64 ========
 */
Void TimestampProvider_get64(Types_Timestamp64 *result)
{
    result->lo = TimestampProvider_get32();
    if (BIOS_clockEnabled && TimestampProvider_useClockTimer) {
        result->hi = Timer_getRollovers(MOD->timer);
    }
    else {
        result->hi = MOD->rollovers;
    }
}
/*
 *  ======== TimestampProvider_get64 ========
 *  For target performance, no attempt is made to guarantee hi/lo coherence.
 *  User of get64 is expected to handle this.
 */
Void TimestampProvider_get64(Types_Timestamp64 *result)
{
    result->hi = MOD->hi;
    result->lo = TimestampProvider_get32();
}