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