struct Cache_List *Cache_List_Create_With_Header(struct Cache_Block_Header *pbh) { struct Cache_List *pnew_list_with_header = Cache_List_Create(); pnew_list_with_header->pheader = pbh; return pnew_list_with_header; }
/*! * RAND : pas grand chose à faire ici. * * En fait, nous initialisons le germe * (seed) du générateur aléatoire à quelque chose d'éminemment variable, pour * éviter d'avoir la même séquence à chque exécution... */ void *Strategy_Create(struct Cache *pcache) { pcl = Cache_List_Create(); struct Cache_Block_Header *h = pcache->headers; int i; for(i = 0 ; i < pcache->nblocks ; i++){ Cache_List_Prepend(pcl,&h[i]); } return (void *) pcl; }
void Cache_List_Clear(struct Cache_List *list) { assert(list != NULL); while(list->prev) list = list->prev; struct Cache_List *tmp; while(list) { list->prev = NULL; free(list->pheader); tmp = list->next; list->next = NULL; list = tmp; } list = Cache_List_Create(); }
void Cache_List_Prepend(struct Cache_List *list, struct Cache_Block_Header *pbh) { if(list->pheader == NULL) { list->pheader = pbh; } else { struct Cache_List *new_list = Cache_List_Create(); while(list->prev != NULL) list = list->prev; new_list->pheader = list->pheader; list->pheader = pbh; new_list->next = list->next; list->next = new_list; new_list->prev = list; } }
/*! * FIFO * * En fait, nous initialisons le germe * (seed) du générateur aléatoire à quelque chose d'éminemment variable, pour * éviter d'avoir la même séquence à chque exécution... */ void *Strategy_Create(struct Cache *pcache) { list = Cache_List_Create(); return (void *) list; }
void *Strategy_Create(struct Cache *pcache) { return Cache_List_Create(); }
/*! * //! Creation et initialisation de la stratégie (invoqué par la création de cache). * //@author Ulysse Riccio * */ void *Strategy_Create(struct Cache *pcache) { /** Crée et initialise une nouvelle liste (vide) et retourne un pointeur dessus */ return Cache_List_Create(); }