| 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 ;
}