1. BcmDb_setUserInterface(&userinterface); include in cfm/api/bcmcfm.c
2. BcmDb_setUserInterface(PBCM_USERINTERFACE pUserInterface)
{
....
BcmPsi_objStore(sysPsi, SYS_USERINTERFACE_ID, pUserInterface, sizeof(BCM_USERINTERFACE));
// SYS_USERINTERFACE_ID = 9
}
3. PSI_STATUS BcmPsi_objStore(PSI_HANDLE appId, UINT16 objectId, PSI_VALUE value, UINT16 length)
{
ret =ifc->set((const PSI_HANDLE)appId, (const UINT16)objectId,
(const PSI_VALUE)value, (const UINT16)length);
//objectId = 9
}
4. PSI_STATUS PsiIfc::set(const PSI_HANDLE appId,
const UINT16 objectId,
const PSI_VALUE value,
const UINT16 length)
{
AppNode* node = (AppNode *)appId;
PsiApp* app = node->app;
if ( app != NULL )
app->set(objectId, value, length);
}
5.
PSI_STATUS PsiApp::set(const UINT16 id,
const PSI_VALUE value,
const UINT16 length)
{
PSI_STATUS status = PSI_STS_OK;
ObjectNode* node = find(id); //id = 9
if ( node == NULL)
{
....
}
else
{
status = (node->object)->set(value, length);
}
}