l3.libnazgul/src/bufferInfoTabCreate.c

40 lines
1 KiB
C
Raw Normal View History

2004-02-22 15:29:36 +00:00
#include "libnazgul.h"
2004-02-23 18:50:52 +00:00
#include "ids.h"
2004-02-22 15:29:36 +00:00
2020-03-03 23:06:43 +00:00
int msgBufferInfoTabCreate(msgSpaceId externId,
msgPoolData * poolDataTabAddr,
int poolIdx, int bufferNb)
{
2004-02-22 15:29:36 +00:00
2020-03-03 23:06:43 +00:00
int bufferInfoTabFd;
msgBufferInfoTabId bufferInfoTabId;
2004-02-22 15:29:36 +00:00
2020-03-03 23:06:43 +00:00
/* creation des infos sur buffers DEBUT */
if (msgBufferInfoTabIdIntern(bufferInfoTabId, externId, poolIdx) == -1) {
NZG_ERROR("msgPoolId creation", bufferInfoTabId);
return -1;
}
2004-02-22 15:29:36 +00:00
2020-03-03 23:06:43 +00:00
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 */
2004-02-22 15:29:36 +00:00
2020-03-03 23:06:43 +00:00
msgBufferInfoTabInit(poolDataTabAddr, poolIdx);
2004-02-22 15:29:36 +00:00
2020-03-03 23:06:43 +00:00
return -1;
NZG_ERROR("munmap", bufferInfoTabId);
return -1;
2004-02-22 14:26:54 +00:00
}