l3.libnazgul/src/poolDataTabOpen.c

31 lines
626 B
C
Raw Normal View History

2004-02-23 23:25:11 +00:00
#include "libnazgul.h"
#include "ids.h"
2020-03-03 23:06:43 +00:00
void *msgPoolDataTabOpen(msgSpace * space)
{
int poolDataTabFd;
void *poolDataTabAddr;
2004-02-23 23:25:11 +00:00
2020-03-03 23:06:43 +00:00
poolDataTabFd = shm_open(space->poolDataTabId,
O_RDWR, MSGSPACE_DEFAULT_MODE);
if (poolDataTabFd == -1) {
NZG_ERROR("shm_open", space->poolDataTabId);
goto ERROR;
}
2004-02-23 23:25:11 +00:00
2020-03-03 23:06:43 +00:00
poolDataTabAddr = mmap(NULL, (space->poolNb) * sizeof(msgPoolData),
PROT_READ | PROT_WRITE,
MAP_SHARED, poolDataTabFd, 0);
2004-02-23 23:25:11 +00:00
2020-03-03 23:06:43 +00:00
if (poolDataTabAddr == MAP_FAILED) {
NZG_ERROR("mmap", space->poolDataTabId);
goto ERROR;
}
2004-02-23 23:25:11 +00:00
2020-03-03 23:06:43 +00:00
close(poolDataTabFd);
2004-02-23 23:25:11 +00:00
2020-03-03 23:06:43 +00:00
return poolDataTabAddr;
ERROR:
return NULL;
2004-02-23 23:25:11 +00:00
}