2004-02-23 20:54:09 +00:00
|
|
|
#include "libnazgul.h"
|
|
|
|
#include "ids.h"
|
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
void *msgQueueElemOpen(msgQueueElemId queueElemId)
|
|
|
|
{
|
|
|
|
int queueElemFd;
|
|
|
|
void *queueElemAddr;
|
2004-02-23 20:54:09 +00:00
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
queueElemFd = shm_open(queueElemId, O_RDWR, SHM_DEFAULT_MODE);
|
|
|
|
if (queueElemFd == -1) {
|
|
|
|
NZG_ERROR("shm_open : msgQueue open", queueElemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
2004-02-23 20:54:09 +00:00
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
queueElemAddr = mmap(NULL,
|
|
|
|
sizeof(msgQueueElem),
|
|
|
|
PROT_READ | PROT_WRITE,
|
|
|
|
MAP_SHARED, queueElemFd, 0);
|
|
|
|
if (queueElemAddr == MAP_FAILED) {
|
|
|
|
NZG_ERROR("mmap", queueElemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
2004-02-23 20:54:09 +00:00
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
close(queueElemFd);
|
|
|
|
return queueElemAddr;
|
|
|
|
ERROR:
|
|
|
|
return NULL;
|
2004-02-23 20:54:09 +00:00
|
|
|
}
|