BOOL briIsThisNodeAddr(uint32 nodeAddr) { HRESULT hResult = NO_ERROR; uint32 localAddr = 0; hResult = briGetThisNodeAddr(&localAddr); if (hResult != NO_ERROR) return FALSE; return (nodeAddr == localAddr); }
BOOL briIsThisNodeRoot(void) { HRESULT hResult = NO_ERROR; uint32 localAddr = 0; uint32 rootAddr = 0; hResult = briGetThisNodeAddr(&localAddr); if (hResult != NO_ERROR) return FALSE; hResult = briGetNodeAddrRoot(&rootAddr); if (hResult != NO_ERROR) return FALSE; return (rootAddr == localAddr); }
HRESULT nciGetBusInfo(LAL_BUS_RESET_INFO* plalInfoBlock) { HRESULT hResult = NO_ERROR; uint32 busGen = 0; if (briIsSelfIDsValid() != TRUE) { hResult = E_NCI_BUS_INFO_NOT_AVAILABLE; sysLogError(hResult, __LINE__, moduleName); return hResult; } if (nciInfoBlock.bValid != TRUE) { hResult = E_NCI_NODE_INFO_NOT_AVAILABLE; sysLogError(hResult, __LINE__, moduleName); return hResult; } hResult = briGetCurrentBusGeneration(&busGen); if (hResult != NO_ERROR) return hResult; nciInfoBlock.busGeneration = busGen; hResult = briGetThisNodeAddr(&nciInfoBlock.nodeAddr); if (hResult != NO_ERROR) return hResult; hResult = briGetBusID(&nciInfoBlock.busId); if (hResult != NO_ERROR) return hResult; hResult = lhlBriGetCycleTime(&nciInfoBlock.currentTime); if (hResult != NO_ERROR) return hResult; plalInfoBlock->currentTime = nciInfoBlock.currentTime; plalInfoBlock->busGeneration = nciInfoBlock.busGeneration; plalInfoBlock->numNodes = nciInfoBlock.numNodes; plalInfoBlock->rootAddr = nciInfoBlock.rootAddr; plalInfoBlock->irmAddr = nciInfoBlock.irmAddr; plalInfoBlock->numSelfIDs = nciInfoBlock.numSelfIDs; plalInfoBlock->nodeAddr = nciInfoBlock.nodeAddr; plalInfoBlock->busId = nciInfoBlock.busId; plalInfoBlock->SIDBundle = nciInfoBlock.SIDBundle; return hResult; }