Diff for /rpl/src/rpl.h between versions 1.220 and 1.234

version 1.220, 2013/04/01 15:29:39 version 1.234, 2013/10/04 07:55:23
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.14    RPL/2 (R) version 4.1.16
   Copyright (C) 1989-2013 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 318  typedef struct queue_signaux Line 318  typedef struct queue_signaux
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             sem_t               semaphore;              sem_t               semaphore;
             sem_t               signalisation;              sem_t               signalisation;
               sem_t               arret_signalisation;
 #       endif  #       endif
 #   else  #   else
         sem_t                   semaphore;          sem_t                   semaphore;
         sem_t                   signalisation;          sem_t                   signalisation;
           sem_t                   arret_signalisation;
 #   endif  #   endif
   
     volatile int                pointeur_lecture;      volatile int                pointeur_lecture;
Line 342  __EXTERN__ int      f_queue_signaux; Line 344  __EXTERN__ int      f_queue_signaux;
 #   ifdef SEMAPHORES_NOMMES  #   ifdef SEMAPHORES_NOMMES
         __EXTERN__ sem_t            *semaphore_queue_signaux;          __EXTERN__ sem_t            *semaphore_queue_signaux;
         __EXTERN__ sem_t            *semaphore_signalisation;          __EXTERN__ sem_t            *semaphore_signalisation;
           __EXTERN__ sem_t            *semaphore_arret_signalisation;
 #   endif  #   endif
 #endif  #endif
   
Line 479  union semun Line 482  union semun
   
     __EXTERN__ pthread_mutex_t      mutex_liste_threads      __EXTERN__ pthread_mutex_t      mutex_liste_threads
                                             __STATIC_MUTEX_INITIALIZATION__;                                              __STATIC_MUTEX_INITIALIZATION__;
     __EXTERN__ pthread_mutex_t      mutex_gestionnaires_signaux_atomique  
                                             __STATIC_MUTEX_INITIALIZATION__;  
     __EXTERN__ pthread_mutex_t      mutex_creation_variable_partagee      __EXTERN__ pthread_mutex_t      mutex_creation_variable_partagee
                                             __STATIC_MUTEX_INITIALIZATION__;                                              __STATIC_MUTEX_INITIALIZATION__;
     __EXTERN__ pthread_mutex_t      mutex_sections_critiques;      __EXTERN__ pthread_mutex_t      mutex_sections_critiques;
Line 492  union semun Line 493  union semun
 #endif  #endif
   
 #ifdef SEMAPHORES_NOMMES  #ifdef SEMAPHORES_NOMMES
 #define SEM_FORK            0  #define SEM_FORK                0
 #define SEM_QUEUE           1  #define SEM_QUEUE               1
 #define SEM_SIGNAUX         2  #define SEM_SIGNAUX             2
 #define SEM_SIGNALISATION   3  #define SEM_SIGNALISATION       3
   #define SEM_ARRET_SIGNALISATION 4
 sem_t *sem_init2(unsigned int valeur, pid_t pid, int ordre);  sem_t *sem_init2(unsigned int valeur, pid_t pid, int ordre);
 sem_t *sem_init3(unsigned int valeur, pid_t pid, pthread_t tid, int ordre);  sem_t *sem_init3(unsigned int valeur, pid_t pid, pthread_t tid, int ordre);
 int sem_destroy2(sem_t *semaphore_p, pid_t pid, int ordre);  int sem_destroy2(sem_t *semaphore_p, pid_t pid, int ordre);
Line 1460  typedef struct descripteur_thread Line 1462  typedef struct descripteur_thread
     int                         pipe_injections[2];      int                         pipe_injections[2];
     int                         pipe_nombre_injections[2];      int                         pipe_nombre_injections[2];
     int                         pipe_interruptions[2];      int                         pipe_interruptions[2];
     int                         pipe_nombre_objets_attente[2];      //  pipe_nombre_elements_attente == 0 => initialisation ou terminaison
     int                         pipe_nombre_interruptions_attente[2];      //  pipe_nombre_elements_attente == 1 => objet en attente
       //  pipe_nombre_elements_attente == 2 => interruption en attente
       int                         pipe_nombre_elements_attente[2];
     int                         pipe_acquittement[2];      int                         pipe_acquittement[2];
   
     volatile integer8           nombre_objets_dans_pipe;      volatile integer8           nombre_objets_dans_pipe;
