Diff for /rpl/src/rpl.h between versions 1.120 and 1.124

version 1.120, 2011/09/14 14:34:28 version 1.124, 2011/09/16 14:42:03
Line 211 Line 211
   
 enum signaux_rpl  enum signaux_rpl
 {  {
     rpl_null = 0,      rpl_signull = 0,
     rpl_sigint,      rpl_sigint,
     rpl_sigterm,      rpl_sigterm,
     rpl_sigstart,       // Signal envoyé par un père pour lancer son fils.      rpl_sigstart,       // Signal envoyé par un père pour lancer son fils.
Line 227  enum signaux_rpl Line 227  enum signaux_rpl
     rpl_sigalrm,        // Signal d'alarme (erreur système) depuis un fils      rpl_sigalrm,        // Signal d'alarme (erreur système) depuis un fils
     rpl_sighup,      rpl_sighup,
     rpl_sigtstp,      rpl_sigtstp,
       rpl_sigexcept,
     rpl_sigmax      rpl_sigmax
 };  };
   
Line 238  enum signaux_rpl Line 239  enum signaux_rpl
   
 typedef struct queue_signaux  typedef struct queue_signaux
 {  {
     pthread_mutex_t             mutex;      sem_t
   #   ifdef SEMAPHORES_NOMMES
           *
   #   endif
                                   semaphore;
   
     volatile int                pointeur_lecture;      volatile int                pointeur_lecture;
     volatile int                pointeur_ecriture;      volatile int                pointeur_ecriture;
Line 253  typedef struct queue_signaux Line 258  typedef struct queue_signaux
 #ifndef RPLARGS  #ifndef RPLARGS
 #   ifndef MAIN_RPL  #   ifndef MAIN_RPL
         extern struct_queue_signaux         *s_queue_signaux;          extern struct_queue_signaux         *s_queue_signaux;
           extern int                          f_queue_signaux;
 #   else  #   else
         struct_queue_signaux                *s_queue_signaux;          struct_queue_signaux                *s_queue_signaux;
           int                                 f_queue_signaux;
 #   endif  #   endif
 #endif  #endif
   
Line 397  typedef unsigned char   t_8_bits; Line 404  typedef unsigned char   t_8_bits;
         extern pthread_mutex_t      mutex_sem;          extern pthread_mutex_t      mutex_sem;
 #       endif  #       endif
   
         extern pthread_key_t        semaphore_fork_processus_courant;          extern pthread_mutex_t      mutex_liste_threads;
           extern pthread_mutex_t      mutex_gestionnaires_signaux_atomique;
   
         extern sem_t          extern sem_t
 #       ifdef SEMAPHORES_NOMMES  #       ifdef SEMAPHORES_NOMMES
         *              *
 #       endif  
                                     semaphore_liste_threads;  
   
         extern sem_t  
 #       ifdef SEMAPHORES_NOMMES  
         *  
 #       endif  #       endif
                                     semaphore_gestionnaires_signaux;                                      semaphore_gestionnaires_signaux;
   
         extern sem_t  
 #       ifdef SEMAPHORES_NOMMES  
         *  
 #       endif  
                                     semaphore_gestionnaires_signaux_atomique;  
   
 #       ifdef SEMAPHORES_NOMMES  
         // 0 -> liste_threads  
         // 1 -> gestionnaire_signaux  
         // 2 -> gestionnaire_signaux_atomique  
         // 3 -> &((*s_etat_processus).semaphore_fork)  
             extern unsigned char    noms_semaphores[4][LONGUEUR_NOM_SEMAPHORE];  
             extern sem_t            *semaphores_nommes[4];  
 #       endif  
 #   else  #   else
         jmp_buf                     contexte;          jmp_buf                     contexte;
         jmp_buf                     contexte_initial;          jmp_buf                     contexte_initial;
Line 439  typedef unsigned char   t_8_bits; Line 426  typedef unsigned char   t_8_bits;
         pthread_mutex_t             mutex_sem = PTHREAD_MUTEX_INITIALIZER;          pthread_mutex_t             mutex_sem = PTHREAD_MUTEX_INITIALIZER;
 #       endif  #       endif
   
         pthread_key_t               semaphore_fork_processus_courant;          pthread_mutex_t             mutex_liste_threads =
                                               PTHREAD_MUTEX_INITIALIZER;
         sem_t          pthread_mutex_t             mutex_gestiionnaires_signaux =
 #       ifdef SEMAPHORES_NOMMES                                              PTHREAD_MUTEX_INITIALIZER;
         *          pthread_mutex_t             mutex_gestionnaires_signaux_atomique =
 #       endif                                              PTHREAD_MUTEX_INITIALIZER;
                                     semaphore_liste_threads;  
   
         sem_t          sem_t
 #       ifdef SEMAPHORES_NOMMES  #       ifdef SEMAPHORES_NOMMES
         *              *
 #       endif  #       endif
                                     semaphore_gestionnaires_signaux;                                      semaphore_gestionnaires_signaux;
   
         sem_t  
 #       ifdef SEMAPHORES_NOMMES  
         *  
 #       endif  
                                     semaphore_gestionnaires_signaux_atomique;  
   
 #       ifdef SEMAPHORES_NOMMES  
             unsigned char           noms_semaphores[4][LONGUEUR_NOM_SEMAPHORE];  
             sem_t                   *semaphores_nommes[4];  
 #       endif  
 #   endif  #   endif
 #endif  #endif
   
Line 506  int sem_getvalue2(sem_t *semaphore, int Line 480  int sem_getvalue2(sem_t *semaphore, int
 #define ufprintf(flux, ...) transliterated_fprintf(NULL, \  #define ufprintf(flux, ...) transliterated_fprintf(NULL, \
             flux, __VA_ARGS__)              flux, __VA_ARGS__)
   
 // Tous les messages pour DISP, INPUT et les E/S par readline sont sur stderr.  
 // Cela évite aux messages envoyés par les gestionnaires de signaux d'être  
 // indéfiniment bloqués.  
   
 #ifdef SunOS  #ifdef SunOS
 #   define fopen(...) ({ FILE *desc; \  #   define fopen(...) ({ FILE *desc; \
             while((desc = fopen(__VA_ARGS__)) == NULL) \              while((desc = fopen(__VA_ARGS__)) == NULL) \
Line 2179  typedef struct processus Line 2149  typedef struct processus
   
     pid_t                       pid_processus_pere;      pid_t                       pid_processus_pere;
     pthread_t                   tid_processus_pere;      pthread_t                   tid_processus_pere;
     pthread_t                   tid_courant;  
   
     logical1                    processus_detache;      logical1                    processus_detache;
   
Line 2195  typedef struct processus Line 2164  typedef struct processus
     pthread_mutex_t             mutex;      pthread_mutex_t             mutex;
     pthread_mutex_t             mutex_allocation;      pthread_mutex_t             mutex_allocation;
   
     // Sémaphore autorisant les fork()      // Mutex autorisant les fork()
     sem_t      pthread_mutex_t             mutex_fork;
 #   ifdef SEMAPHORES_NOMMES  
     *  
 #   endif  
                                 semaphore_fork;  
   
 /* Mutexes                                          */  /* Mutexes                                          */
   

Removed from v.1.120  
changed lines
  Added in v.1.124


CVSweb interface <joel.bertrand@systella.fr>