From 48e22ffd7d2dd0d9aaf90b5e8c3d3a6305b72219 Mon Sep 17 00:00:00 2001 From: glenux Date: Mon, 23 Feb 2004 20:54:09 +0000 Subject: [PATCH] *** empty log message *** --- src/queueElemClose.c | 15 +++++++++++++++ src/queueElemOpen.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/queueElemClose.c create mode 100644 src/queueElemOpen.c diff --git a/src/queueElemClose.c b/src/queueElemClose.c new file mode 100644 index 0000000..1ff51bd --- /dev/null +++ b/src/queueElemClose.c @@ -0,0 +1,15 @@ +#include "libnazgul.h" + +int msgQueueElemClose(msgQueueElem * queueElem){ + msgQueueElemId qId; + strcpy(qId,queueElem->id); + + if (munmap(queueElem,sizeof(msgQueueElem)) < 0){ + NZG_ERROR("unmap",qId); + goto ERROR; + } + + return 0; +ERROR: + return -1; +} diff --git a/src/queueElemOpen.c b/src/queueElemOpen.c new file mode 100644 index 0000000..d980083 --- /dev/null +++ b/src/queueElemOpen.c @@ -0,0 +1,29 @@ +#include "libnazgul.h" +#include "ids.h" + +void * msgQueueElemOpen(msgQueueElemId queueElemId){ + int queueElemFd; + void * queueElemAddr; + + queueElemFd=shm_open(queueElemId,O_RDWR,SHM_DEFAULT_MODE); + if (queueElemFd == -1 ) { + NZG_ERROR("shm_open : msgQueue open",queueElemId); + goto ERROR; + } + + queueElemAddr=mmap(NULL, + sizeof(msgQueueElem), + PROT_READ|PROT_WRITE, + MAP_SHARED, + queueElemFd, + 0); + if( queueElemAddr == MAP_FAILED ) { + NZG_ERROR("mmap",queueElemId); + goto ERROR; + } + + close(queueElemFd); + return queueElemAddr; +ERROR: + return NULL; +}