version 1.3, 2010/02/10 08:09:29
|
version 1.45, 2013/02/26 19:56:13
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.10 |
RPL/2 (R) version 4.1.12 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 20
|
Line 20
|
*/ |
*/ |
|
|
|
|
#include "rpl.conv.h" |
#include "rpl-conv.h" |
|
|
|
|
/* |
/* |
Line 45 estimation_taille_pile(struct_processus
|
Line 45 estimation_taille_pile(struct_processus
|
* est estimée au travers d'une chaîne de Markov. |
* est estimée au travers d'une chaîne de Markov. |
*/ |
*/ |
|
|
(*s_etat_processus).estimation_taille_pile_tampon = |
if ((*s_etat_processus).hauteur_pile_operationnelle > |
((*s_etat_processus).estimation_taille_pile_tampon * |
(*s_etat_processus).estimation_taille_pile_tampon) |
((double) 0.9)) + ((*s_etat_processus) |
{ |
.hauteur_pile_operationnelle * ((double) 0.1)); |
(*s_etat_processus).estimation_taille_pile_tampon = |
|
(*s_etat_processus).estimation_taille_pile_tampon; |
|
} |
|
else |
|
{ |
|
(*s_etat_processus).estimation_taille_pile_tampon = |
|
((*s_etat_processus).estimation_taille_pile_tampon * |
|
((double) 0.95)) + ((*s_etat_processus) |
|
.hauteur_pile_operationnelle * ((double) 0.05)); |
|
} |
|
|
return; |
return; |
} |
} |
|
|
Line 248 affichage_pile(struct_processus *s_etat_
|
Line 258 affichage_pile(struct_processus *s_etat_
|
registre = (*s_etat_processus).autorisation_conversion_chaine; |
registre = (*s_etat_processus).autorisation_conversion_chaine; |
(*s_etat_processus).autorisation_conversion_chaine = 'N'; |
(*s_etat_processus).autorisation_conversion_chaine = 'N'; |
|
|
|
routine_recursive = 1; |
ecriture_pile(s_etat_processus, stdout, l_element_courant, niveau_courant); |
ecriture_pile(s_etat_processus, stdout, l_element_courant, niveau_courant); |
|
routine_recursive = 0; |
|
|
(*s_etat_processus).autorisation_conversion_chaine = registre; |
(*s_etat_processus).autorisation_conversion_chaine = registre; |
return; |
return; |
Line 256 affichage_pile(struct_processus *s_etat_
|
Line 268 affichage_pile(struct_processus *s_etat_
|
|
|
void |
void |
ecriture_pile(struct_processus *s_etat_processus, file *flux, |
ecriture_pile(struct_processus *s_etat_processus, file *flux, |
struct_liste_chainee *l_element_courant, unsigned long niveau_courant) |
struct_liste_chainee *l, unsigned long niveau_courant) |
{ |
{ |
unsigned char *chaine; |
unsigned char *chaine; |
unsigned char *registre; |
unsigned char *registre; |
unsigned char tampon[32 + 1]; |
unsigned char tampon[32 + 1]; |
|
|
|
// Évite le warning : argument l_element_courant might be clobbered by |
|
// longjmp or vfork |
|
volatile struct_liste_chainee *l_element_courant; |
|
|
|
l_element_courant = l; |
|
|
if (l_element_courant != NULL) |
if (l_element_courant != NULL) |
{ |
{ |
if (setjmp(contexte) == 0) |
if (setjmp(contexte_ecriture) == 0) |
{ |
{ |
(*s_etat_processus).var_volatile_recursivite = -1; |
(*s_etat_processus).var_volatile_recursivite = -1; |
ecriture_pile(s_etat_processus, flux, |
ecriture_pile(s_etat_processus, flux, |
Line 354 ecriture_pile(struct_processus *s_etat_p
|
Line 372 ecriture_pile(struct_processus *s_etat_p
|
|
|
void |
void |
impression_pile(struct_processus *s_etat_processus, |
impression_pile(struct_processus *s_etat_processus, |
struct_liste_chainee *l_element_courant, unsigned char methode, |
struct_liste_chainee *l, unsigned char methode, |
unsigned long niveau_courant) |
unsigned long niveau_courant) |
{ |
{ |
struct_objet s_objet; |
struct_objet s_objet; |
Line 363 impression_pile(struct_processus *s_etat
|
Line 381 impression_pile(struct_processus *s_etat
|
unsigned char *registre; |
unsigned char *registre; |
unsigned char tampon[32 + 1]; |
unsigned char tampon[32 + 1]; |
|
|
|
// Évite le warning : argument l_element_courant might be clobbered by |
|
// longjmp or vfork |
|
volatile struct_liste_chainee *l_element_courant; |
|
|
|
l_element_courant = l; |
|
|
if (l_element_courant != NULL) |
if (l_element_courant != NULL) |
{ |
{ |
if (setjmp(contexte) == 0) |
if (setjmp(contexte_impression) == 0) |
{ |
{ |
(*s_etat_processus).var_volatile_recursivite = -1; |
(*s_etat_processus).var_volatile_recursivite = -1; |
impression_pile(s_etat_processus, (*l_element_courant).suivant, |
impression_pile(s_etat_processus, (*l_element_courant).suivant, |