Diff for /rpl/src/rplexternals.h between versions 1.3 and 1.40

version 1.3, 2010/02/10 10:14:26 version 1.40, 2012/12/18 13:19:39
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.11    RPL/2 (R) version 4.1.12
   Copyright (C) 1989-2010 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 39 Line 39
 ================================================================================  ================================================================================
 */  */
   
 #define allocation(a) allocation((*rpl_arguments).s_etat_processus, a)  #define allocation(a) librpl_allocation((*rpl_arguments).s_etat_processus, a)
 #define copie_objet(a, b) copie_objet((*rpl_arguments).s_etat_processus, a, b)  #define copie_objet(a, b) librpl_copie_objet( \
 #define liberation(a) liberation((*rpl_arguments).s_etat_processus, a)              (*rpl_arguments).s_etat_processus, a, b)
   #define liberation(a) librpl_liberation((*rpl_arguments).s_etat_processus, a)
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
Line 123 Line 124
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
   #define DISABLE_SET_BUT_NOT_USED_WARNING(a) if (&a != ((&a) + 1));
   
 #define HEADER \  #define HEADER \
     int             __constante; \      int             __constante; \
     logical1        __evaluation; \      logical1        __evaluation; \
Line 138 Line 141
         (*rpl_arguments).instruction_valide = 'Y'; \          (*rpl_arguments).instruction_valide = 'Y'; \
         (*rpl_arguments).erreur = 0; \          (*rpl_arguments).erreur = 0; \
         __constante = 0; \          __constante = 0; \
         __evaluation = d_faux;          __evaluation = d_faux; \
           DISABLE_SET_BUT_NOT_USED_WARNING(__evaluation); \
           DISABLE_SET_BUT_NOT_USED_WARNING(__type); \
           DISABLE_SET_BUT_NOT_USED_WARNING(__indice_bit); \
           DISABLE_SET_BUT_NOT_USED_WARNING(__indice_bloc); \
           DISABLE_SET_BUT_NOT_USED_WARNING(__taille_bloc); \
           DISABLE_SET_BUT_NOT_USED_WARNING(__masque);
   
 #define FUNCTION \  #define FUNCTION \
     if (__validation_instruction == d_vrai) return; \      if (__validation_instruction == d_vrai) return; \
Line 193 Line 202
 #define logger(...) do { syslog(LOG_NOTICE, __VA_ARGS__); } while(0)   #define logger(...) do { syslog(LOG_NOTICE, __VA_ARGS__); } while(0) 
   
 #define exportExternalFunctions(...) \  #define exportExternalFunctions(...) \
     char **__external_symbols(unsigned long *nb_symbols) { \      char **__external_symbols(unsigned long *nb_symbols, \
               const char *version) { \
         char arguments[] = #__VA_ARGS__; \          char arguments[] = #__VA_ARGS__; \
         char **tableau; \          char **tableau; \
         char *ptr1, *ptr2; \          char *ptr1, *ptr2; \
         int drapeau; \          int drapeau; \
         unsigned long i; \          unsigned long i; \
           if (strcmp(version, _d_version_rpl) != 0) \
           { \
               notice(stdout, "Versions mismatch : library %s, expected %s\n", \
                       _d_version_rpl, version); \
               (*nb_symbols) = -1; return(NULL); \
           } \
         (*nb_symbols) = 0; ptr1 = arguments; drapeau = 0; \          (*nb_symbols) = 0; ptr1 = arguments; drapeau = 0; \
         while((*ptr1) != 0) \          while((*ptr1) != 0) \
         { \          { \
Line 1029 Line 1045
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
     Récupération des interruptions et des signaux
   --------------------------------------------------------------------------------
   */
   
   #define pollSignalsAndInterrupts() \
       { scrutation_injection((*rpl_arguments).s_etat_processus); } while(0)
   
   /*
   --------------------------------------------------------------------------------
   Exécution d'une fonction intrinsèque    Exécution d'une fonction intrinsèque
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
 #define intrinsic(function) { \  #define intrinsic(function) { \
     int __status; \      int __status; \
     __status = wrapper_instruction_intrinseque(instruction_##function, \      __status = wrapper_instruction_intrinseque( \
             rpl_arguments); \              instruction_##function, rpl_arguments); \
     if (__status == 1) executionError(#function); \      if (__status == 1) executionError(#function); \
     if (__status == 2) systemError(#function); \      if (__status == 2) systemError(#function); \
     } while(0)      } while(0)

Removed from v.1.3  
changed lines
  Added in v.1.40


CVSweb interface <joel.bertrand@systella.fr>