| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | InitIpBasic | (void) |
Declared in file: hzIpaddr.h
Defined in file : hzIpaddr.cpp
Function Logic:
Function body:
hzEcode InitIpBasic (void)
{
_hzfunc(__func__) ;
ifstream is ;
FSTAT fs ;
uint32_t* pRanges ;
uint32_t* pLocations ;
uint32_t n ;
int32_t m_fd ;
m_fd = shm_open("deltaIpBaseZone", O_RDONLY, 0);
if (m_fd < 0)
return hzerr(E_OPENFAIL, "Could not open deltaIpBaseZone") ;
threadLog("Opened deltaIpBaseZone\n") ;
fstat(m_fd, &fs);
pRanges = (uint32_t*) mmap(0,fs.st_size, PROT_READ, MAP_SHARED, m_fd, 0);
if (!pRanges)
return hzerr(E_INITFAIL, "Could not map shared memory segment for deltaIpBaseZone. Errno %d\n", errno) ;
threadLog("IP ranges size %u mem at %p\n", fs.st_size, pRanges) ;
m_fd = shm_open("deltaIpBaseCode", O_RDONLY, 0);
if (m_fd < 0)
return hzerr(E_OPENFAIL, "Could not open deltaIpBaseCode") ;
threadLog("Opened deltaIpBaseCode\n") ;
fstat(m_fd, &fs);
s_IpBasic_max = fs.st_size ;
pLocations = (uint32_t*) mmap(0,fs.st_size, PROT_READ, MAP_SHARED, m_fd, 0);
if (!pLocations)
return hzerr(E_INITFAIL, "Shared memory address at %p errno is %d\n", pLocations, errno) ;
threadLog("locations size %u mem at %p\n", fs.st_size, pLocations) ;
s_IpBasic_zones = pRanges ;
s_IpBasic_codes = (uchar*) pLocations ;
for (n = 2; n < s_IpBasic_max ; n *= 2);
s_IpBasic_div = n / 2;
s_IpBasic_start = n - 1;
threadLog("Total ranges %d (div %d start %d)\n\n", s_IpBasic_max, s_IpBasic_div, s_IpBasic_start) ;
return E_OK ;
}