2004-02-22 14:26:54 +00:00
|
|
|
|
#include "libnazgul.h"
|
|
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
|
int msgBufferInfoTabInit(msgPoolData * poolDataTabAddr, int poolIndex)
|
|
|
|
|
{
|
|
|
|
|
msgBufferInfoTabId bufferInfoTabId;
|
|
|
|
|
int bufferInfoTabFd;
|
|
|
|
|
msgBufferInfo *bufferInfoTabAddr;
|
|
|
|
|
int bufferInfoNb;
|
|
|
|
|
int i;
|
2004-02-22 14:26:54 +00:00
|
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
|
//r<>cuperer l'ID du BufferInfoTab;
|
|
|
|
|
strcpy(bufferInfoTabId, poolDataTabAddr[poolIndex].bufferInfoTabId);
|
|
|
|
|
|
|
|
|
|
printf("msgBufferInfoTabId %d open >>%s<<\n", poolIndex,
|
|
|
|
|
bufferInfoTabId);
|
|
|
|
|
bufferInfoTabFd = shm_open(bufferInfoTabId, O_RDWR, SHM_DEFAULT_MODE);
|
|
|
|
|
if (bufferInfoTabFd < 0) {
|
|
|
|
|
NZG_ERROR("msgBufferInfoTabId open", bufferInfoTabId);
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
2004-02-22 14:26:54 +00:00
|
|
|
|
|
|
|
|
|
/** on regarde dans le tableau d'infos de buffer **/
|
2020-03-03 23:06:43 +00:00
|
|
|
|
bufferInfoNb = poolDataTabAddr[poolIndex].bufferNb;
|
|
|
|
|
bufferInfoTabAddr = mmap(NULL, bufferInfoNb * sizeof(msgBufferInfo),
|
|
|
|
|
PROT_WRITE | PROT_READ, MAP_SHARED,
|
|
|
|
|
bufferInfoTabFd, (off_t) 0);
|
2004-02-22 14:26:54 +00:00
|
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
|
for (i = 0; i < bufferInfoNb; i++) {
|
|
|
|
|
bufferInfoTabAddr[i].ownerPid = (pid_t) - 1;
|
|
|
|
|
}
|
2004-02-22 14:26:54 +00:00
|
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
|
if (munmap(bufferInfoTabAddr, bufferInfoNb * sizeof(msgBufferInfo)) < 0) {
|
|
|
|
|
perror("munmap");
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
2004-02-22 14:26:54 +00:00
|
|
|
|
|
2020-03-03 23:06:43 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|