*** empty log message ***
This commit is contained in:
parent
a1c27d5b98
commit
7dcf1382fc
3 changed files with 25 additions and 14 deletions
|
@ -183,19 +183,24 @@ void * msgAllocate(msgSpace *space,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
printf("Buffer selected : %d,%d\n",selectedPoolIndex,bufferFreeIndex);
|
printf("Buffer selected : %d,%d\n",selectedPoolIndex,bufferFreeIndex);
|
||||||
|
|
||||||
/* mapper le buffer libre dans l'esp addr du proc */
|
/* mapper le buffer libre dans l'esp addr du proc */
|
||||||
strcpy(resultPoolId,mSPoolDataTabAddr[selectedPoolIndex].poolId);
|
strcpy(resultPoolId,mSPoolDataTabAddr[selectedPoolIndex].poolId);
|
||||||
|
|
||||||
|
|
||||||
mSPoolFd=shm_open(resultPoolId,O_RDWR,MSGSPACE_DEFAULT_MODE);
|
mSPoolFd=shm_open(resultPoolId,O_RDWR,MSGSPACE_DEFAULT_MODE);
|
||||||
|
|
||||||
|
int bufferFreeSize;
|
||||||
int bufferFreeSize=mSPoolDataTabAddr[selectedPoolIndex].bufferSize;
|
bufferFreeSize=mSPoolDataTabAddr[selectedPoolIndex].bufferSize;
|
||||||
resultAddr = mmap( 0,
|
printf("BufferSize : %d", bufferFreeSize);
|
||||||
|
resultAddr = mmap( NULL,
|
||||||
bufferFreeSize,
|
bufferFreeSize,
|
||||||
PROT_READ | PROT_WRITE,
|
PROT_READ | PROT_WRITE,
|
||||||
MAP_SHARED, mSPoolFd, bufferFreeSize*bufferFreeIndex );
|
MAP_SHARED, mSPoolFd,
|
||||||
|
(off_t)0); // bufferFreeSize*bufferFreeIndex );
|
||||||
|
if( resultAddr == MAP_FAILED) {
|
||||||
|
NZG_ERROR("resultAddr mmap","");
|
||||||
|
goto ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
//TODO:
|
//TODO:
|
||||||
/* - on s'enregistre aupres de ce buffer */
|
/* - on s'enregistre aupres de ce buffer */
|
||||||
|
@ -210,6 +215,12 @@ void * msgAllocate(msgSpace *space,
|
||||||
|
|
||||||
/* unmapper le msgPoolDataTab */
|
/* unmapper le msgPoolDataTab */
|
||||||
munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData ));
|
munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData ));
|
||||||
|
printf( "alloc de 0x%08x\n", (int)resultAddr);
|
||||||
return resultAddr;
|
return resultAddr;
|
||||||
|
ERROR:
|
||||||
|
NZG_ERROR("msgAllocate","error processing");
|
||||||
|
sem_post(poolDataTabSemFd);
|
||||||
|
sem_close(poolDataTabSemFd);
|
||||||
|
munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData ));
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "libnazgul.h"
|
#include "libnazgul.h"
|
||||||
|
|
||||||
int msgFree(msgSpace * space, void * addr){
|
int msgFree(msgSpace * space, void * addr){
|
||||||
|
printf("Freeee de :0x%08x\n",(int)addr);
|
||||||
|
|
||||||
int poolIndex;
|
int poolIndex;
|
||||||
int bufferIndex;
|
int bufferIndex;
|
||||||
|
@ -20,8 +21,6 @@ sem_t * poolDataTabSemFd;
|
||||||
}
|
}
|
||||||
sem_wait(poolDataTabSemFd);
|
sem_wait(poolDataTabSemFd);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* verifier le premier arg du shm_open */
|
/* verifier le premier arg du shm_open */
|
||||||
|
|
||||||
poolDataTabFd=shm_open(space->poolDataTabId,
|
poolDataTabFd=shm_open(space->poolDataTabId,
|
||||||
|
@ -35,7 +34,7 @@ sem_t * poolDataTabSemFd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
poolDataTabAddr = mmap( 0, (space->poolNb) * sizeof( msgPoolData ),
|
poolDataTabAddr = mmap( NULL, (space->poolNb) * sizeof( msgPoolData ),
|
||||||
PROT_READ | PROT_WRITE,
|
PROT_READ | PROT_WRITE,
|
||||||
MAP_SHARED, poolDataTabFd, 0 );
|
MAP_SHARED, poolDataTabFd, 0 );
|
||||||
|
|
||||||
|
@ -49,6 +48,7 @@ sem_t * poolDataTabSemFd;
|
||||||
// TODO: verouiller semaphore DataInfo
|
// TODO: verouiller semaphore DataInfo
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
printf("FREE-SEMWAIT\n");
|
||||||
err=msgBufferGetProcAttach(
|
err=msgBufferGetProcAttach(
|
||||||
poolDataTabAddr,
|
poolDataTabAddr,
|
||||||
space->poolNb,
|
space->poolNb,
|
||||||
|
@ -81,6 +81,6 @@ sem_t * poolDataTabSemFd;
|
||||||
//sem_open ressource
|
//sem_open ressource
|
||||||
//sem_post
|
//sem_post
|
||||||
//sem_close
|
//sem_close
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ int main(void) {
|
||||||
poolInfos[1].bufferNb=5;
|
poolInfos[1].bufferNb=5;
|
||||||
poolInfos[1].bufferSize=250;
|
poolInfos[1].bufferSize=250;
|
||||||
|
|
||||||
poolInfos[2].bufferNb=6;
|
poolInfos[2].bufferNb=5;
|
||||||
poolInfos[2].bufferSize=280;
|
poolInfos[2].bufferSize=280;
|
||||||
|
|
||||||
strcpy(testId,"test");
|
strcpy(testId,"test");
|
||||||
|
@ -43,7 +43,7 @@ int main(void) {
|
||||||
montext=msgAllocate(mSPAC,2,270,0);
|
montext=msgAllocate(mSPAC,2,270,0);
|
||||||
sleep(2);
|
sleep(2);
|
||||||
montext=msgAllocate(mSPAC,2,270,0);
|
montext=msgAllocate(mSPAC,2,270,0);
|
||||||
//msgFree(mSPAC,(void *)montext);
|
msgFree(mSPAC,(void *)montext);
|
||||||
//msgFree(mSPAC,(void *)montext);
|
//msgFree(mSPAC,(void *)montext);
|
||||||
//msgFree(mSPAC,(void *)montext);
|
//msgFree(mSPAC,(void *)montext);
|
||||||
wait(NULL);
|
wait(NULL);
|
||||||
|
|
Loading…
Reference in a new issue