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