diff options
author | Monte Copeland <copelanm@us.ibm.com> | 2011-09-13 10:22:55 -0500 |
---|---|---|
committer | MIKE J. JONES <mjjones@us.ibm.com> | 2011-09-14 09:19:46 -0500 |
commit | f6760755b655a3601612a8d4f11de0c394e24d49 (patch) | |
tree | 47096bb9621491395a98ab5cfc006df18cc64867 | |
parent | e59e01da049d2b864ff7cb1dd03b82e5a8a393b9 (diff) | |
download | talos-hostboot-f6760755b655a3601612a8d4f11de0c394e24d49.tar.gz talos-hostboot-f6760755b655a3601612a8d4f11de0c394e24d49.zip |
Common Scan Tracing Redux
Change-Id: Idca69173153f9ffedab37df22438ee600a0d9150
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/336
Tested-by: Jenkins Server
Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com>
-rw-r--r-- | src/include/usr/hwpf/fapi/fapiPlatHwAccess.H | 164 | ||||
-rw-r--r-- | src/include/usr/hwpf/fapi/fapiUtil.H | 19 | ||||
-rw-r--r-- | src/include/usr/hwpf/plat/fapiPlatTrace.H | 5 | ||||
-rw-r--r-- | src/usr/hwpf/fapi/fapiHwAccess.C | 276 | ||||
-rw-r--r-- | src/usr/hwpf/fapi/makefile | 1 | ||||
-rw-r--r-- | src/usr/hwpf/plat/fapiPlatHwAccess.C | 79 | ||||
-rw-r--r-- | src/usr/hwpf/plat/fapiPlatUtil.C | 27 |
7 files changed, 532 insertions, 39 deletions
diff --git a/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H b/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H new file mode 100644 index 000000000..f3f48e166 --- /dev/null +++ b/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H @@ -0,0 +1,164 @@ +// IBM_PROLOG_BEGIN_TAG +// This is an automatically generated prolog. +// +// $Source: src/include/usr/hwpf/fapi/fapiHwAccess.H $ +// +// IBM CONFIDENTIAL +// +// COPYRIGHT International Business Machines Corp. 2011 +// +// p1 +// +// Object Code Only (OCO) source materials +// Licensed Internal Code Source Materials +// IBM HostBoot Licensed Internal Code +// +// The source code for this program is not published or other- +// wise divested of its trade secrets, irrespective of what has +// been deposited with the U.S. Copyright Office. +// +// Origin: 30 +// +// IBM_PROLOG_END +/** + * @file fapiPlatHwAccess.H + * + * @brief Defines hardware-access functions for the platform layer. + * Hardware procedure writers will not call these functions. + * + * Implementors of platform code will provide worker routines + * for these functions in file hwpf/plat/fapiPlatHwAccess.C. + * fapi.H will not include this file, so platform implementors + * will have to include this file explicitly. + * + * These platform entry points are called by fapi functions from + * hwpf/fapi/fapiHwAccess.C which are wrapper functions that + * output scand traces common to all platforms. + * + * These functions have the same argument signatures as the + * fapi-level functions, but the function names her start with + * "plat." + * + */ + +/* + * Change Log ****************************************************************** + * Flag Defect/Feature User Date Description + * ------ -------------- ---------- ----------- ---------------------------- + * monte 8sep2011 new + */ + +#ifndef FAPIPLATHWACCESS_H_ +#define FAPIPLATHWACCESS_H_ + +#include <stdint.h> +#include <ecmdDataBuffer.H> +#include <fapiReturnCode.H> +#include <fapiTarget.H> + + +extern "C" +{ + +//------------------------------------------------------------------------------ +// HW Communication Functions to be implemented at the platform layer. +//------------------------------------------------------------------------------ + + +/** + * @brief Platform-level implementation called by GetScom() + * Hardware procedures writers will not call this function. + * + * + * @param[in] i_target Target to operate on + * @param[in] i_address Scom address to read from + * @param[out] o_data ecmdDataBufferBase object that holds data read from + * address + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode platGetScom(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & o_data); + + +/** + * @brief Platform-level implementation called by PutScom(). + * Hardware procedures writers will not call this function. + * + * @param[in] i_target Target to operate on + * @param[in] i_address Scom address to write to + * @param[in] i_data ecmdDataBufferBase object that holds data to write into + * address + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode platPutScom(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & i_data); + + +/** + * @brief Platform-level implementation called by PutScomUnderMask() + * Hardware procedures writers will not call this function. + * + * @param[in] i_target Target to operate on + * @param[in] i_address Scom address to write to + * @param[in] i_data ecmdDataBufferBase object that holds the data + * @param[in] i_mask ecmdDataBufferBase object that holds the mask (i_data to + * write) + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode platPutScomUnderMask(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & i_data, + ecmdDataBufferBase & i_mask); + + +/** + * @brief Platorm-level implementation called by GetCfamRegister() + * Hardware procedures writers will not call this function. + * + * @param[in] i_target Target to operate on + * @param[in] i_address CFAM address to read from + * @param[out] o_data ecmdDataBufferBase object that holds data read from + * address + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode platGetCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & o_data); + + +/** + * @brief Platform-level implementation called by PutCfamRegister() + * Hardware procedures writers will not call this function. + * + * @param[in] i_target Target to operate on + * @param[in] i_address CFAM address to write to + * @param[in] i_data ecmdDataBufferBase object that holds data to write into + * address + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode platPutCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & i_data); + + +/** + * @brief Platform-level implementation of ModifyCfamRegister() + * Hardware procedures writers will not call this function. + * + * @param[in] i_target Target to operate on + * @param[in] i_address CFAM address to write to + * @param[in] i_data ecmdDataBufferBase object that holds the modifying data + * @param[in] i_modifyMode The modify mode (or/and/xor) + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode platModifyCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & i_data, + const fapi::ChipOpModifyMode i_modifyMode); + + +} // extern "C" + +#endif // FAPIPLATHWACCESS_H_ diff --git a/src/include/usr/hwpf/fapi/fapiUtil.H b/src/include/usr/hwpf/fapi/fapiUtil.H index ad1532699..b8224483d 100644 --- a/src/include/usr/hwpf/fapi/fapiUtil.H +++ b/src/include/usr/hwpf/fapi/fapiUtil.H @@ -110,6 +110,25 @@ void fapiAssert(bool i_expression); */ void fapiLogError(ReturnCode & io_rc); + +/** @brief This function answers the question, is scand tracing turned on? + * The implementation of this function is specific to the platform. + * + * @returns Boolean indication + */ +bool platIsScanTraceEnabled(); + + + +/** @brief Alter the state of scand tracing. + * The implementation of this function is specific to the platform. + * + * @param[in] True to enable or false to disable scan trace. + * @return void + */ +void platSetScanTrace( bool i_enable ); + + } #endif // FAPIUTIL_H_ diff --git a/src/include/usr/hwpf/plat/fapiPlatTrace.H b/src/include/usr/hwpf/plat/fapiPlatTrace.H index 8ce17b5bd..3b5ec2bb9 100644 --- a/src/include/usr/hwpf/plat/fapiPlatTrace.H +++ b/src/include/usr/hwpf/plat/fapiPlatTrace.H @@ -44,6 +44,7 @@ const char * const FAPI_INF_TRACE_NAME = "FAPI_T"; const char * const FAPI_IMP_TRACE_NAME = "FAPI_I"; const char * const FAPI_ERR_TRACE_NAME = "FAPI_E"; const char * const FAPI_DBG_TRACE_NAME = "FAPI_D"; +const char * const FAPI_SCAN_TRACE_NAME = "SCAN"; //****************************************************************************** // Trace descriptors that are defined in a C file @@ -52,6 +53,7 @@ extern trace_desc_t* g_fapiInfTd; extern trace_desc_t* g_fapiImpTd; extern trace_desc_t* g_fapiErrTd; extern trace_desc_t* g_fapiDbgTd; +extern trace_desc_t* g_fapiScanTd; // Information traces (standard flight recorder that can wrap often) #define FAPI_INF(_fmt_, _args_...) TRACFCOMP(g_fapiInfTd, _fmt_, ##_args_ ) @@ -65,4 +67,7 @@ extern trace_desc_t* g_fapiDbgTd; // Debug traces (can wrap often) #define FAPI_DBG(_fmt_, _args_...) TRACDCOMP(g_fapiDbgTd, _fmt_, ##_args_) +// Scan traces +#define FAPI_SCAN(_fmt_, _args_...) TRACFCOMP(g_fapiScanTd, _fmt_, ##_args_) + #endif // PLATTRACE_H_ diff --git a/src/usr/hwpf/fapi/fapiHwAccess.C b/src/usr/hwpf/fapi/fapiHwAccess.C new file mode 100644 index 000000000..7a2c088ab --- /dev/null +++ b/src/usr/hwpf/fapi/fapiHwAccess.C @@ -0,0 +1,276 @@ +// IBM_PROLOG_BEGIN_TAG +// This is an automatically generated prolog. +// +// $Source: src/usr/hwpf/fapi/fapiHwAccess.C $ +// +// IBM CONFIDENTIAL +// +// COPYRIGHT International Business Machines Corp. 2011 +// +// p1 +// +// Object Code Only (OCO) source materials +// Licensed Internal Code Source Materials +// IBM HostBoot Licensed Internal Code +// +// The source code for this program is not published or other- +// wise divested of its trade secrets, irrespective of what has +// been deposited with the U.S. Copyright Office. +// +// Origin: 30 +// +// IBM_PROLOG_END +/** + * @file fapiHwAccess.C + * + * @brief Implements the fapiHwAccess.H functions at a high level, + * allowing for scand common tracing to occur before and after + * the call to the platform-specific worker. + * + * Note that platform code must provide the implementation. + */ + +#include <fapi.H> +#include <fapiPlatHwAccess.H> +#include <errl/errlentry.H> +#include <targeting/targetservice.H> +#include <devicefw/userif.H> + +extern "C" +{ + +//****************************************************************************** +// GetScom function +//****************************************************************************** +fapi::ReturnCode GetScom(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & o_data) +{ + fapi::ReturnCode l_rc; + char l_string[fapi::MAX_ECMD_STRING_LEN] = {0}; + bool l_traceit = fapi::platIsScanTraceEnabled(); + + + if( l_traceit ) + { + // get the string representation of the target + i_target.toString(l_string); + + + FAPI_SCAN( "TRACE : GETSCOM : START : %s : %.16llX", + l_string, + i_address ); + } + + // call the platform implemenation + l_rc = platGetScom( i_target, i_address, o_data ); + + + if( l_traceit ) + { + FAPI_SCAN( "TRACE : GETSCOM : END : %s : %.16llX %.16llX", + l_string, + i_address, + o_data.getDoubleWord( 0 ) ); + } + + return l_rc; +} + + +//****************************************************************************** +// PutScom function +//****************************************************************************** +fapi::ReturnCode PutScom(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & i_data) +{ + fapi::ReturnCode l_rc; + char l_string[fapi::MAX_ECMD_STRING_LEN] = {0}; + bool l_traceit = fapi::platIsScanTraceEnabled(); + + if( l_traceit ) + { + // get the string representation of the target + i_target.toString(l_string); + + FAPI_SCAN( "TRACE : PUTSCOM : START : %s : %.16llX %.16llX", + l_string, + i_address, + i_data.getDoubleWord( 0 ) ); + } + + // call the platform implemenation + l_rc = platPutScom( i_target, i_address, i_data ); + + + if( l_traceit ) + { + FAPI_SCAN( "TRACE : PUTSCOM : END : %s : %.16llX", + l_string, + i_address ); + } + + return l_rc; +} + +//@todo - Implement these functions later +#if 0 +//****************************************************************************** +// PutScomUnderMask function +//****************************************************************************** +fapi::ReturnCode PutScomUnderMask(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & i_data, + ecmdDataBufferBase & i_mask) +{ + fapi::ReturnCode l_rc; + char l_string[fapi::MAX_ECMD_STRING_LEN] = {0}; + bool l_traceit = fapi::platIsScanTraceEnabled(); + + if( l_traceit ) + { + // get the string representation of the target + i_target.toString(l_string); + + FAPI_SCAN( "TRACE : PUTSCOMMASK : START : %s : %.16llX %.16llX %.16llX", + l_string, + i_address, + i_data.getDoubleWord(0), + i_mask.getDoubleWord(0)); + } + + // call the platform implementation + l_rc = platPutScomUnderMask( i_target, i_address, i_data, i_mask ); + + if( l_traceit ) + { + FAPI_SCAN( "TRACE : PUTSCOMMASK : END : %s : %.16llX", + l_string, + i_address ); + } + return l_rc; +} + +//****************************************************************************** +// GetCfamRegister function +//****************************************************************************** +fapi::ReturnCode GetCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & o_data) +{ + fapi::ReturnCode l_rc; + char l_string[fapi::MAX_ECMD_STRING_LEN] = {0}; + + if( l_traceit ) + { + // get the string representation of the target + i_target.toString(l_string); + + FAPI_SCAN( "TRACE : GETCFAMREG : START : %s : %.16llX", + l_string, + i_address ); + } + + // call the platform implementation + l_rc = platGetCfamRegister( i_target, i_address, o_data ); + + + if( l_traceit ) + { + FAPI_SCAN( "TRACE : GETCFAMREG : END : %s : %.16llX %.16llX", + l_string, + i_address, + o_data.getDoubleWord(0) ); + } + + return l_rc; +} + +//****************************************************************************** +// PutCfamRegister function +//****************************************************************************** +fapi::ReturnCode PutCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & i_data) +{ + fapi::ReturnCode l_rc; + char l_string[fapi::MAX_ECMD_STRING_LEN] = {0}; + bool l_traceit = fapi::platIsScanTraceEnabled(); + + if( l_traceit ) + { + // get the string representation of the target + i_target.toString(l_string); + + FAPI_SCAN( "TRACE : PUTCFAMREG : START : %s : %.16llX %.16llX", + l_string, + i_address, + i_data.getDoubleWord(0) ); + } + + // call the platform implementation + l_rc = platPutCfamRegister( i_target, i_address, i_data ); + + + if( l_traceit ) + { + FAPI_SCAN( "TRACE : PUTCFAMREG : END : %s : %.16llX", + l_string, + i_address ); + } + return l_rc; +} + +//****************************************************************************** +// ModifyCfamRegister function +//****************************************************************************** +fapi::ReturnCode ModifyCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & i_data, + const fapi::ChipOpModifyMode i_modifyMode) +{ + fapi::ReturnCode l_rc; + char l_string[fapi::MAX_ECMD_STRING_LEN] = {0}; + bool l_traceit = fapi::platIsScanTraceEnabled(); + + if( l_traceit ) + { + // get the string representation of the target + i_target.toString(l_string); + + // get string representation of the modify mode + const char * l_apsModes = { "?", "OR", "AND", "XOR" }; + char * l_pMode = l_apsModes[0]; + int l_mode = static_cast<int>(i_modifyMode); + + if(( l_mode > 0 ) && ( l_mode < 4 )) + { + l_pMode = l_apsModes[l_mode]; + } + + FAPI_SCAN( "TRACE : MODCFAMREG : START : %s : %.16llX %.16llX %s", + l_string, + i_address, + i_data.getDoubleWord(0), + l_pMode ); + } + + // call the platform implementation + l_rc = platModifyCfamRegister( i_target, i_address, i_data, i_modifyMode ); + + + if( l_traceit ) + { + FAPI_SCAN( "TRACE : MODCFAMREG : END : %s : %llX %s", + l_string, + i_address, + l_pMode ); + } + + return l_rc; +} + +#endif + +} // extern "C" diff --git a/src/usr/hwpf/fapi/makefile b/src/usr/hwpf/fapi/makefile index 8049aaf46..a2ea9275f 100644 --- a/src/usr/hwpf/fapi/makefile +++ b/src/usr/hwpf/fapi/makefile @@ -31,6 +31,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/hwp OBJS = fapiReturnCode.o \ fapiReturnCodeDataRef.o \ fapiTarget.o \ + fapiHwAccess.o \ fapiErrorInfo.o \ fapiErrorInfoMem.o \ fapiErrorInfoMemInit.o \ diff --git a/src/usr/hwpf/plat/fapiPlatHwAccess.C b/src/usr/hwpf/plat/fapiPlatHwAccess.C index b7789a06c..16adeece7 100644 --- a/src/usr/hwpf/plat/fapiPlatHwAccess.C +++ b/src/usr/hwpf/plat/fapiPlatHwAccess.C @@ -30,6 +30,7 @@ #include <fapiHwAccess.H> #include <fapiPlatTrace.H> +#include <fapiPlatHwAccess.H> #include <errl/errlentry.H> #include <targeting/targetservice.H> #include <devicefw/userif.H> @@ -38,15 +39,15 @@ extern "C" { //****************************************************************************** -// GetScom function +// platGetScom function, the platform implementation //****************************************************************************** -fapi::ReturnCode GetScom(const fapi::Target& i_target, - const uint64_t i_address, - ecmdDataBufferBase & o_data) +fapi::ReturnCode platGetScom(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & o_data) { - FAPI_DBG(ENTER_MRK "GetScom"); + FAPI_DBG(ENTER_MRK "platGetScom"); - fapi::ReturnCode l_rc; + fapi::ReturnCode l_rc; errlHndl_t l_err = NULL; // Extract the component pointer @@ -71,18 +72,18 @@ fapi::ReturnCode GetScom(const fapi::Target& i_target, o_data.setDoubleWord(0, l_data); } - FAPI_DBG(EXIT_MRK "GetScom"); + FAPI_DBG(EXIT_MRK "platGetScom"); return l_rc; } //****************************************************************************** -// PutScom function +// platPutScom function //****************************************************************************** -fapi::ReturnCode PutScom(const fapi::Target& i_target, - const uint64_t i_address, - ecmdDataBufferBase & i_data) +fapi::ReturnCode platPutScom(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & i_data) { - FAPI_DBG(ENTER_MRK "PutScom"); + FAPI_DBG(ENTER_MRK "platPutScom"); fapi::ReturnCode l_rc; errlHndl_t l_err = NULL; @@ -104,60 +105,60 @@ fapi::ReturnCode PutScom(const fapi::Target& i_target, l_rc.setPlatData(reinterpret_cast<void *> (l_err)); } - FAPI_DBG(EXIT_MRK "PutScom"); + FAPI_DBG(EXIT_MRK "platPutScom"); return l_rc; } //@todo - Implement these functions later #if 0 //****************************************************************************** -// PutScomUnderMask function +// platPutScomUnderMask function //****************************************************************************** -fapi::ReturnCode PutScomUnderMask(const fapi::Target& i_target, - const uint64_t i_address, - ecmdDataBufferBase & i_data, - ecmdDataBufferBase & i_mask) +fapi::ReturnCode platPutScomUnderMask(const fapi::Target& i_target, + const uint64_t i_address, + ecmdDataBufferBase & i_data, + ecmdDataBufferBase & i_mask) { - FAPI_DBG(ENTER_MRK "PutScomUnderMask"); + FAPI_DBG(ENTER_MRK "platPutScomUnderMask"); - FAPI_DBG(EXIT_MRK "PutScomUnderMask"); + FAPI_DBG(EXIT_MRK "platPutScomUnderMask"); } //****************************************************************************** -// GetCfamRegister function +// platGetCfamRegister function //****************************************************************************** -fapi::ReturnCode GetCfamRegister(const fapi::Target& i_target, - const uint32_t i_address, - ecmdDataBufferBase & o_data) +fapi::ReturnCode platGetCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & o_data) { - FAPI_DBG(ENTER_MRK "GetCfamRegister"); + FAPI_DBG(ENTER_MRK "platGetCfamRegister"); - FAPI_DBG(EXIT_MRK "GetCfamRegister"); + FAPI_DBG(EXIT_MRK "platGetCfamRegister"); } //****************************************************************************** -// PutCfamRegister function +// platPutCfamRegister function //****************************************************************************** -fapi::ReturnCode PutCfamRegister(const fapi::Target& i_target, - const uint32_t i_address, - ecmdDataBufferBase & i_data) +fapi::ReturnCode platPutCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & i_data) { - FAPI_DBG(ENTER_MRK "PutCfamRegister"); + FAPI_DBG(ENTER_MRK "platPutCfamRegister"); - FAPI_DBG(EXIT_MRK "PutCfamRegister"); + FAPI_DBG(EXIT_MRK "platPutCfamRegister"); } //****************************************************************************** -// ModifyCfamRegister function +// platModifyCfamRegister function //****************************************************************************** -fapi::ReturnCode ModifyCfamRegister(const fapi::Target& i_target, - const uint32_t i_address, - ecmdDataBufferBase & i_data, - const fapi::ChipOpModifyMode i_modifyMode) +fapi::ReturnCode platModifyCfamRegister(const fapi::Target& i_target, + const uint32_t i_address, + ecmdDataBufferBase & i_data, + const fapi::ChipOpModifyMode i_modifyMode) { - FAPI_DBG(ENTER_MRK "ModifyCfamRegister"); + FAPI_DBG(ENTER_MRK "platModifyCfamRegister"); - FAPI_DBG(EXIT_MRK "ModifyCfamRegister"); + FAPI_DBG(EXIT_MRK "platModifyCfamRegister"); } #endif diff --git a/src/usr/hwpf/plat/fapiPlatUtil.C b/src/usr/hwpf/plat/fapiPlatUtil.C index b0f3d79c3..782481c83 100644 --- a/src/usr/hwpf/plat/fapiPlatUtil.C +++ b/src/usr/hwpf/plat/fapiPlatUtil.C @@ -43,6 +43,7 @@ trace_desc_t* g_fapiInfTd; trace_desc_t* g_fapiImpTd; trace_desc_t* g_fapiErrTd; trace_desc_t* g_fapiDbgTd; +trace_desc_t* g_fapiScanTd; //****************************************************************************** // Global TracInit objects. Construction will initialize the trace buffer @@ -51,6 +52,7 @@ TRAC_INIT(&g_fapiInfTd, FAPI_INF_TRACE_NAME, 4096); TRAC_INIT(&g_fapiImpTd, FAPI_IMP_TRACE_NAME, 4096); TRAC_INIT(&g_fapiErrTd, FAPI_ERR_TRACE_NAME, 4096); TRAC_INIT(&g_fapiDbgTd, FAPI_DBG_TRACE_NAME, 4096); +TRAC_INIT(&g_fapiScanTd, FAPI_SCAN_TRACE_NAME, 4096); namespace fapi { @@ -110,4 +112,29 @@ void fapiLogError(ReturnCode & io_rc) + + +//**************************************************************************** +// platform-level implementation + +bool platIsScanTraceEnabled() +{ + // TODO: Get the answer from g_fapiScanTd conditional trace buffer. Camvan + // has not pushed the code yet. + return 1; +} + +//**************************************************************************** +// platform-level implementation + +void platSetScanTrace( bool i_enable ) +{ + // TODO: enable or disable scan trace via the SCAN trace buffer. Camvan + // has not pushed the code yet. + return; } + + + + +} // namespace fapi |