Diff for /rpl/src/rpl.h between versions 1.58 and 1.66

version 1.58, 2010/08/17 14:15:20 version 1.66, 2010/08/31 09:51:30
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.18    RPL/2 (R) version 4.0.19
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 101 Line 101
 #   ifndef SEMAPHORES_SYSV  #   ifndef SEMAPHORES_SYSV
 #       include <semaphore.h>  #       include <semaphore.h>
 #   else  #   else
   #       include <sys/ipc.h>
   #       include <sys/sem.h>
   
 #       ifdef OS2  #       ifdef OS2
 #           define INCL_DOSSEMAPHORES  #           define INCL_DOSSEMAPHORES
 #           define INCL_DOSMEMMGR  #           define INCL_DOSMEMMGR
Line 117 Line 120
                 ULONG   allocated;                  ULONG   allocated;
             } sem_t;              } sem_t;
 #       else  #       else
 #           include <sys/ipc.h>              typedef struct
 #           include <sys/sem.h>              {
             typedef int sem_t;                  int             sem;
                   unsigned char   *path;
                   pid_t           pid;
               } sem_t;
 #       endif  #       endif
   
 #       define SEM_FAILED   NULL  #       define SEM_FAILED   NULL
Line 187 Line 193
   
 #include "librplprototypes.h"  #include "librplprototypes.h"
   
 #ifndef UNIX_PATH_MAX  #ifndef RPLARGS
     struct sockaddr_un sizecheck;  #   ifndef UNIX_PATH_MAX
 #   define UNIX_PATH_MAX sizeof(sizecheck.sun_path)          struct sockaddr_un sizecheck;
   #       define UNIX_PATH_MAX sizeof(sizecheck.sun_path)
   #   endif
 #endif  #endif
   
   /*
   ================================================================================
     Bugs spécifiques
   ================================================================================
   */
   
 #ifdef _BROKEN_SIGINFO  #ifdef _BROKEN_SIGINFO
 #   define SIGHANDLER_ARGS  int signal  #   define SIGHANDLER_ARGS  int signal
 #   ifdef SA_SIGINFO  #   ifdef SA_SIGINFO
Line 199 Line 213
 #   endif  #   endif
 #   define SA_SIGINFO   0  #   define SA_SIGINFO   0
   
 #   define kill(pid, signal)            rpl_kill(pid, signal)  #   ifndef __BROKEN_SIGINFO_ROUTINES__
 #   define pthread_kill(tid, signal)    rpl_pthread_kill(tid, signal)  
     int rpl_kill(pid_t pid, int signal);  // pthread_kill() est une macro sous OS/2.
     int rpl_pthread_kill(pthread_t tid, int signal);  #       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 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
   
 #define ftok(path, proj) \  #ifdef OpenBSD
     ({ \  #   ifdef PTHREAD_SCOPE_SYSTEM
         key_t           key; \  #       undef PTHREAD_SCOPE_SYSTEM
         struct stat     s; \  #   endif
         while(stat(path, &s) != 0); \  #   define PTHREAD_SCOPE_SYSTEM 0
         errno = 0; \  #endif
         key = ftok(path, proj); \  
         if (key != -1) \  #ifdef OS2
             key |= ((((key_t) s.st_dev) & 0xFF) << 8) | \  #   define readline(s) readline_wrapper(s)
                     ((((key_t) s.st_ino) & 0xFFFF) << 16); \      unsigned char readline_wrapper(unsigned char *s);
         key; \  #endif
     })  
   #if ! defined(UNION_SEMUN) && defined(SEMAPHORES_SYSV)
   union semun
   {
       int                 val;
       struct semid_ds     *buf;
       unsigned short      *array;
       struct seminfo      *__buf;
   };
   #endif
   
   
 /*  /*
 ================================================================================  ================================================================================
Line 711  pid_t debug_fork(); Line 746  pid_t debug_fork();
 #ifdef DEBUG_ERREURS  #ifdef DEBUG_ERREURS
 #   ifdef MESSAGES  #   ifdef MESSAGES
 #       define __erreur(i)  i  #       define __erreur(i)  i
   #       define __erreur_(i) i
 #   else  #   else
   #       undef _ERREURS_VARIABLES
   #       ifdef _ERREURS_VARIABLES
   #           define __erreur_(i) __erreur(i)
   #       else
   #           define __erreur_(i) i
   #       endif
 #       define __erreur(i)  ({ if (strstr(__FUNCTION__, "recherche_variable") \  #       define __erreur(i)  ({ if (strstr(__FUNCTION__, "recherche_variable") \
                 == NULL) ufprintf(stderr, "ERROR %d AT %s() LINE %d\n", \                  == NULL) ufprintf(stderr, \
                 i, __FUNCTION__, __LINE__); i; })                  "ERROR %d AT %s() FROM %s LINE %d\n", \
                   i, __FUNCTION__, __FILE__, __LINE__); i; })
 #   endif  #   endif
 #else  #else
 #   define __erreur(i)  i  #   define __erreur(i)  i
   #   define __erreur_(i) i
 #endif  #endif
   
   
Line 725  pid_t debug_fork(); Line 769  pid_t debug_fork();
 #ifndef RPLARGS  #ifndef RPLARGS
 #   define d_es                                 2000  #   define d_es                                 2000
 #   define d_es_allocation_memoire              __erreur(2001)  #   define d_es_allocation_memoire              __erreur(2001)
 #   define d_es_variable_introuvable            __erreur(2002)  #   define d_es_variable_introuvable            __erreur_(2002)
 #   define d_es_pile_vide                       __erreur(2003)  #   define d_es_pile_vide                       __erreur(2003)
 #   define d_es_end_incoherent                  __erreur(2004)  #   define d_es_end_incoherent                  __erreur(2004)
 #   define d_es_peripherique_stdin              __erreur(2005)  #   define d_es_peripherique_stdin              __erreur(2005)
Line 738  pid_t debug_fork(); Line 782  pid_t debug_fork();
 #   define d_es_interruption_invalide           __erreur(2012)  #   define d_es_interruption_invalide           __erreur(2012)
 #   define d_es_contexte                        __erreur(2013)  #   define d_es_contexte                        __erreur(2013)
 #   define d_es_somme_controle                  __erreur(2014)  #   define d_es_somme_controle                  __erreur(2014)
   #   define d_es_semaphore                       __erreur(2015)
 #endif  #endif
   
 /*  /*
Line 803  pid_t debug_fork(); Line 848  pid_t debug_fork();
 #   define d_ex_absence_graphique_courant       __erreur(9)  #   define d_ex_absence_graphique_courant       __erreur(9)
 #   define d_ex_erreur_traitement_condition     __erreur(10)  #   define d_ex_erreur_traitement_condition     __erreur(10)
 #   define d_ex_erreur_traitement_boucle        __erreur(11)  #   define d_ex_erreur_traitement_boucle        __erreur(11)
 #   define d_ex_variable_non_definie            __erreur(12)  #   define d_ex_variable_non_definie            __erreur_(12)
 #   define d_ex_drapeau_inexistant              __erreur(13)  #   define d_ex_drapeau_inexistant              __erreur(13)
 #   define d_ex_nom_invalide                    __erreur(14)  #   define d_ex_nom_invalide                    __erreur(14)
 #   define d_ex_element_inexistant              __erreur(15)  #   define d_ex_element_inexistant              __erreur(15)
Line 1711  typedef struct processus Line 1756  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 1719  typedef struct processus Line 1764  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 1994  typedef struct processus Line 2039  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;
   

Removed from v.1.58  
changed lines
  Added in v.1.66


CVSweb interface <joel.bertrand@systella.fr>