--- rpl/src/rpl.h 2011/11/19 17:53:46 1.142 +++ rpl/src/rpl.h 2011/11/30 09:28:38 1.147 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.4 + RPL/2 (R) version 4.1.5 Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -337,9 +337,8 @@ union semun // SIGINT // SIGTSTP // SIGCONT -// SIGURG // SIGPIPE -// SIGALRM +// SIGUSR2 : utilisé pour faire un execve du processus sur lui-même # define SIGTEST SIGUSR1 @@ -797,6 +796,7 @@ pid_t debug_fork(); # define d_es_contexte __erreur(2013) # define d_es_somme_controle __erreur(2014) # define d_es_semaphore __erreur(2015) +# define d_es_mutex_acquis_autre_thread __erreur(2016) #endif /* @@ -936,6 +936,7 @@ pid_t debug_fork(); # define d_ex_creation_variable_globale __erreur(83) # define d_ex_erreur_interne_rplcas __erreur(84) # define d_ex_fichier_corrompu __erreur(85) +# define d_ex_mutex_acquis_autre_thread __erreur(86) #endif @@ -1123,6 +1124,7 @@ typedef struct fichier typedef struct rpl_mutex { pthread_mutex_t mutex; + pthread_t tid; } struct_mutex; #endif @@ -2191,6 +2193,12 @@ typedef struct processus struct_liste_chainee *liste_mutexes; pthread_mutex_t protection_liste_mutexes; +/* Pointeurs nécessaire à RESTART */ + + int argv; + char *argc[]; + char *envp[]; + /* Gestion optimisée de la mémoire */ double estimation_taille_pile_tampon; @@ -3007,7 +3015,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 /* @@ -3120,6 +3129,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,