Diff for /rpl/src/rpl.h between versions 1.61 and 1.76

version 1.61, 2010/08/25 09:43:37 version 1.76, 2011/03/06 16:44:15
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.18    RPL/2 (R) version 4.0.21
   Copyright (C) 1989-2010 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 98 Line 98
 #       include <sys/shm.h>  #       include <sys/shm.h>
 #   endif  #   endif
   
 #   ifndef SEMAPHORES_SYSV  #   ifndef IPCS_SYSV
 #       include <semaphore.h>  #       include <semaphore.h>
 #   else  #   else
 #       include <sys/ipc.h>  #       include <sys/ipc.h>
Line 213 Line 213
 #   endif  #   endif
 #   define SA_SIGINFO   0  #   define SA_SIGINFO   0
   
 #   define kill(pid, signal)            kill_broken_siginfo(pid, signal)  #   ifndef __BROKEN_SIGINFO_ROUTINES__
 #   define pthread_kill(tid, signal)    pthread_kill_broken_siginfo(tid, signal)  
   // pthread_kill() est une macro sous OS/2.
   #       ifdef pthread_kill
   #           undef pthread_kill
   #       endif
   
   #       define kill(a, b)           kill_broken_siginfo(a, b)
   #       define pthread_kill(a, b)   pthread_kill_broken_siginfo(a, b)
   #   endif
   
     int kill_broken_siginfo(pid_t pid, int signal);      int kill_broken_siginfo(pid_t pid, int signal);
     int pthread_kill_broken_siginfo(pthread_t tid, int signal);      int pthread_kill_broken_siginfo(pthread_t tid, int signal);
       pid_t origine_signal(int signal);
       int queue_in(pid_t pid, int signal);
 #else  #else
 #   define SIGHANDLER_ARGS  int signal, siginfo_t *siginfo, void *context  #   define SIGHANDLER_ARGS  int signal, siginfo_t *siginfo, void *context
 #endif  #endif
Line 228 Line 239
 #   define PTHREAD_SCOPE_SYSTEM 0  #   define PTHREAD_SCOPE_SYSTEM 0
 #endif  #endif
   
 #if ! defined(UNION_SEMUN) && defined(SEMAPHORES_SYSV)  #ifdef OS2
   #   define readline(s) readline_wrapper(s)
       unsigned char *readline_wrapper(unsigned char *s);
   #endif
   
   #if ! defined(UNION_SEMUN) && defined(IPCS_SYSV)
 union semun  union semun
 {  {
     int                 val;      int                 val;
Line 245  union semun Line 261  union semun
 ================================================================================  ================================================================================
 */  */
   
 #ifdef SEMAPHORES_SYSV  #ifdef IPCS_SYSV
 #   define sem_init(a, b, c)    sem_init_SysV(a, b, c)  #   define sem_init(a, b, c)    sem_init_SysV(a, b, c)
 #   define sem_destroy(a)       sem_destroy_SysV(a)  #   define sem_destroy(a)       sem_destroy_SysV(a)
 #   define sem_wait(a)          sem_wait_SysV(a)  #   define sem_wait(a)          sem_wait_SysV(a)
Line 486  int sem_getvalue2(sem_t *semaphore, int Line 502  int sem_getvalue2(sem_t *semaphore, int
 #   define fopen(...) ({ FILE *desc; \  #   define fopen(...) ({ FILE *desc; \
             while((desc = fopen(__VA_ARGS__)) == NULL) \              while((desc = fopen(__VA_ARGS__)) == NULL) \
             { if ((errno != EINTR) && (errno != 0)) break; } desc; })              { if ((errno != EINTR) && (errno != 0)) break; } desc; })
   #   define freopen(...) ({ FILE *desc; \
               while((desc = freopen(__VA_ARGS__)) == NULL) \
               { if ((errno != EINTR) && (errno != 0)) break; } desc; })
 #   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; })
Line 926  pid_t debug_fork(); Line 945  pid_t debug_fork();
 #   undef MAX  #   undef MAX
 #endif  #endif
   
 #define ADR __RPL_ADR  #define ADR __RPL_ADR
 #define ALG __RPL_ALG  #define ALG __RPL_ALG
 #define BIN __RPL_BIN  #define BIN __RPL_BIN
 #define CHN __RPL_CHN  #define CHN __RPL_CHN
 #define CPL __RPL_CPL  #define CPL __RPL_CPL
