--- rpl/src/rpl.h 2010/07/31 10:34:18 1.50 +++ rpl/src/rpl.h 2010/08/06 15:26:51 1.51 @@ -31,6 +31,23 @@ # define _DARWIN_C_SOURCE #endif +#ifdef OS2 +# define _BSD_SOURCE +# define _XOPEN_SOURCE 600 + +# include + enum { SHUT_RD = 0, SHUT_WR, SHUT_RDWR }; +# define SHUT_RD SHUT_RD +# define SHUT_WR SHUT_WR +# define SHUT_RDWR SHUT_RDWR +# define SEM_FAILED NULL +# undef IPV6 + +# include "getaddrinfo-conv.h" +#else +# define IPV6 +#endif + /* ================================================================================ @@ -66,8 +83,31 @@ # include # include # include + +# ifdef OS2 +# undef pthread_mutexattr_settype +# define pthread_mutexattr_settype(a, b) +# endif + # include -# include + +# ifndef OS2 +# include +# else +# include + typedef int sem_t; + + sem_t *sem_open(const char *nom, int oflag, ...); + int sem_init(sem_t *sem, int shared, unsigned int value); + int sem_close(sem_t *sem); + int sem_wait(sem_t *sem); + int sem_trywait(sem_t *sem); + int sem_post(sem_t *sem); + int sem_getvalue(sem_t *sem, int *value); + int sem_unlink(const char *nom); + int sem_destroy(sem_t *sem); +# endif + # include # include # include @@ -127,7 +167,7 @@ */ #ifndef RPLARGS -# ifdef Darwin +# if defined(Darwin) # define SIGPOLL SIGINFO # endif @@ -190,7 +230,7 @@ typedef FILE file; typedef unsigned char t_8_bits; #ifndef RPLARGS -# include "rpltypes.conv.h" +# include "rpltypes-conv.h" #else # include "rpltypes.h" #endif @@ -362,7 +402,7 @@ int sem_getvalue2(sem_t *semaphore, int // Redéfinition de abs pour un fonctionnement en entier de type long long int -#if 1 +#ifdef __GNUC__ # define abs(i) ({ typeof(i) _i; _i = (i); (_i >= 0) ? _i : -_i; }) // typeof() est une extension de gcc, mais est présent sur d'autres compilateurs // comme Sun Studio. Dans le cas où typeof() n'existe pas, il est possible @@ -1530,7 +1570,7 @@ typedef struct processus pthread_t thread_fusible; pthread_t thread_surveille_par_fusible; -# ifndef Cygwin +# if !defined(Cygwin) stack_t pile_signal; # else # define SA_ONSTACK 0