Diff for /rpl/src/rpl.h between versions 1.303 and 1.317

version 1.303, 2017/01/18 15:44:24 version 1.317, 2017/08/21 12:17:20
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.26    RPL/2 (R) version 4.1.28
   Copyright (C) 1989-2017 Dr. BERTRAND Joël    Copyright (C) 1989-2017 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 92 Line 92
 #include <stdarg.h>  #include <stdarg.h>
 #include <poll.h>  #include <poll.h>
 #include <signal.h>  #include <signal.h>
   #include <sys/time.h>
   
 #ifndef RPLARGS  #ifndef RPLARGS
 #   include <sys/mman.h>  #   include <sys/mman.h>
 #   include <sys/time.h>  
 #   include <sys/resource.h>  #   include <sys/resource.h>
 #   include <sys/select.h>  #   include <sys/select.h>
 #   include <sys/socket.h>  #   include <sys/socket.h>
Line 104 Line 104
 #   include <sys/types.h>  #   include <sys/types.h>
 #   include <sys/un.h>  #   include <sys/un.h>
 #   include <sys/wait.h>  #   include <sys/wait.h>
   #   include <omp.h>
   
 #   include <arpa/inet.h>  #   include <arpa/inet.h>
 #   include <netinet/in.h>  #   include <netinet/in.h>
Line 628  union semun Line 629  union semun
     } while(0)      } while(0)
   
 #ifdef __GLIBC__  #ifdef __GLIBC__
 #include <execinfo.h>  #   include <execinfo.h>
 #define __BACKTRACE  #   define __BACKTRACE
 #define BACKTRACE(n) \  #   define BACKTRACE(n) \
     do \      do \
     { \      { \
         void            *buffer[n]; \          void            *buffer[n]; \
Line 655  union semun Line 656  union semun
         pthread_mutex_unlock(&mutex); \          pthread_mutex_unlock(&mutex); \
     } while(0)      } while(0)
 #else  #else
 #define BACKTRACE(n) NOTICE("BACKTRACE only defined in glibc")  #   define BACKTRACE(n) NOTICE("BACKTRACE only defined in glibc")
 #endif  #endif
   
 #ifdef __BACKTRACE  #ifdef __BACKTRACE
Line 701  pid_t debug_fork(); Line 702  pid_t debug_fork();
 #endif  #endif
   
 #ifdef DEBUG_RETURN  #ifdef DEBUG_RETURN
 #define return uprintf("[%d] Return from <%s()> at line #%d " \  #   define return uprintf("[%d] Return from <%s()> at line #%d " \
         "(%s [%d])\n", (int) getpid(), __FUNCTION__, \          "(%s [%d])\n", (int) getpid(), __FUNCTION__, \
         __LINE__, strerror(errno), errno); fflush(stdout); errno = 0; return          __LINE__, strerror(errno), errno); fflush(stdout); errno = 0; return
 #endif  #endif
   
 #ifdef DEBUG_MUTEX  #ifdef DEBUG_MUTEX
 #define pthread_mutex_lock(mutex) uprintf("[%d-%llu] Mutex %s (%p) " \  #   define pthread_mutex_lock(mutex) uprintf("[%d-%llu] Mutex %s (%p) " \
         "locking at %s() " \          "locking at %s() " \
         "line #%d\n", (int) getpid(), (unsigned long long) pthread_self(), \          "line #%d\n", (int) getpid(), (unsigned long long) pthread_self(), \
         #mutex, mutex, __FUNCTION__, __LINE__), fflush(stdout), \          #mutex, mutex, __FUNCTION__, __LINE__), fflush(stdout), \
         pthread_mutex_lock(mutex)          pthread_mutex_lock(mutex)
 #define pthread_mutex_unlock(mutex) uprintf("[%d-%llu] Mutex %s (%p) " \  #   define pthread_mutex_unlock(mutex) uprintf("[%d-%llu] Mutex %s (%p) " \
         "unlocking at " \          "unlocking at " \
         "%s() line #%d\n", (int) getpid(), (unsigned long long) \          "%s() line #%d\n", (int) getpid(), (unsigned long long) \
         pthread_self(), #mutex, mutex, __FUNCTION__, __LINE__), \          pthread_self(), #mutex, mutex, __FUNCTION__, __LINE__), \
         fflush(stdout), \          fflush(stdout), \
         pthread_mutex_unlock(mutex)          pthread_mutex_unlock(mutex)
   #   define pthread_mutex_trylock(mutex) uprintf("[%d-%llu] Mutex %s (%p) " \
           "trylocking at " \
           "%s() line #%d\n", (int) getpid(), (unsigned long long) \
           pthread_self(), #mutex, mutex, __FUNCTION__, __LINE__), \
           fflush(stdout), \
           pthread_mutex_trylock(mutex)
 #endif  #endif
   
   
Line 1014  pid_t debug_fork(); Line 1021  pid_t debug_fork();
 #   define d_ex_chiffrement_indisponible        __erreur(90)  #   define d_ex_chiffrement_indisponible        __erreur(90)
 #   define d_ex_longueur_clef_chiffrement       __erreur(91)  #   define d_ex_longueur_clef_chiffrement       __erreur(91)
 #   define d_ex_taille_message                  __erreur(92)  #   define d_ex_taille_message                  __erreur(92)
   #   define d_ex_type_externe_dup                __erreur(93)
   #   define d_ex_type_externe_drop               __erreur(94)
 #endif  #endif
   
   
