*** empty log message ***
This commit is contained in:
parent
c8f6efca31
commit
2c932cb2db
9 changed files with 90 additions and 16 deletions
|
@ -36,6 +36,10 @@ void * msgAllocate(msgSpace *space,
|
|||
|
||||
|
||||
mSPoolDataTabAddr=msgPoolDataTabOpen(space);
|
||||
if (mSPoolDataTabAddr==NULL){
|
||||
NZG_ERROR("msgPoolDataTabOpen",space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
/*
|
||||
// verifier le premier arg du shm_open
|
||||
mSPoolDataTabFd=shm_open(space->poolDataTabId,
|
||||
|
|
|
@ -41,7 +41,7 @@ int msgPoolCreate(
|
|||
ressourceSemFd = sem_open(poolRessourceSemId, O_CREAT|O_EXCL,SEM_DEFAULT_MODE, buffNb);
|
||||
if (ressourceSemFd == SEM_FAILED){
|
||||
NZG_ERROR("sem_open : creation de la ressource",poolRessourceSemId);
|
||||
return -1;
|
||||
goto ERROR;
|
||||
} else {
|
||||
NZG_ERROR("sem_open : creation oki",poolRessourceSemId);
|
||||
}
|
||||
|
@ -55,5 +55,7 @@ int msgPoolCreate(
|
|||
close(poolFd);
|
||||
|
||||
return 0;
|
||||
ERROR:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
42
src/poolDataTabCreate.c
Normal file
42
src/poolDataTabCreate.c
Normal file
|
@ -0,0 +1,42 @@
|
|||
#include "libnazgul.h"
|
||||
#include "ids.h"
|
||||
|
||||
void * msgPoolDataTabCreate(msgSpace * space){
|
||||
int poolDataFd; // shm file descriptor
|
||||
msgPoolData * poolDataTabAddr;
|
||||
poolDataFd=shm_open(
|
||||
space->poolDataTabId,
|
||||
O_RDWR|O_CREAT|O_EXCL|O_TRUNC,
|
||||
MSGSPACE_DEFAULT_MODE
|
||||
);
|
||||
if (poolDataFd == -1 ) {
|
||||
NZG_ERROR("shm_open :create",space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
/* allocation de la bonne zone mémoire pour le poolData */
|
||||
if (ftruncate(poolDataFd, (space->poolNb)*sizeof(msgPoolData)) == -1){
|
||||
NZG_ERROR("ftruncate",space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
close(poolDataFd);
|
||||
poolDataTabAddr = msgPoolDataTabOpen(space);
|
||||
if (poolDataTabAddr == NULL){
|
||||
NZG_ERROR("msgPoolDataTabOpen : create",space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
/*mmap( 0, sizeof( *mSAddr ),
|
||||
PROT_READ | PROT_WRITE,
|
||||
MAP_SHARED, mSFd, 0 );
|
||||
if( poolDataAddr == MAP_FAILED ) {
|
||||
NZG_ERROR("mmap",poolDataTabId);
|
||||
goto ERROR;
|
||||
}*/
|
||||
|
||||
return poolDataTabAddr;
|
||||
ERROR:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ int msgQueueElemDelete(msgQueueElemId queueElemId);
|
|||
/* queueElemOpen.c */
|
||||
void *msgQueueElemOpen(msgQueueElemId queueElemId);
|
||||
/* queueInit.c */
|
||||
msgQueue *queueInit(msgSpaceId externId, int queueIdx);
|
||||
msgQueue *msgQueueInit(msgSpaceId externId, int queueIdx);
|
||||
/* queueOpen.c */
|
||||
void *msgQueueOpen(msgQueueId queueId);
|
||||
/* queueProtLock.c */
|
||||
|
|
|
@ -8,7 +8,10 @@ int msgPut(msgSpace * space,int queueIndex, void * addr){
|
|||
int err;
|
||||
msgPoolDataTabLock(space);
|
||||
poolDataTabAddr=msgPoolDataTabOpen(space);
|
||||
|
||||
if (poolDataTabAddr == NULL){
|
||||
NZG_ERROR("msgPoolDataTabOpen",space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
err=msgBufferGetProcAttach(
|
||||
poolDataTabAddr,
|
||||
space->poolNb,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "libnazgul.h"
|
||||
#include "ids.h"
|
||||
|
||||
msgQueue * queueInit(msgSpaceId externId, int queueIdx) {
|
||||
msgQueue * msgQueueInit(msgSpaceId externId, int queueIdx) {
|
||||
int queueFd;
|
||||
msgQueue * queue;
|
||||
sem_t * semProtectFd;
|
||||
|
@ -12,9 +12,11 @@ msgQueue * queueInit(msgSpaceId externId, int queueIdx) {
|
|||
|
||||
queue = NULL;
|
||||
|
||||
printf("ploped init queue ?\n");
|
||||
|
||||
msgQueueProtSemIdIntern(queueSemProtectId,externId,queueIdx);
|
||||
msgQueueReadSemIdIntern(queueSemReadableId,externId,queueIdx);
|
||||
|
||||
|
||||
// creation du semaphore de lecture
|
||||
semReadableFd = sem_open(queueSemReadableId,
|
||||
O_CREAT|O_EXCL, SEM_DEFAULT_MODE, 0);
|
||||
|
|
|
@ -49,14 +49,13 @@ msgSpace * msgSpaceCreate(
|
|||
);
|
||||
if (mSFd == -1 ) {
|
||||
NZG_ERROR("shm_open : msgSpace creation",nzgId);
|
||||
return NULL;
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
/* on redimentionne l'element */
|
||||
if (ftruncate(mSFd, sizeof(* space)) == -1){
|
||||
fprintf( stderr, "msgSpace resizing failed: %s\n",
|
||||
strerror( errno ) );
|
||||
return NULL;
|
||||
NZG_ERROR("ftruncate",nzgId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
/* Map the memory object */
|
||||
|
@ -64,9 +63,8 @@ msgSpace * msgSpaceCreate(
|
|||
PROT_READ | PROT_WRITE,
|
||||
MAP_SHARED, mSFd, 0 );
|
||||
if( space == MAP_FAILED ) {
|
||||
fprintf( stderr, "mmap failed: %s\n",
|
||||
strerror( errno ) );
|
||||
return NULL;
|
||||
NZG_ERROR("mmap",nzgId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
printf( "CREAT: msgSpace mapped to 0x%08x in %d\n", (int)space,(int)getpid());
|
||||
|
@ -90,7 +88,7 @@ msgSpace * msgSpaceCreate(
|
|||
if (mSDataTabSemFd == SEM_FAILED){
|
||||
NZG_ERROR("sem_open : creation de la ressource",
|
||||
space->poolDataTabSemId);
|
||||
return NULL;
|
||||
goto ERROR;
|
||||
} else {
|
||||
NZG_ERROR("sem_open : creation oki",
|
||||
space->poolDataTabSemId);
|
||||
|
@ -100,7 +98,11 @@ msgSpace * msgSpaceCreate(
|
|||
// msgPoolDataTabLock(space);
|
||||
|
||||
/* attacher le tableau des msgPoolData */
|
||||
poolDataTabAddr=msgPoolDataTabCreate(space);
|
||||
poolDataTabAddr=msgPoolDataTabCreate(space);
|
||||
if (poolDataTabAddr == NULL){
|
||||
NZG_ERROR("msgPoolDataTabCreate",space->poolDataTabId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
for (i=0;i<poolNb;i++){
|
||||
/* Pour chacun des poolData
|
||||
|
@ -131,6 +133,16 @@ msgSpace * msgSpaceCreate(
|
|||
|
||||
}
|
||||
|
||||
printf("Creating queues:\n");
|
||||
for (i=0; i<queueNb;i++){
|
||||
printf("- queue %i...",i); fflush(stdout);
|
||||
if (msgQueueInit(space->externId,i) < 0){
|
||||
printf("fail.\n");
|
||||
NZG_ERROR("msgQueueInit : queue ?? for",space->externId);
|
||||
goto ERROR;
|
||||
}
|
||||
printf("ok.\n");
|
||||
}
|
||||
msgPoolDataTabClose(space,poolDataTabAddr);
|
||||
/* TODO: on ajoute spaceId a la liste des msgSpace connus */
|
||||
/* TODO: on crée queueNb files de messages */
|
||||
|
|
|
@ -22,7 +22,11 @@ int main(void) {
|
|||
printf("RequestedId: %s\n",testId);
|
||||
printf("Void size: %d\n",sizeof(void));
|
||||
mSPAC=msgSpaceCreate(testId,0,3,poolInfos);
|
||||
|
||||
if (mSPAC ==NULL) {
|
||||
NZG_ERROR("msgSpaceCreate",testId);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
pid_t pid=fork();
|
||||
|
||||
|
||||
|
|
|
@ -20,7 +20,12 @@ int main(void) {
|
|||
printf("Void size: %d\n",sizeof(void));
|
||||
//creation de l'espace de messages
|
||||
mSPAC=msgSpaceCreate(testId,1,2,poolInfos);
|
||||
|
||||
if (mSPAC ==NULL) {
|
||||
NZG_ERROR("msgSpaceCreate",testId);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
printf("CREATION ------------------ ok\n");
|
||||
pid_t pid=fork();
|
||||
|
||||
if (pid ==0){
|
||||
|
|
Loading…
Reference in a new issue