Line 946  pid_t debug_fork(); Line 965  pid_t debug_fork();
 #define RPN __RPL_RPN  #define RPN __RPL_RPN
 #define SCK __RPL_SCK  #define SCK __RPL_SCK
 #define SLB __RPL_SLB  #define SLB __RPL_SLB
 #define SPH __RPL_SPH  #define SPH __RPL_SPH
 #define SQL __RPL_SQL  #define SQL __RPL_SQL
 #define TBL __RPL_TBL  #define TBL __RPL_TBL
 #define VCX __RPL_VCX  #define VCX __RPL_VCX
 #define VIN __RPL_VIN  #define VIN __RPL_VIN
 #define VRL __RPL_VRL  #define VRL __RPL_VRL
Line 1340  typedef struct descripteur_thread Line 1359  typedef struct descripteur_thread
     pthread_t                   thread_pere;      pthread_t                   thread_pere;
   
     pthread_mutex_t             mutex;      pthread_mutex_t             mutex;
       pthread_mutex_t             mutex_nombre_references;
   
     volatile logical1           thread_actif;      volatile logical1           thread_actif;
   
Line 1687  typedef struct processus Line 1707  typedef struct processus
     unsigned char               mode_interactif;                    /*Y/N*/      unsigned char               mode_interactif;                    /*Y/N*/
     unsigned char               mode_evaluation_expression;         /*Y/N*/      unsigned char               mode_evaluation_expression;         /*Y/N*/
     unsigned char               traitement_cycle_exit;              /*N/E/C*/      unsigned char               traitement_cycle_exit;              /*N/E/C*/
       unsigned char               recherche_type;                     /*Y/N*/
   
     unsigned long               position_courante;      unsigned long               position_courante;
     unsigned long               longueur_definitions_chainees;      unsigned long               longueur_definitions_chainees;
Line 1740  typedef struct processus Line 1761  typedef struct processus
   
 #   if !defined(Cygwin)  #   if !defined(Cygwin)
 #       if !(OpenBSD)  #       if !(OpenBSD)
     stack_t                     pile_signal;              stack_t             pile_signal;
 #       else  #       else
 #           ifdef SA_ONSTACK  #           ifdef SA_ONSTACK
 #               undef SA_ONSTACK  #               undef SA_ONSTACK
Line 1748  typedef struct processus Line 1769  typedef struct processus
 #           define SA_ONSTACK   0  #           define SA_ONSTACK   0
 #       endif  #       endif
 #   else  #   else
 #   define SA_ONSTACK           0  #       define SA_ONSTACK       0
 #   define RTLD_LOCAL           0  #       define RTLD_LOCAL       0
 #   endif  #   endif
   
 /* Contextes                                            */  /* Contextes                                            */
Line 2023  typedef struct processus Line 2044  typedef struct processus
     volatile sig_atomic_t       var_volatile_traitement_retarde_stop;      volatile sig_atomic_t       var_volatile_traitement_retarde_stop;
     volatile sig_atomic_t       var_volatile_traitement_sigint;      volatile sig_atomic_t       var_volatile_traitement_sigint;
   
       volatile sig_atomic_t       var_volatile_processus_racine;
     volatile sig_atomic_t       var_volatile_processus_pere;      volatile sig_atomic_t       var_volatile_processus_pere;
     volatile sig_atomic_t       var_volatile_recursivite;      volatile sig_atomic_t       var_volatile_recursivite;
   
Line 2422  void instruction_lq(struct_processus *s_ Line 2444  void instruction_lq(struct_processus *s_
 void instruction_lsq(struct_processus *s_etat_processus);  void instruction_lsq(struct_processus *s_etat_processus);
 void instruction_lt(struct_processus *s_etat_processus);  void instruction_lt(struct_processus *s_etat_processus);
 void instruction_lu(struct_processus *s_etat_processus);  void instruction_lu(struct_processus *s_etat_processus);
   void instruction_l_vers_t(struct_processus *s_etat_processus);
   
 void instruction_mant(struct_processus *s_etat_processus);  void instruction_mant(struct_processus *s_etat_processus);
 void instruction_mark(struct_processus *s_etat_processus);  void instruction_mark(struct_processus *s_etat_processus);
Line 2657  void instruction_trn(struct_processus *s Line 2680  void instruction_trn(struct_processus *s
 void instruction_trnc(struct_processus *s_etat_processus);  void instruction_trnc(struct_processus *s_etat_processus);
 void instruction_true(struct_processus *s_etat_processus);  void instruction_true(struct_processus *s_etat_processus);
 void instruction_type(struct_processus *s_etat_processus);  void instruction_type(struct_processus *s_etat_processus);
   void instruction_t_vers_l(struct_processus *s_etat_processus);
   
 void instruction_ucase(struct_processus *s_etat_processus);  void instruction_ucase(struct_processus *s_etat_processus);
 void instruction_uchol(struct_processus *s_etat_processus);  void instruction_uchol(struct_processus *s_etat_processus);

Removed from v.1.61  
changed lines
  Added in v.1.76


CVSweb interface <joel.bertrand@systella.fr>