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

version 1.124, 2011/09/16 14:42:03 version 1.130, 2011/09/20 14:36:30
Line 122 Line 122
                 ULONG   *nopened;                  ULONG   *nopened;
                 ULONG   allocated;                  ULONG   allocated;
             } sem_t;              } sem_t;
 #       else  #       else // IPCS_SYSV
             typedef struct              typedef struct
             {              {
                 int             sem;                  int             sem;
                   int             alloue;
                 unsigned char   *path;                  unsigned char   *path;
                 pid_t           pid;                  pid_t           pid;
                   pthread_t       tid;
             } sem_t;              } sem_t;
 #       endif  #       endif
   
 #       define SEM_FAILED   NULL  #       ifndef SEM_FAILED
   #           define SEM_FAILED   NULL
   #       endif
   
         sem_t *sem_open_SysV(const char *nom, int oflag, ...);          sem_t *sem_open_SysV(const char *nom, int oflag, ...);
         int sem_init_SysV(sem_t *sem, int shared, unsigned int value);          int sem_init_SysV(sem_t *sem, int shared, unsigned int value);
Line 239  enum signaux_rpl Line 243  enum signaux_rpl
   
 typedef struct queue_signaux  typedef struct queue_signaux
 {  {
     sem_t  #   ifndef IPCS_SYSV
 #   ifdef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
         *              sem_t               semaphore;
   #       endif
   #   else
           sem_t                   semaphore;
 #   endif  #   endif
                                 semaphore;  
   
     volatile int                pointeur_lecture;      volatile int                pointeur_lecture;
     volatile int                pointeur_ecriture;      volatile int                pointeur_ecriture;
Line 259  typedef struct queue_signaux Line 265  typedef struct queue_signaux
 #   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;          extern int                          f_queue_signaux;
   #       ifdef SEMAPHORES_NOMMES
               extern sem_t                    *semaphore_queue_signaux;
   #       endif
 #   else  #   else
         struct_queue_signaux                *s_queue_signaux;          struct_queue_signaux                *s_queue_signaux;
         int                                 f_queue_signaux;          int                                 f_queue_signaux;
   #       ifdef SEMAPHORES_NOMMES
               sem_t                           *semaphore_queue_signaux;
   #       endif
 #   endif  #   endif
 #endif  #endif
   
Line 428  typedef unsigned char   t_8_bits; Line 440  typedef unsigned char   t_8_bits;
   
         pthread_mutex_t             mutex_liste_threads =          pthread_mutex_t             mutex_liste_threads =
                                             PTHREAD_MUTEX_INITIALIZER;                                              PTHREAD_MUTEX_INITIALIZER;
         pthread_mutex_t             mutex_gestiionnaires_signaux =          pthread_mutex_t             mutex_gestionnaires_signaux =
                                             PTHREAD_MUTEX_INITIALIZER;                                              PTHREAD_MUTEX_INITIALIZER;
         pthread_mutex_t             mutex_gestionnaires_signaux_atomique =          pthread_mutex_t             mutex_gestionnaires_signaux_atomique =
                                             PTHREAD_MUTEX_INITIALIZER;                                              PTHREAD_MUTEX_INITIALIZER;
Line 441  typedef unsigned char   t_8_bits; Line 453  typedef unsigned char   t_8_bits;
 #endif  #endif
   
 #ifdef SEMAPHORES_NOMMES  #ifdef SEMAPHORES_NOMMES
 enum t_semaphore    { sem_liste_threads = 0,  sem_t *sem_init2(unsigned int valeur, pid_t pid);
         sem_gestionnaires_signaux = 1,  sem_t *sem_init3(unsigned int valeur, pid_t pid, pthread_t tid);
         sem_gestionnaires_signaux_atomique = 2,  int sem_destroy2(sem_t *semaphore_p, pid_t pid);
         sem_fork = 3 };  int sem_destroy3(sem_t *semaphore_p, pid_t pid, pthread_t tid);
   
 sem_t *sem_init2(unsigned int valeur, enum t_semaphore semaphore);  
 int sem_destroy2(sem_t *semaphore_p, enum t_semaphore semaphore);  
 int sem_getvalue2(sem_t *semaphore, int *valeur);  int sem_getvalue2(sem_t *semaphore, int *valeur);
   sem_t *sem_open2(pid_t pid);
   
   // Le mutex est là uniquement pour pouvoir émuler le comportement
   // de sem_getvalue() sur un système comme MacOS X qui ne possède pas
   // cette fonction.
   
 #define sem_getvalue(semaphore, value) sem_getvalue2(semaphore, value)  #define sem_getvalue(semaphore, value) sem_getvalue2(semaphore, value)
 #define sem_post(semaphore) \  #define sem_post(semaphore) \
Line 2165  typedef struct processus Line 2179  typedef struct processus
     pthread_mutex_t             mutex_allocation;      pthread_mutex_t             mutex_allocation;
   
     // Mutex autorisant les fork()      // Mutex autorisant les fork()
     pthread_mutex_t             mutex_fork;      sem_t
   #   ifdef SEMAPHORES_NOMMES
           *
   #   endif
                                   semaphore_fork;
   
 /* Mutexes                                          */  /* Mutexes                                          */
   

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


CVSweb interface <joel.bertrand@systella.fr>