2019-09-17 12:14:46 +00:00
|
|
|
|
#include "libnazgul.h"
|
|
|
|
|
|
2004-02-22 17:29:10 +00:00
|
|
|
|
// fonction pour la creation d'une liste de msgSpace
|
|
|
|
|
// cree un shm qui connait l'element de debut de liste
|
|
|
|
|
// et l'element de fin de liste.
|
|
|
|
|
// il ne se cr<63>e que s'il n'en existe pas deja un.
|
|
|
|
|
//
|
|
|
|
|
// cr<63>e <20>galement un s<>maphore de gestion de liste
|
|
|
|
|
// a verouiller avant toute modification
|
|
|
|
|
msgSpaceListInit();
|
2004-02-22 15:37:47 +00:00
|
|
|
|
|
2004-02-22 17:29:10 +00:00
|
|
|
|
// verouille le semaphore de la liste
|
|
|
|
|
msgSpaceListLock();
|
2004-02-22 15:37:47 +00:00
|
|
|
|
|
|
|
|
|
|
2004-02-22 17:29:10 +00:00
|
|
|
|
// deverouille le semaphore de la liste
|
|
|
|
|
msgSpaceListUnlock();
|
|
|
|
|
|
|
|
|
|
// cree un nouvel elemen
|
|
|
|
|
msgSpaceListElemCreate(msgSpaceListElemId resultName,msgSpaceId spaceId);
|
|
|
|
|
|
|
|
|
|
// modifie l'element suivant de l'element choisi
|
|
|
|
|
// et le fait pointer sur un nouvel ID
|
|
|
|
|
msgSpaceListElemLinkNext(msgSpaceListElemId current,msgSpaceListElemId next);
|
|
|
|
|
|
|
|
|
|
// ajoute un element en d<>but de liste.
|
|
|
|
|
// fait pointer l'ancien dernier vers lui
|
|
|
|
|
// il s'enregistre en tant que dernier chez la liste
|
|
|
|
|
msgSpaceListAdd(msgSpaceListElemId );
|
|
|
|
|
msgSpaceListRem(msgSpaceListElemId spaceId);
|
|
|
|
|
|
2004-02-22 15:37:47 +00:00
|
|
|
|
void *add(char * idAncien, char *idNouveau);
|
|
|
|
|
int descMemory;
|
|
|
|
|
|
|
|
|
|
void * add(char * idAncien, char *idNouveau){
|
|
|
|
|
descMemory=shm_open("/titi",
|
|
|
|
|
O_RDWR|O_CREAT|O_EXCL|O_TRUNC,
|
|
|
|
|
0600);
|
|
|
|
|
|
|
|
|
|
if (descMemory== -1){
|
|
|
|
|
printf("erreur de sh_open\n");
|
|
|
|
|
return NULL;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (ftruncate(descMemory,1024)== -1 ){
|
|
|
|
|
printf("erreur ftruncate");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* memory= mmap(0, 1024,
|
|
|
|
|
PROT_READ | PROT_WRITE,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MAP_SHARED, mSFd, 0)*/
|
|
|
|
|
|
2004-02-22 15:56:01 +00:00
|
|
|
|
strcpy(idAncien, idNouveau);
|
2004-02-22 17:17:09 +00:00
|
|
|
|
return NULL;
|
2004-02-22 15:37:47 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ajout dans la liste */
|
|
|
|
|
/*AVEC POINTEUR */
|
|
|
|
|
/*
|
2019-09-17 12:14:46 +00:00
|
|
|
|
msgSpaceListElem *addBegining( msgSpaceListElem*list,int ownerpid){
|
|
|
|
|
msgSpaceListElem *unSpacemsgListElem;
|
|
|
|
|
if( (unSpacemsgListElem=(msgSpaceListElem *)malloc(sizeof(msgSpaceListElem) ) )==NULL){
|
|
|
|
|
perror("ereur dallocation de memoire");
|
|
|
|
|
exit(1);}
|
|
|
|
|
unSpacemsgListElem->ownerPid = ownerpid;
|
|
|
|
|
return(unSpacemsgListElem);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int test(int argc,char **argv){
|
|
|
|
|
msgSpaceListElem *ma_liste;
|
|
|
|
|
msgSpaceListElem *listMove;
|
|
|
|
|
ma_liste=NULL;
|
|
|
|
|
ma_liste=addBegining(ma_liste, 3);
|
|
|
|
|
ma_liste=addBegining(ma_liste, 6);
|
|
|
|
|
ma_liste=addBegining(ma_liste, 5);
|
|
|
|
|
for (listMove=ma_liste ;listMove!=NULL ; listMove=listMove->next)
|
|
|
|
|
{
|
2004-02-19 23:30:05 +00:00
|
|
|
|
printf("valaeur :%d\n",listMove->ownerPid);
|
2019-09-17 12:14:46 +00:00
|
|
|
|
}
|
|
|
|
|
return(0);
|
|
|
|
|
}
|
2004-02-22 15:37:47 +00:00
|
|
|
|
*/
|
2019-09-17 12:14:46 +00:00
|
|
|
|
|