Return TypeFunction nameArguments
hzEcodeInitIpCity(void)

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

Function Logic:

0:START 1:shm_open m_fd 2:m_fd<0 3:Return hzerr(E_OPENFAIL,Could not open deltaIpCityText) 4:fstat mmap s_IpCity_text 5:!s_IpCity_text 6:Return hzerr(E_INITFAIL,Shared memory address at %p errno is %d\n,s_IpCity_text,errno) 7:shm_open m_fd 8:m_fd<0 9:Return hzerr(E_OPENFAIL,Could not open deltaIpCityZone) 10:fstat mmap pIpr 11:!pIpr 12:Return hzerr(E_INITFAIL,Shared memory address at %p errno is %d\n,pIpr,errno) 13:s_IpCity_max s_IpCity_zones shm_open m_fd fstat mmap s_IpCity_osets 14:!s_IpCity_osets 15:Return hzerr(E_INITFAIL,Shared memory address at %p errno is %d\n,s_IpCity_osets,errno) 16:n 17:s_IpCity_div s_IpCity_start 18:Return E_OK

Function body:

hzEcode InitIpCity (void)
{
   _hzfunc(__func__) ;
   ifstream    is ;
   FSTAT       fs ;
   uint32_t*   pIpr ;
   uint32_t    m_fd ;
   uint32_t    n ;
    m_fd = shm_open("deltaIpCityText", O_RDONLY, 0);
   if (m_fd < 0)
       return hzerr(E_OPENFAIL, "Could not open deltaIpCityText") ;
    threadLog("Set fd to %d\n", m_fd) ;
   fstat(m_fd, &fs);
   s_IpCity_text = (char*) mmap(0,fs.st_size, PROT_READ, MAP_SHARED, m_fd, 0);
   if (!s_IpCity_text)
       return hzerr(E_INITFAIL, "Shared memory address at %p errno is %d\n", s_IpCity_text, errno) ;
   threadLog("text mem at %p\n", s_IpCity_text) ;
    m_fd = shm_open("deltaIpCityZone", O_RDONLY, 0);
   if (m_fd < 0)
       return hzerr(E_OPENFAIL, "Could not open deltaIpCityZone") ;
    threadLog("Set fd to %d\n", m_fd) ;
   fstat(m_fd, &fs);
   pIpr = (uint32_t*) mmap(0,fs.st_size, PROT_READ, MAP_SHARED, m_fd, 0);
   if (!pIpr)
       return hzerr(E_INITFAIL, "Shared memory address at %p errno is %d\n", pIpr, errno) ;
   threadLog("zone mem at %p\n", pIpr) ;
   s_IpCity_max = pIpr[0];
   s_IpCity_zones = pIpr + 1;
    m_fd = shm_open("deltaIpCityLocn", O_RDONLY, 0);
   fstat(m_fd, &fs);
    threadLog("Set fd to %d\n", m_fd) ;
   s_IpCity_osets = (uint32_t*) mmap(0,fs.st_size, PROT_READ, MAP_SHARED, m_fd, 0);
   if (!s_IpCity_osets)
       return hzerr(E_INITFAIL, "Shared memory address at %p errno is %d\n", s_IpCity_osets, errno) ;
   threadLog("locn mem at %p\n", s_IpCity_osets) ;
   for (n = 2; n < s_IpCity_max ; n *= 2);
   s_IpCity_div = n / 2;
   s_IpCity_start = n - 1;
   threadLog("Have %d zones, div %d start %d\n", s_IpCity_max, s_IpCity_div, s_IpCity_start) ;
   return E_OK ;
}