#include "libnazgul.h" #include "ids.h" int msgBufferInfoTabCreate(msgSpaceId externId, msgPoolData * poolDataTabAddr, int poolIdx, int bufferNb) { int bufferInfoTabFd; msgBufferInfoTabId bufferInfoTabId; /* creation des infos sur buffers DEBUT */ if (msgBufferInfoTabIdIntern(bufferInfoTabId, externId, poolIdx) == -1) { NZG_ERROR("msgPoolId creation", bufferInfoTabId); return -1; } bufferInfoTabFd = shm_open(bufferInfoTabId, O_RDWR | O_CREAT | O_EXCL | O_TRUNC, MSGSPACE_DEFAULT_MODE); if (bufferInfoTabFd == -1) { fprintf(stderr, "msgInfoTab : %s creation failed: %s\n", bufferInfoTabId, strerror(errno)); return -1; } if (ftruncate(bufferInfoTabFd, bufferNb * sizeof(msgBufferInfo)) == -1) { fprintf(stderr, "msgBufferInfoTab resizing failed: %s\n", strerror(errno)); return -1; } close(bufferInfoTabFd); /* creation des infos sur buffers FIN */ msgBufferInfoTabInit(poolDataTabAddr, poolIdx); return -1; NZG_ERROR("munmap", bufferInfoTabId); return -1; }