--- rpl/src/rpl.h 2010/04/27 15:53:37 1.25 +++ rpl/src/rpl.h 2010/05/05 21:19:24 1.31 @@ -121,10 +121,16 @@ */ #ifndef RPLARGS +// Arrêt par STOP # define SIGFSTOP SIGUSR1 +// Démarrage d'un processus fils # define SIGSTART SIGUSR2 +// Injection de données # define SIGINJECT SIGQUIT +// Arrêt général # define SIGABORT SIGPROF +// Arrêt d'un processus fils depuis autre chose que STOP +# define SIGFABORT SIGPOLL # define d_NOMBRE_INTERRUPTIONS 64 #endif @@ -492,10 +498,11 @@ void debug_memoire_retrait(void *ptr); #define d_absence_erreur ((logical1) d_faux) #define d_erreur ((logical1) d_vrai) -#define d_code_fin_chaine '\0' -#define d_code_espace ' ' -#define d_code_retour_chariot '\n' -#define d_code_tabulation '\t' +#define d_code_fin_chaine '\0' +#define d_code_espace ' ' +#define d_code_retour_chariot '\n' +#define d_code_tabulation '\t' +#define d_longueur_maximale_instruction 16 #define d_INT "integer" #define d_REL "real" @@ -1760,7 +1767,7 @@ typedef struct processus unsigned char traitement_interruption; /* Y/N */ unsigned char traitement_interruptible; /* Y/N */ - struct_objet *on_exit; + struct_objet *at_exit; /* Variables volatiles */ @@ -1775,6 +1782,8 @@ typedef struct processus volatile sig_atomic_t var_volatile_processus_pere; volatile sig_atomic_t var_volatile_recursivite; + volatile sig_atomic_t arret_depuis_abort; + volatile int var_volatile_exception_gsl; /* Autres */ @@ -1845,7 +1854,7 @@ typedef struct processus unsigned long taille_pile_objets; struct_objet *pile_objets; -# define TAILLE_CACHE 1024 +# define TAILLE_CACHE 16384 unsigned long *objets_adr[TAILLE_CACHE]; int pointeur_adr; @@ -1949,6 +1958,7 @@ void instruction_asl(struct_processus *s void instruction_asr(struct_processus *s_etat_processus); void instruction_atan(struct_processus *s_etat_processus); void instruction_atanh(struct_processus *s_etat_processus); +void instruction_atexit(struct_processus *s_etat_processus); void instruction_autoscale(struct_processus *s_etat_processus); void instruction_axes(struct_processus *s_etat_processus); @@ -1968,6 +1978,7 @@ void instruction_clear(struct_processus void instruction_cllcd(struct_processus *s_etat_processus); void instruction_clmf(struct_processus *s_etat_processus); void instruction_close(struct_processus *s_etat_processus); +void instruction_clratexit(struct_processus *s_etat_processus); void instruction_clrcntxt(struct_processus *s_etat_processus); void instruction_clrerr(struct_processus *s_etat_processus); void instruction_clrfuse(struct_processus *s_etat_processus); @@ -2190,7 +2201,6 @@ void instruction_num(struct_processus *s void instruction_obget(struct_processus *s_etat_processus); void instruction_obsub(struct_processus *s_etat_processus); void instruction_oct(struct_processus *s_etat_processus); -void instruction_onexit(struct_processus *s_etat_processus); void instruction_open(struct_processus *s_etat_processus); void instruction_or(struct_processus *s_etat_processus); void instruction_over(struct_processus *s_etat_processus); @@ -2468,6 +2478,8 @@ void conversion_element_tex(unsigned cha void conversion_format(struct_processus *s_etat_processus, unsigned char *chaine); void conversion_hms_vers_decimal(real8 *angle); +void conversion_majuscule_limitee(unsigned char *chaine_entree, + unsigned char *chaine_sortie, unsigned long longueur); void conversion_radians_vers_degres(real8 *angle); void correction_formateur_tex(struct_processus *s_etat_processus, unsigned char **ligne);