Diff for /rpl/src/rpl.h between versions 1.126 and 1.131

version 1.126, 2011/09/19 17:33:17 version 1.131, 2011/09/20 15:45:53
Line 101 Line 101
 #   include <pwd.h>  #   include <pwd.h>
 #   include <sys/shm.h>  #   include <sys/shm.h>
   
 #   ifndef __RPLCAS  #   ifndef IPCS_SYSV
 #       ifndef IPCS_SYSV  #       include <semaphore.h>
 #           include <semaphore.h>  #   else
 #       else  #       include <sys/ipc.h>
 #           include <sys/ipc.h>  #       include <sys/sem.h>
 #           include <sys/sem.h>  
   
 #           ifdef OS2  
 #               define INCL_DOSSEMAPHORES  
 #               define INCL_DOSMEMMGR  
 #               define INCL_DOSERRORS  
 #               include <os2.h>  
   
                 typedef struct _OS2SEM  
                 {  
                     HMTX    hmtx;  
                     HEV     hev;  
                     ULONG   shared;  
                     ULONG   *cnt;  
                     ULONG   *nopened;  
                     ULONG   allocated;  
                 } sem_t;  
 #           else // IPCS_SYSV  
                 typedef struct  
                 {  
                     int             sem;  
                     int             alloue;  
                     unsigned char   *path;  
                     pid_t           pid;  
                 } sem_t;  
 #           endif  
   
 #           ifndef SEM_FAILED  #       ifdef OS2
 #               define SEM_FAILED   NULL  #           define INCL_DOSSEMAPHORES
 #           endif  #           define INCL_DOSMEMMGR
   #           define INCL_DOSERRORS
   #           include <os2.h>
   
               typedef struct _OS2SEM
               {
                   HMTX    hmtx;
                   HEV     hev;
                   ULONG   shared;
                   ULONG   *cnt;
                   ULONG   *nopened;
                   ULONG   allocated;
               } sem_t;
   #       else // IPCS_SYSV
               typedef struct
               {
                   int             sem;
                   int             alloue;
                   unsigned char   *path;
                   pid_t           pid;
                   pthread_t       tid;
               } sem_t;
   #       endif
   
             sem_t *sem_open_SysV(const char *nom, int oflag, ...);  #       ifndef SEM_FAILED
             int sem_init_SysV(sem_t *sem, int shared, unsigned int value);  #           define SEM_FAILED   NULL
             int sem_close_SysV(sem_t *sem);  
             int sem_wait_SysV(sem_t *sem);  
             int sem_trywait_SysV(sem_t *sem);  
             int sem_post_SysV(sem_t *sem);  
             int sem_getvalue_SysV(sem_t *sem, int *value);  
             int sem_unlink_SysV(const char *nom);  
             int sem_destroy_SysV(sem_t *sem);  
 #       endif  #       endif
   
           sem_t *sem_open_SysV(const char *nom, int oflag, ...);
           int sem_init_SysV(sem_t *sem, int shared, unsigned int value);
           int sem_close_SysV(sem_t *sem);
           int sem_wait_SysV(sem_t *sem);
           int sem_trywait_SysV(sem_t *sem);
           int sem_post_SysV(sem_t *sem);
           int sem_getvalue_SysV(sem_t *sem, int *value);
           int sem_unlink_SysV(const char *nom);
           int sem_destroy_SysV(sem_t *sem);
 #   endif  #   endif
   
 #   include <setjmp.h>  #   include <setjmp.h>
Line 454  typedef unsigned char   t_8_bits; Line 453  typedef unsigned char   t_8_bits;
 #endif  #endif
   
 #ifdef SEMAPHORES_NOMMES  #ifdef SEMAPHORES_NOMMES
 sem_t *sem_init2(unsigned int valeur, pid_t pid);  #define SEM_FORK            0
 int sem_destroy2(sem_t *semaphore_p, pid_t pid);  #define SEM_QUEUE           1
   #define SEM_SIGNAUX         2
   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);
   int sem_destroy2(sem_t *semaphore_p, pid_t pid, int ordre);
   int sem_destroy3(sem_t *semaphore_p, pid_t pid, pthread_t tid, int ordre);
 int sem_getvalue2(sem_t *semaphore, int *valeur);  int sem_getvalue2(sem_t *semaphore, int *valeur);
 sem_t *sem_open2(pid_t pid);  sem_t *sem_open2(pid_t pid, int ordre);
   
 // Le mutex est là uniquement pour pouvoir émuler le comportement  // 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  // de sem_getvalue() sur un système comme MacOS X qui ne possède pas
Line 2178  typedef struct processus Line 2182  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.126  
changed lines
  Added in v.1.131


CVSweb interface <joel.bertrand@systella.fr>