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

version 1.130, 2011/09/20 14:36:30 version 1.133, 2011/09/26 15:57:17
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.3    RPL/2 (R) version 4.1.4
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2011 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 162 Line 162
   
 #   include "openssl/evp.h"  #   include "openssl/evp.h"
 #   include "sqlite3.h"  #   include "sqlite3.h"
   #   include "sigsegv.h"
   
 #   define HAVE_INLINE  #   define HAVE_INLINE
 #   define GSL_RANGE_CHECK_OFF  #   define GSL_RANGE_CHECK_OFF
Line 241  enum signaux_rpl Line 242  enum signaux_rpl
 // Elle est projetée dans un segment de mémoire partagée pour qu'elle soit  // Elle est projetée dans un segment de mémoire partagée pour qu'elle soit
 // accessible à la fois du père et des fils.  // accessible à la fois du père et des fils.
   
   #ifndef RPLARGS
 typedef struct queue_signaux  typedef struct queue_signaux
 {  {
 #   ifndef IPCS_SYSV  #   ifndef IPCS_SYSV
Line 261  typedef struct queue_signaux Line 263  typedef struct queue_signaux
     }                           queue[LONGUEUR_QUEUE_SIGNAUX];      }                           queue[LONGUEUR_QUEUE_SIGNAUX];
 } struct_queue_signaux;  } struct_queue_signaux;
   
 #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;          extern int                          f_queue_signaux;
Line 299  union semun Line 300  union semun
 };  };
 #endif  #endif
   
   #ifndef RTLD_LOCAL
   #   define RTLD_LOCAL       0
   #endif
   
   #ifndef SIGSTKSZ
   #   define SIGSTKSZ         65536
   #endif
   
 /*  /*
 ================================================================================  ================================================================================
Line 403  typedef unsigned char   t_8_bits; Line 411  typedef unsigned char   t_8_bits;
 #   endif  #   endif
   
 #   ifndef MAIN_RPL  #   ifndef MAIN_RPL
         extern jmp_buf              contexte;          extern jmp_buf              contexte_ecriture;
           extern jmp_buf              contexte_impression;
         extern jmp_buf              contexte_initial;          extern jmp_buf              contexte_initial;
         extern jmp_buf              contexte_processus;          extern jmp_buf              contexte_processus;
         extern jmp_buf              contexte_thread;          extern jmp_buf              contexte_thread;
Line 424  typedef unsigned char   t_8_bits; Line 433  typedef unsigned char   t_8_bits;
             *              *
 #       endif  #       endif
                                     semaphore_gestionnaires_signaux;                                      semaphore_gestionnaires_signaux;
   
           extern volatile int         routine_recursive;
 #   else  #   else
         jmp_buf                     contexte;          jmp_buf                     contexte_ecriture;
           jmp_buf                     contexte_impression;
         jmp_buf                     contexte_initial;          jmp_buf                     contexte_initial;
         jmp_buf                     contexte_processus;          jmp_buf                     contexte_processus;
         jmp_buf                     contexte_thread;          jmp_buf                     contexte_thread;
Line 449  typedef unsigned char   t_8_bits; Line 461  typedef unsigned char   t_8_bits;
             *              *
 #       endif  #       endif
                                     semaphore_gestionnaires_signaux;                                      semaphore_gestionnaires_signaux;
   
           volatile int                routine_recursive;
 #   endif  #   endif
 #endif  #endif
   
 #ifdef SEMAPHORES_NOMMES  #ifdef SEMAPHORES_NOMMES
 sem_t *sem_init2(unsigned int valeur, pid_t pid);  #define SEM_FORK            0
 sem_t *sem_init3(unsigned int valeur, pid_t pid, pthread_t tid);  #define SEM_QUEUE           1
 int sem_destroy2(sem_t *semaphore_p, pid_t pid);  #define SEM_SIGNAUX         2
 int sem_destroy3(sem_t *semaphore_p, pid_t pid, pthread_t tid);  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 1817  typedef struct processus Line 1834  typedef struct processus
     pthread_t                   thread_fusible;      pthread_t                   thread_fusible;
     pthread_t                   thread_surveille_par_fusible;      pthread_t                   thread_surveille_par_fusible;
   
 #   if !defined(Cygwin)  
 #       if !(OpenBSD)  
             stack_t             pile_signal;  
 #       else  
 #           ifdef SA_ONSTACK  
 #               undef SA_ONSTACK  
 #           endif  
 #           define SA_ONSTACK   0  
 #       endif  
 #   else  
 #       define SA_ONSTACK       0  
 #       define RTLD_LOCAL       0  
 #   endif  
   
     volatile int                pointeur_signal_ecriture;      volatile int                pointeur_signal_ecriture;
     volatile int                pointeur_signal_lecture;      volatile int                pointeur_signal_lecture;
     volatile enum signaux_rpl   signaux_en_queue[LONGUEUR_QUEUE_SIGNAUX];      volatile enum signaux_rpl   signaux_en_queue[LONGUEUR_QUEUE_SIGNAUX];
Line 2051  typedef struct processus Line 2054  typedef struct processus
   
 /* Traitement des erreurs                               */  /* Traitement des erreurs                               */
   
     unsigned int                compteur_violation_d_acces;  
     unsigned int                erreur_compilation;      unsigned int                erreur_compilation;
     unsigned int                erreur_execution;      unsigned int                erreur_execution;
     unsigned int                erreur_systeme;      unsigned int                erreur_systeme;