Line 1042  pid_t debug_fork(); Line 1051  pid_t debug_fork();
 #define BIN __RPL_BIN  #define BIN __RPL_BIN
 #define CHN __RPL_CHN  #define CHN __RPL_CHN
 #define CPL __RPL_CPL  #define CPL __RPL_CPL
   #define EXT __RPL_EXT
 #define FCH __RPL_FCH  #define FCH __RPL_FCH
 #define FCT __RPL_FCT  #define FCT __RPL_FCT
 #define INT __RPL_INT  #define INT __RPL_INT
Line 1067  pid_t debug_fork(); Line 1077  pid_t debug_fork();
   
 enum t_rplcas_commandes     { RPLCAS_INTEGRATION = 0, RPLCAS_LIMITE };  enum t_rplcas_commandes     { RPLCAS_INTEGRATION = 0, RPLCAS_LIMITE };
   
 enum t_type     { ADR = 0, ALG, BIN, CHN, CPL, FCH, FCT, INT, LST,  enum t_type     { ADR = 0, ALG, BIN, CHN, CPL, EXT, FCH, FCT, INT, LST,
                 MCX, MIN, MRL, MTX, NOM, NON, PRC, REC, REL, RPN, SCK,                  MCX, MIN, MRL, MTX, NOM, NON, PRC, REC, REL, RPN, SCK,
                 SLB, SPH, SQL, TBL, VCX, VIN, VRL };                  SLB, SPH, SQL, TBL, VCX, VIN, VRL };
   
Line 1091  enum t_type  { ADR = 0, ALG, BIN, CHN, C Line 1101  enum t_type  { ADR = 0, ALG, BIN, CHN, C
             Sans objet.              Sans objet.
             Type C/Fortran : complex16              Type C/Fortran : complex16
   
       EXT : type géré dans une bibliothèque externe.
   
     FCH : descripteur de fichier (struct_fichier *).      FCH : descripteur de fichier (struct_fichier *).
   
     FCT : déclaration d'une fonction et de son nombre d'arguments      FCT : déclaration d'une fonction et de son nombre d'arguments
Line 1156  enum t_type  { ADR = 0, ALG, BIN, CHN, C Line 1168  enum t_type  { ADR = 0, ALG, BIN, CHN, C
 typedef struct objet  typedef struct objet
 {  {
     enum t_type         type;      enum t_type         type;
       integer8            extension_type;
       void                *descripteur_bibliotheque;
   
     volatile long       nombre_occurrences;      volatile long       nombre_occurrences;
   
Line 1772  typedef struct instruction_externe Line 1786  typedef struct instruction_externe
     unsigned char       *nom;      unsigned char       *nom;
     unsigned char       *nom_bibliotheque;      unsigned char       *nom_bibliotheque;
     void                *descripteur_bibliotheque;      void                *descripteur_bibliotheque;
       integer8            position_fleche;
 } struct_instruction_externe;  } struct_instruction_externe;
   
   
Line 2477  typedef struct processus Line 2492  typedef struct processus
             variables_tableau_noeuds_partages)              variables_tableau_noeuds_partages)
   
     CACHE2(struct_buffer, enveloppes_buffers)      CACHE2(struct_buffer, enveloppes_buffers)
     unsigned char       ***cache_buffer;      unsigned char               ***cache_buffer;
     int                 *pointeur_cache_buffer;      int                         *pointeur_cache_buffer;
 } struct_processus;  } struct_processus;
 #endif  #endif
   
Line 2788  void instruction_mtxtrylock(struct_proce Line 2803  void instruction_mtxtrylock(struct_proce
 void instruction_mtxunlock(struct_processus *s_etat_processus);  void instruction_mtxunlock(struct_processus *s_etat_processus);
 void instruction_multiplication(struct_processus *s_etat_processus);  void instruction_multiplication(struct_processus *s_etat_processus);
   
   void instruction_nbrcpus(struct_processus *s_etat_prorcessus);
 void instruction_ne(struct_processus *s_etat_processus);  void instruction_ne(struct_processus *s_etat_processus);
 void instruction_neg(struct_processus *s_etat_processus);  void instruction_neg(struct_processus *s_etat_processus);
 void instruction_next(struct_processus *s_etat_processus);  void instruction_next(struct_processus *s_etat_processus);
Line 3440  logical1 retrait_variable_statique(struc Line 3456  logical1 retrait_variable_statique(struc
 logical1 retrait_variables_statiques_locales(  logical1 retrait_variables_statiques_locales(
         struct_processus *s_etat_processus);          struct_processus *s_etat_processus);
 logical1 sequenceur(struct_processus *s_etat_processus);  logical1 sequenceur(struct_processus *s_etat_processus);
 logical1 sequenceur_optimise(struct_processus *s_etat_processus);  logical1 sequenceur_optimise(struct_processus *s_etat_processus,
           struct_liste_chainee *l_bibliotheques);
 #endif  #endif
   
 /*  /*

Removed from v.1.303  
changed lines
  Added in v.1.317


CVSweb interface <joel.bertrand@systella.fr>