80 lines
1.4 KiB
C
80 lines
1.4 KiB
C
// This file was extracted from the TCG Published
|
|
// Trusted Platform Module Library
|
|
// Part 4: Supporting Routines
|
|
// Family "2.0"
|
|
// Level 00 Revision 01.16
|
|
// October 30, 2014
|
|
|
|
#include "PlatformData.h"
|
|
#include "Platform.h"
|
|
//
|
|
//
|
|
// Functions
|
|
//
|
|
// _plat__Signal_PowerOn()
|
|
//
|
|
// Signal platform power on
|
|
//
|
|
LIB_EXPORT int
|
|
_plat__Signal_PowerOn(
|
|
void
|
|
)
|
|
{
|
|
// Start clock
|
|
_plat__ClockReset();
|
|
// Initialize locality
|
|
s_locality = 0;
|
|
// Command cancel
|
|
s_isCanceled = FALSE;
|
|
// Need to indicate that we lost power
|
|
s_powerLost = TRUE;
|
|
return 0;
|
|
}
|
|
//
|
|
//
|
|
// _plat__WasPowerLost()
|
|
//
|
|
// Test whether power was lost before a _TPM_Init()
|
|
//
|
|
LIB_EXPORT BOOL
|
|
_plat__WasPowerLost(
|
|
BOOL clear
|
|
)
|
|
{
|
|
BOOL retVal = s_powerLost;
|
|
if(clear)
|
|
s_powerLost = FALSE;
|
|
return retVal;
|
|
}
|
|
//
|
|
//
|
|
// _plat_Signal_Reset()
|
|
//
|
|
// This a TPM reset without a power loss.
|
|
//
|
|
LIB_EXPORT int
|
|
_plat__Signal_Reset(
|
|
void
|
|
)
|
|
{
|
|
// Need to reset the clock
|
|
_plat__ClockReset();
|
|
// if we are doing reset but did not have a power failure, then we should
|
|
// not need to reload NV ...
|
|
return 0;
|
|
}
|
|
//
|
|
//
|
|
// _plat__Signal_PowerOff()
|
|
//
|
|
// Signal platform power off
|
|
//
|
|
LIB_EXPORT void
|
|
_plat__Signal_PowerOff(
|
|
void
|
|
)
|
|
{
|
|
// Prepare NV memory for power off
|
|
_plat__NVDisable();
|
|
return;
|
|
}
|