Return TypeFunction nameArguments
unsigned char*hzSSR::Xlate(unsigned int,)

Declared in file: hzSSR.h
Defined in file : hzSSR.cpp

Function Logic:

0:START 1:!ssrAddr 2:Return 0 3:slotNo blkNo 4:blkNo==0||blkNo>m_Super.Count() 5:hzArray::Count 6:Return 0 7:pBloc 8:!pBloc 9:hzArray::Count 10:Return 0 11:pSeg 12:Return (uchar*)pSeg

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