bufferMap pas encore fini...
:(²
This commit is contained in:
parent
bf450b4002
commit
06ea466cc1
1 changed files with 39 additions and 0 deletions
39
src/bufferMap.c
Normal file
39
src/bufferMap.c
Normal file
|
@ -0,0 +1,39 @@
|
|||
#include "libnazgul.h"
|
||||
|
||||
|
||||
void * msgBufferMap(msgSpace * space, int poolIndex, int bufferIndex) {
|
||||
void * resultAddr;
|
||||
|
||||
msgBufferInfoTabId bufferInfoTabId;
|
||||
int bufferInfoTabFd;
|
||||
|
||||
// TODO: récuperer l'ID du BufferInfoTab;
|
||||
strcpy(bufferInfoTabId, poolDataTabAddr[poolIndex].bufferInfoTabId);
|
||||
|
||||
|
||||
bufferInfoTabFd=shm_open(bufferInfoTabId,O_RDWR,SHM_DEFAULT_MODE);
|
||||
if (bufferInfoTabFd<0){
|
||||
NZG_ERROR("sem_open",bufferInfoTabId);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
if(msPoolFd == -1) {
|
||||
NZG_ERROR("shm_open", space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
// mapper le buffer dans l'espace mémoire du processus
|
||||
resultAddr=mmap(NULL, buffersize, PROT_WRITE|PROT_READ, MAP_SHARED, msPoolFd, (off_t)0);
|
||||
|
||||
if(resultAddr == MAP_FAILED) {
|
||||
NZG_ERROR("mmap", poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
close(msPoolFd);
|
||||
|
||||
return resultAddr;
|
||||
ERROR:
|
||||
return NULL;
|
||||
}
|
Loading…
Reference in a new issue