32 lines
975 B
C
32 lines
975 B
C
// This file was extracted from the TCG Published
|
|
// Trusted Platform Module Library
|
|
// Part 3: Commands
|
|
// Family "2.0"
|
|
// Level 00 Revision 01.16
|
|
// October 30, 2014
|
|
|
|
#include "InternalRoutines.h"
|
|
#include "ReadClock_fp.h"
|
|
TPM_RC
|
|
TPM2_ReadClock(
|
|
ReadClock_Out *out // OUT: output parameter list
|
|
)
|
|
{
|
|
// Command Output
|
|
out->currentTime.time = g_time;
|
|
TimeFillInfo(&out->currentTime.clockInfo);
|
|
|
|
#ifndef EMBEDDED_MODE
|
|
{
|
|
UINT64 start_time = _plat__ClockTimeFromStart();
|
|
// When running on a simulator, some tests fail, because two commands
|
|
// invoked back to back happen to run within the same millisecond, but
|
|
// the test expects time readings to be different. Modifying the tests
|
|
// is more involved, let's just wait a couple of milliseconds here to
|
|
// avoid those tests' false negatives.
|
|
while ((_plat__ClockTimeFromStart() - start_time) < 2)
|
|
;
|
|
}
|
|
#endif
|
|
return TPM_RC_SUCCESS;
|
|
}
|