Diff for /rpl/src/rpl.h between versions 1.158 and 1.163

version 1.158, 2012/03/01 10:14:08 version 1.163, 2012/05/16 09:14:04
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.7    RPL/2 (R) version 4.1.8
   Copyright (C) 1989-2012 Dr. BERTRAND Joël    Copyright (C) 1989-2012 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 215 Line 215
 #   endif  #   endif
 #endif  #endif
   
   #ifdef MAIN_RPL
   #   define __EXTERN__
   #   define __STATIC_MUTEX_INITIALIZATION__ = PTHREAD_MUTEX_INITIALIZER
   #else
   #   define __EXTERN__                       extern
   #   define __STATIC_MUTEX_INITIALIZATION__
   #endif
   
 /*  /*
 ================================================================================  ================================================================================
   Bugs spécifiques    Bugs spécifiques
Line 270  typedef struct queue_signaux Line 278  typedef struct queue_signaux
     }                           queue[LONGUEUR_QUEUE_SIGNAUX];      }                           queue[LONGUEUR_QUEUE_SIGNAUX];
 } struct_queue_signaux;  } struct_queue_signaux;
   
 #   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  #   ifdef SEMAPHORES_NOMMES
             extern sem_t                    *semaphore_queue_signaux;          __EXTERN__ sem_t            *semaphore_queue_signaux;
 #       endif  
 #   else  
         struct_queue_signaux                *s_queue_signaux;  
         int                                 f_queue_signaux;  
 #       ifdef SEMAPHORES_NOMMES  
             sem_t                           *semaphore_queue_signaux;  
 #       endif  
 #   endif  #   endif
 #endif  #endif
   
Line 411  typedef unsigned char   t_8_bits; Line 412  typedef unsigned char   t_8_bits;
 #       define LONGUEUR_NOM_SEMAPHORE   64  #       define LONGUEUR_NOM_SEMAPHORE   64
 #   endif  #   endif
   
 #   ifndef MAIN_RPL  #   ifdef SEMAPHORES_NOMMES
         extern jmp_buf              contexte_ecriture;  #       define __PTR__      *
         extern jmp_buf              contexte_impression;  #   else
         extern jmp_buf              contexte_initial;  #       define __PTR__
         extern jmp_buf              contexte_processus;  #   endif
         extern jmp_buf              contexte_thread;  
   
         extern int                  signal_test;  
   
         extern pid_t                pid_processus_pere;  
   
 #       ifdef SEMAPHORES_NOMMES  
         extern pthread_mutex_t      mutex_sem;  
 #       endif  
   
         extern pthread_mutex_t      mutex_liste_threads;  
         extern pthread_mutex_t      mutex_gestionnaires_signaux_atomique;  
   
         extern sem_t      __EXTERN__ jmp_buf              contexte_ecriture;
 #       ifdef SEMAPHORES_NOMMES      __EXTERN__ jmp_buf              contexte_impression;
             *      __EXTERN__ jmp_buf              contexte_initial;
 #       endif      __EXTERN__ jmp_buf              contexte_processus;
                                     semaphore_gestionnaires_signaux;      __EXTERN__ jmp_buf              contexte_thread;
   
         extern volatile int         routine_recursive;      __EXTERN__ int                  signal_test;
 #   else  
         jmp_buf                     contexte_ecriture;  
         jmp_buf                     contexte_impression;  
         jmp_buf                     contexte_initial;  
         jmp_buf                     contexte_processus;  
         jmp_buf                     contexte_thread;  
   
         int                         signal_test;      __EXTERN__ pid_t                pid_processus_pere;
   
         pid_t                       pid_processus_pere;  #   ifdef SEMAPHORES_NOMMES
       __EXTERN__ pthread_mutex_t      mutex_sem __STATIC_MUTEX_INITIALIZATION__;
   #   endif
   
 #       ifdef SEMAPHORES_NOMMES      __EXTERN__ pthread_mutex_t      mutex_liste_threads
         pthread_mutex_t             mutex_sem = PTHREAD_MUTEX_INITIALIZER;                                              __STATIC_MUTEX_INITIALIZATION__;
 #       endif      __EXTERN__ pthread_mutex_t      mutex_gestionnaires_signaux_atomique
                                               __STATIC_MUTEX_INITIALIZATION__;
   
         pthread_mutex_t             mutex_liste_threads =      __EXTERN__ sem_t __PTR__        semaphore_gestionnaires_signaux;
                                             PTHREAD_MUTEX_INITIALIZER;  
         pthread_mutex_t             mutex_gestionnaires_signaux =  
                                             PTHREAD_MUTEX_INITIALIZER;  
         pthread_mutex_t             mutex_gestionnaires_signaux_atomique =  
                                             PTHREAD_MUTEX_INITIALIZER;  
         sem_t  
 #       ifdef SEMAPHORES_NOMMES  
             *  
 #       endif  
                                     semaphore_gestionnaires_signaux;  
   
         volatile int                routine_recursive;      __EXTERN__ volatile int         routine_recursive;
 #   endif  
 #endif  #endif
   
 #ifdef SEMAPHORES_NOMMES  #ifdef SEMAPHORES_NOMMES
Line 522  sem_t *sem_open2(pid_t pid, int ordre); Line 497  sem_t *sem_open2(pid_t pid, int ordre);
 #   define fclose(...) ({ int ios; \  #   define fclose(...) ({ int ios; \
             while((ios = fclose(__VA_ARGS__)) != 0) \              while((ios = fclose(__VA_ARGS__)) != 0) \
             { if ((errno != EINTR) && (errno != 0)) break; } ios; })              { if ((errno != EINTR) && (errno != 0)) break; } ios; })
 #   define fread(...) ({ int ios; \  
             while((ios = fread(__VA_ARGS__)) < 0) \  
             { if ((errno != EINTR) && (errno != 0)) break; } ios; })  
 #   define fflush(flux) ({ int ios; \  #   define fflush(flux) ({ int ios; \
             while((ios = fflush((flux == stdout) ? stderr : flux)) != 0) \              while((ios = fflush((flux == stdout) ? stderr : flux)) != 0) \
             { if ((errno != EINTR) && (errno != 0)) break; } ios; })              { if ((errno != EINTR) && (errno != 0)) break; } ios; })
Line 942  pid_t debug_fork(); Line 914  pid_t debug_fork();
 #   define d_ex_fichier_corrompu                __erreur(85)  #   define d_ex_fichier_corrompu                __erreur(85)
 #   define d_ex_mutex_acquis_autre_thread       __erreur(86)  #   define d_ex_mutex_acquis_autre_thread       __erreur(86)
 #   define d_ex_expression_reguliere            __erreur(87)  #   define d_ex_expression_reguliere            __erreur(87)
   #   define d_ex_instruction_indisponible        __erreur(88)
 #endif  #endif
   
   
Line 1203  typedef struct descripteur_fichier Line 1176  typedef struct descripteur_fichier
     pid_t                       pid;      pid_t                       pid;
     pthread_t                   tid;      pthread_t                   tid;
   
     file                        *descripteur_c;      union
     sqlite3                     *descripteur_sqlite;      {
           file                    *descripteur_c;
           sqlite3                 *descripteur_sqlite;
       };
 } struct_descripteur_fichier;  } struct_descripteur_fichier;
 #endif  #endif
   

Removed from v.1.158  
changed lines
  Added in v.1.163


CVSweb interface <joel.bertrand@systella.fr>