version 1.4, 2015/01/27 15:41:25
|
version 1.5, 2015/01/30 07:53:14
|
Line 240 liberation_allocateur_buffer(struct_proc
|
Line 240 liberation_allocateur_buffer(struct_proc
|
|
|
for(i = 0; i < longueur_tailles; i++) |
for(i = 0; i < longueur_tailles; i++) |
{ |
{ |
|
uprintf("L %d ************* %d ********************\n", getpid(), i); |
for(j = 0; j < (*s_etat_processus).pointeur_cache_buffer[i]; j++) |
for(j = 0; j < (*s_etat_processus).pointeur_cache_buffer[i]; j++) |
{ |
{ |
|
uprintf("L %d %p\n", getpid(), (*s_etat_processus).cache_buffer[i][j]); |
sys_free((*s_etat_processus).cache_buffer[i][j]); |
sys_free((*s_etat_processus).cache_buffer[i][j]); |
} |
} |
|
|
Line 304 allocation_buffer(struct_processus *s_et
|
Line 306 allocation_buffer(struct_processus *s_et
|
{ |
{ |
(*s_buffer).buffer = (*s_etat_processus).cache_buffer[classe] |
(*s_buffer).buffer = (*s_etat_processus).cache_buffer[classe] |
[--(*s_etat_processus).pointeur_cache_buffer[classe]]; |
[--(*s_etat_processus).pointeur_cache_buffer[classe]]; |
|
uprintf("Cachée : %d %p\n", getpid(), (*s_buffer).buffer); |
} |
} |
else |
else |
{ |
{ |
Line 315 allocation_buffer(struct_processus *s_et
|
Line 318 allocation_buffer(struct_processus *s_et
|
d_es_allocation_memoire; |
d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
|
uprintf("Alloué : %d %p\n", getpid(), (*s_buffer).buffer); |
} |
} |
} |
} |
else |
else |
Line 325 allocation_buffer(struct_processus *s_et
|
Line 329 allocation_buffer(struct_processus *s_et
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
|
uprintf("Alloué (non cachée) : %d %p\n", getpid(), (*s_buffer).buffer); |
} |
} |
} |
} |
|
|
Line 362 liberation_buffer(struct_processus *s_et
|
Line 367 liberation_buffer(struct_processus *s_et
|
if ((*s_buffer).buffer != NULL) |
if ((*s_buffer).buffer != NULL) |
{ |
{ |
sys_free((*s_buffer).buffer); |
sys_free((*s_buffer).buffer); |
|
uprintf("Libération (trop grand) : %d %p\n", getpid(), (*s_buffer).buffer); |
} |
} |
} |
} |
else |
else |
Line 372 liberation_buffer(struct_processus *s_et
|
Line 378 liberation_buffer(struct_processus *s_et
|
(*s_etat_processus).cache_buffer[(*s_buffer).classe] |
(*s_etat_processus).cache_buffer[(*s_buffer).classe] |
[(*s_etat_processus).pointeur_cache_buffer |
[(*s_etat_processus).pointeur_cache_buffer |
[(*s_buffer).classe]++] = (*s_buffer).buffer; |
[(*s_buffer).classe]++] = (*s_buffer).buffer; |
|
uprintf("Mise en cache : %d %p\n", getpid(), (*s_buffer).buffer); |
} |
} |
else |
else |
{ |
{ |
sys_free((*s_buffer).buffer); |
sys_free((*s_buffer).buffer); |
|
uprintf("Libération (cache plein) : %d %p\n", getpid(), (*s_buffer).buffer); |
} |
} |
} |
} |
|
|
Line 405 rpl_malloc(struct_processus *s_etat_proc
|
Line 413 rpl_malloc(struct_processus *s_etat_proc
|
|
|
void *pointeur; |
void *pointeur; |
|
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return(NULL); |
|
} |
|
|
if ((s_buffer = allocation_buffer(s_etat_processus, s)) == NULL) |
if ((s_buffer = allocation_buffer(s_etat_processus, s)) == NULL) |
{ |
{ |
|
pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer)); |
|
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
|
|
pointeur = (*s_buffer).buffer + sizeof(struct_buffer *); |
pointeur = (*s_buffer).buffer + sizeof(struct_buffer *); |
|
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer)) |
|
!= 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return(NULL); |
|
} |
|
|
return(pointeur); |
return(pointeur); |
} |
} |
|
|
Line 440 rpl_realloc(struct_processus *s_etat_pro
|
Line 464 rpl_realloc(struct_processus *s_etat_pro
|
|
|
void *pointeur; |
void *pointeur; |
|
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return(NULL); |
|
} |
|
|
if ((s_nouveau_buffer = allocation_buffer(s_etat_processus, s)) == NULL) |
if ((s_nouveau_buffer = allocation_buffer(s_etat_processus, s)) == NULL) |
{ |
{ |
|
pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer)); |
|
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
Line 458 rpl_realloc(struct_processus *s_etat_pro
|
Line 490 rpl_realloc(struct_processus *s_etat_pro
|
liberation_buffer(s_etat_processus, s_ancien_buffer); |
liberation_buffer(s_etat_processus, s_ancien_buffer); |
pointeur = (*s_nouveau_buffer).buffer + sizeof(struct_buffer *); |
pointeur = (*s_nouveau_buffer).buffer + sizeof(struct_buffer *); |
|
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer)) |
|
!= 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return(NULL); |
|
} |
|
|
return(pointeur); |
return(pointeur); |
} |
} |
|
|
Line 485 rpl_free(struct_processus *s_etat_proces
|
Line 524 rpl_free(struct_processus *s_etat_proces
|
} |
} |
|
|
s_buffer = (*((struct_buffer **) (ptr - sizeof(struct_buffer *)))); |
s_buffer = (*((struct_buffer **) (ptr - sizeof(struct_buffer *)))); |
|
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_allocation_buffer)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return; |
|
} |
|
|
liberation_buffer(s_etat_processus, s_buffer); |
liberation_buffer(s_etat_processus, s_buffer); |
|
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_allocation_buffer)) |
|
!= 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return; |
|
} |
|
|
return; |
return; |
} |
} |
|
|