* allocation du tableau de poolData

This commit is contained in:
glenux 2004-02-19 22:37:56 +00:00
parent 0912a92668
commit d5952f8245

View file

@ -72,7 +72,7 @@ msgSpace * msgSpaceCreate(
return NULL; return NULL;
} }
printf( "Map addr is 0x%08x\n", (int)mSAddr ); printf( "msgSpace map addr is 0x%08x\n", (int)mSAddr );
/* on ferme le descripteur du fichier */ /* on ferme le descripteur du fichier */
close(mSFd); close(mSFd);
@ -97,14 +97,31 @@ msgSpace * msgSpaceCreate(
strerror( errno ) ); strerror( errno ) );
return NULL; return NULL;
} }
/* TODO:allocation de la bonne zone mémoire pour le poolData */
/* TODO: on ajoute spaceId a la liste des msgSpace connus */ /* allocation de la bonne zone mémoire pour le poolData */
if (ftruncate(mSFd, poolNb*sizeof(* msgPoolData)) == -1){
fprintf( stderr, "msgSpace resizing failed: %s\n",
strerror( errno ) );
return NULL;
}
/* TODO: attacher chacun des msgPoolData :
* - y écrire les informations passées en param
* - creer les zones mémoires de chacune des pool
*/
mSPoolDataAddr = mmap( 0, sizeof( *mSAddr ),
PROT_READ | PROT_WRITE,
MAP_SHARED, mSFd, 0 );
if( mSPoolDataAddr == MAP_FAILED ) {
fprintf( stderr, "mmap failed: %s\n",
strerror( errno ) );
return NULL;
}
printf( "msgPoolData map addr is 0x%08x\n", (int)mSPoolDataFd );
/* TODO: on crée queueNb files de messages */
/* on créer poolNb pool de buffers */
/* et on "attache" tout ce beau monde au spaceId */
for (i=0;i<poolNb;i++){ for (i=0;i<poolNb;i++){
// creation d'une pool // creation d'une pool
@ -113,6 +130,13 @@ msgSpace * msgSpaceCreate(
} }
/* TODO: on ajoute spaceId a la liste des msgSpace connus */
/* TODO: on crée queueNb files de messages */
/* on renvoie un pointeur sur le bon spaceId */ /* on renvoie un pointeur sur le bon spaceId */
return mSAddr; return mSAddr;
} }