Line 2903  void interruption2(int signal); Line 2905  void interruption2(int signal);
 void interruption3(int signal);  void interruption3(int signal);
 void interruption4(int signal);  void interruption4(int signal);
 void interruption5(int signal);  void interruption5(int signal);
   void interruption_depassement_pile(int urgence, stackoverflow_context_t scp);
 void inversion_matrice(struct_processus *s_etat_processus,  void inversion_matrice(struct_processus *s_etat_processus,
         struct_matrice *s_matrice);          struct_matrice *s_matrice);
 void lancement_daemon(struct_processus *s_etat_processus);  void lancement_daemon(struct_processus *s_etat_processus);
Line 2936  void retrait_thread(struct_processus *s_ Line 2939  void retrait_thread(struct_processus *s_
 void retrait_thread_surveillance(struct_processus *s_etat_processus,  void retrait_thread_surveillance(struct_processus *s_etat_processus,
         struct_descripteur_thread *s_argument_thread);          struct_descripteur_thread *s_argument_thread);
 void rplcore(struct_processus *s_etat_processus);  void rplcore(struct_processus *s_etat_processus);
   #endif
   
 void scrutation_injection(struct_processus *s_etat_processus);  void scrutation_injection(struct_processus *s_etat_processus);
   
   #ifndef RPLARGS
 void scrutation_interruptions(struct_processus *s_etat_processus);  void scrutation_interruptions(struct_processus *s_etat_processus);
 void sf(struct_processus *s_etat_processus, unsigned char indice_drapeau);  void sf(struct_processus *s_etat_processus, unsigned char indice_drapeau);
 void *surveillance_processus(void *argument);  void *surveillance_processus(void *argument);
Line 3191  ssize_t write_atomic(struct_processus *s Line 3198  ssize_t write_atomic(struct_processus *s
 */  */
   
 int alsprintf(unsigned char **strp, const char *fmt, ...);  int alsprintf(unsigned char **strp, const char *fmt, ...);
   int interruption_violation_access(void *adresse_fautive, int gravite);
   #ifndef RPLARGS
 int liste_variables(struct_processus *s_etat_processus,  int liste_variables(struct_processus *s_etat_processus,
         struct_tableau_variables *tableau, int position,          struct_tableau_variables *tableau, int position,
         struct_arbre_variables *l_element_courant);          struct_arbre_variables *l_element_courant);
 int nombre_variables(struct_processus *s_etat_processus,  int nombre_variables(struct_processus *s_etat_processus,
         struct_arbre_variables *l_element_courant);          struct_arbre_variables *l_element_courant);
   #endif
 int tex_fprintf(struct_processus *s_etat_processus,  int tex_fprintf(struct_processus *s_etat_processus,
         file *flux, const char *format, ...);          file *flux, const char *format, ...);
 int transliterated_fprintf(struct_processus *s_etat_processus, file *flux,  int transliterated_fprintf(struct_processus *s_etat_processus, file *flux,
Line 3277  struct_descripteur_fichier *descripteur_ Line 3287  struct_descripteur_fichier *descripteur_
 struct_objet *copie_objet(struct_processus *s_etat_processus,  struct_objet *copie_objet(struct_processus *s_etat_processus,
         struct_objet *s_objet, unsigned char type);          struct_objet *s_objet, unsigned char type);
   
 #ifndef RPLARGS  
 struct_objet *allocation(struct_processus *s_etat_processus, enum t_type type);  struct_objet *allocation(struct_processus *s_etat_processus, enum t_type type);
   #ifndef RPLARGS
 struct_objet *formateur_date(struct_processus *s_etat_processus,  struct_objet *formateur_date(struct_processus *s_etat_processus,
         struct timeval *temps);          struct timeval *temps);
 struct_objet *lecture_pipe(struct_processus *s_etat_processus, int pipe);  struct_objet *lecture_pipe(struct_processus *s_etat_processus, int pipe);

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


CVSweb interface <joel.bertrand@systella.fr>