__attribute__((unused))// juste pour que gcc compile ce squelette avec -Werror
structfb*zone=mem_fit_fn((structfb*)mem.adresse,taille);//Recherche d'une zone libre
structfb*zone=mem_fit_fn((structfb*)mem.adresse,taille);//Recherche d'une zone libre
taille=ALIGN(taille,ALIGNMENT);
taille=ALIGN(taille,ALIGNMENT);
if(taille<zone->size){// Si la taille = la taille de la zone alors elle devient une zo sinon on créé une autre zone libre
if(taille<zone->size){// Si la taille = la taille de la zone alors elle devient une zo sinon on créé une autre zone libre
...
@@ -108,6 +97,15 @@ void mem_free(void* adresse) { //on a changé le nom de l'argument car mem ét
...
@@ -108,6 +97,15 @@ void mem_free(void* adresse) { //on a changé le nom de l'argument car mem ét
}
}
}
}
voidmem_show(void(*print)(void*,size_t,int)){
void*current=mem.adresse;
while(current!=NULL){
structfb*first_fb=(structfb*)current;
print(current,first_fb->size+mem.meta_size,!first_fb->occupied);//si c'est une zo, on renvoie les info de la zone sinon on ne renvoi rien
current=first_fb->next;
}
}
structfb*mem_fit_first(structfb*list,size_tsize){//retourne l’adresse du premier bloc libre de taille supérieure ou égale à size présent dans la liste de blocs libre dont l’adresse est list.
structfb*mem_fit_first(structfb*list,size_tsize){//retourne l’adresse du premier bloc libre de taille supérieure ou égale à size présent dans la liste de blocs libre dont l’adresse est list.