--- rpl/src/rpl.h 2011/11/26 13:05:03 1.145 +++ rpl/src/rpl.h 2011/12/01 15:23:49 1.150 @@ -91,6 +91,7 @@ # include # include # include +# include # ifdef OS2 # undef pthread_mutexattr_settype @@ -338,6 +339,7 @@ union semun // SIGTSTP // SIGCONT // SIGPIPE +// SIGUSR1 et SIGUSR2 sont utilisé par libsigsegv. # define SIGTEST SIGUSR1 @@ -936,6 +938,7 @@ pid_t debug_fork(); # define d_ex_erreur_interne_rplcas __erreur(84) # define d_ex_fichier_corrompu __erreur(85) # define d_ex_mutex_acquis_autre_thread __erreur(86) +# define d_ex_expression_reguliere __erreur(87) #endif @@ -2192,6 +2195,10 @@ typedef struct processus struct_liste_chainee *liste_mutexes; pthread_mutex_t protection_liste_mutexes; +/* Drapeau nécessaire à RESTART */ + + volatile logical1 requete_redemarrage; + /* Gestion optimisée de la mémoire */ double estimation_taille_pile_tampon; @@ -2635,9 +2642,11 @@ void instruction_read(struct_processus * void instruction_recode(struct_processus *s_etat_processus); void instruction_recv(struct_processus *s_etat_processus); void instruction_redraw(struct_processus *s_etat_processus); +void instruction_regex(struct_processus *s_etat_processus); void instruction_relax(struct_processus *s_etat_processus); void instruction_remove(struct_processus *s_etat_processus); void instruction_res(struct_processus *s_etat_processus); +void instruction_restart(struct_processus *s_etat_processus); void instruction_recall(struct_processus *s_etat_processus); void instruction_regv(struct_processus *s_etat_processus); void instruction_repeat(struct_processus *s_etat_processus); @@ -2907,6 +2916,7 @@ void interruption2(int signal); void interruption3(int signal); void interruption4(int signal); void interruption5(int signal); +void interruption6(int signal); void interruption_depassement_pile(int urgence, stackoverflow_context_t scp); void inversion_matrice(struct_processus *s_etat_processus, struct_matrice *s_matrice); @@ -3008,7 +3018,8 @@ complex16 sommation_vecteur_complexe(com */ #ifndef RPLARGS -int rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home); +int rplinit(int argc, char *argv[], char *envp[], + unsigned char ***resultats, char *rpl_home); #endif /* @@ -3121,6 +3132,8 @@ logical1 caracteristiques_fichier(struct unsigned long *unite); logical1 controle(struct_processus *s_etat_processus, unsigned char *fichier, unsigned char *type, unsigned char *somme_candidate); +logical1 controle_integrite(struct_processus *s_etat_processus, + unsigned char *executable_candidat, unsigned char *executable); logical1 creation_variable(struct_processus *s_etat_processus, struct_variable *s_variable, unsigned char autorisation_creation_variable_statique,