Return Type | Function name | Arguments |
---|---|---|
unsigned char* | hzSSR::Xlate | (unsigned int,) |
Declared in file: hzSSR.h
Defined in file : hzSSR.cpp
Function Logic:
Function body:
unsigned char* hzSSR::Xlate (unsigned int ssrAddr) { _hzfunc("hzSSR::Xlate") ; _ssrBloc* pBloc ; uint64_t* pSeg ; uint32_t blkNo ; uint32_t slotNo ; if (!ssrAddr) return 0; slotNo = ssrAddr & 0xffff; blkNo = (ssrAddr & SSR_BLOC_MASK) >> 16; if (blkNo == 0|| blkNo > m_Super.Count()) { threadLog("CORRUPT: Cannot xlate address %u:%u. No such superblock (%u issued)\n", blkNo, slotNo, m_Super.Count()) ; return 0; } pBloc = m_Super[blkNo-1]; if (!pBloc) { threadLog("CORRUPT: No block found for address %u:%u. Total of %u superblocks issued)\n", blkNo, slotNo, m_Super.Count()) ; return 0; } pSeg = pBloc->m_Space + slotNo ; return (uchar*) pSeg ; }