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;
}
Beispiel #6
0
void *Strategy_Create(struct Cache *pcache) 
{
    return Cache_List_Create();
}
Beispiel #7
0
/*!
 * //! 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();
}