Line 1945  typedef struct processus Line 1949  typedef struct processus
     int                         pipe_injections;      int                         pipe_injections;
     int                         pipe_nombre_injections;      int                         pipe_nombre_injections;
     int                         pipe_interruptions;      int                         pipe_interruptions;
     int                         pipe_nombre_objets_attente;      int                         pipe_nombre_elements_attente;
     int                         pipe_nombre_interruptions_attente;  
     int                         nombre_objets_envoyes_non_lus;      int                         nombre_objets_envoyes_non_lus;
     int                         nombre_objets_injectes;      int                         nombre_objets_injectes;
   
Line 2182  typedef struct processus Line 2185  typedef struct processus
 /* Traitement des erreurs                               */  /* Traitement des erreurs                               */
   
     int                         erreur_compilation;      int                         erreur_compilation;
     int                         erreur_execution;      volatile int                erreur_execution;
     int                         erreur_systeme;      volatile int                erreur_systeme;
   
     struct_objet                *s_objet_errone;      struct_objet                *s_objet_errone;
     struct_objet                *s_objet_erreur;      struct_objet                *s_objet_erreur;
Line 2304  typedef struct processus Line 2307  typedef struct processus
     struct_liste_profilage2     *pile_profilage_fonctions;      struct_liste_profilage2     *pile_profilage_fonctions;
     struct timeval              horodatage_profilage;      struct timeval              horodatage_profilage;
   
     // Mutex spécifique au processus et donnant accès à la pile des processus  
     pthread_mutex_t             mutex;  
     pthread_mutex_t             mutex_allocation;      pthread_mutex_t             mutex_allocation;
       pthread_mutex_t             mutex_interruptions;
       pthread_mutex_t             mutex_pile_processus;
       pthread_mutex_t             mutex_signaux;
   
     // Mutex autorisant les fork()      // Mutex autorisant les fork()
     sem_t __PTR__               semaphore_fork;      sem_t __PTR__               semaphore_fork;
Line 2317  typedef struct processus Line 2321  typedef struct processus
     pthread_mutex_t             protection_liste_mutexes;      pthread_mutex_t             protection_liste_mutexes;
     unsigned int                sections_critiques;      unsigned int                sections_critiques;
   
 /* Drapeau nécessaire à RESTART                 */  /* Variable d'initialisation pour SCHED             */
   
       logical1                    initialisation_scheduler;
   
   /* Drapeau nécessaire à RESTART                     */
   
     volatile logical1           requete_redemarrage;      volatile logical1           requete_redemarrage;
   
Line 2792  void instruction_return(struct_processus Line 2800  void instruction_return(struct_processus
 void instruction_revlist(struct_processus *s_etat_processus);  void instruction_revlist(struct_processus *s_etat_processus);
 void instruction_rewind(struct_processus *s_etat_processus);  void instruction_rewind(struct_processus *s_etat_processus);
 void instruction_rfuse(struct_processus *s_etat_processus);  void instruction_rfuse(struct_processus *s_etat_processus);
   void instruction_rgdl(struct_processus *s_etat_processus);
   void instruction_rgdr(struct_processus *s_etat_processus);
 void instruction_rl(struct_processus *s_etat_processus);  void instruction_rl(struct_processus *s_etat_processus);
 void instruction_rlb(struct_processus *s_etat_processus);  void instruction_rlb(struct_processus *s_etat_processus);
 void instruction_rnd(struct_processus *s_etat_processus);  void instruction_rnd(struct_processus *s_etat_processus);

Removed from v.1.220  
changed lines
  Added in v.1.234


CVSweb interface <joel.bertrand@systella.fr>