version 1.50, 2010/07/31 10:34:18
|
version 1.55, 2010/08/13 21:00:37
|
Line 31
|
Line 31
|
# define _DARWIN_C_SOURCE |
# define _DARWIN_C_SOURCE |
#endif |
#endif |
|
|
|
#ifdef OS2 |
|
# define _BSD_SOURCE |
|
# define _XOPEN_SOURCE 600 |
|
# define _BROKEN_SIGINFO |
|
|
|
# include <types.h> |
|
enum { SHUT_RD = 0, SHUT_WR, SHUT_RDWR }; |
|
# define SHUT_RD SHUT_RD |
|
# define SHUT_WR SHUT_WR |
|
# define SHUT_RDWR SHUT_RDWR |
|
|
|
# include "getaddrinfo-conv.h" |
|
|
|
# define sched_yield(arg) |
|
#else |
|
# undef _BROKEN_SIGINFO |
|
#endif |
|
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 66
|
Line 84
|
# include <dlfcn.h> |
# include <dlfcn.h> |
# include <fcntl.h> |
# include <fcntl.h> |
# include <pthread.h> |
# include <pthread.h> |
|
|
|
# ifdef OS2 |
|
# undef pthread_mutexattr_settype |
|
# define pthread_mutexattr_settype(a, b) |
|
# endif |
|
|
# include <pwd.h> |
# include <pwd.h> |
# include <semaphore.h> |
|
|
# ifndef SEMAPHORES_SYSV |
|
# include <semaphore.h> |
|
# else |
|
# ifdef OS2 |
|
# define INCL_DOSSEMAPHORES |
|
# define INCL_DOSMEMMGR |
|
# define INCL_DOSERRORS |
|
# include <os2.h> |
|
|
|
typedef struct _OS2SEM |
|
{ |
|
HMTX hmtx; |
|
HEV hev; |
|
ULONG shared; |
|
ULONG *cnt; |
|
ULONG *nopened; |
|
ULONG allocated; |
|
} sem_t; |
|
# else |
|
typedef int sem_t; |
|
# endif |
|
|
|
# define SEM_FAILED NULL |
|
|
|
sem_t *sem_open_SysV(const char *nom, int oflag, ...); |
|
int sem_init_SysV(sem_t *sem, int shared, unsigned int value); |
|
int sem_close_SysV(sem_t *sem); |
|
int sem_wait_SysV(sem_t *sem); |
|
int sem_trywait_SysV(sem_t *sem); |
|
int sem_post_SysV(sem_t *sem); |
|
int sem_getvalue_SysV(sem_t *sem, int *value); |
|
int sem_unlink_SysV(const char *nom); |
|
int sem_destroy_SysV(sem_t *sem); |
|
# endif |
|
|
# include <setjmp.h> |
# include <setjmp.h> |
# include <signal.h> |
# include <signal.h> |
# include <termios.h> |
# include <termios.h> |
Line 120
|
Line 179
|
|
|
#include "librplprototypes.h" |
#include "librplprototypes.h" |
|
|
|
|
|
/* |
|
================================================================================ |
|
SÉMAPHORES |
|
================================================================================ |
|
*/ |
|
|
|
#ifdef SEMAPHORES_SYSV |
|
# define sem_init(a, b, c) sem_init_SysV(a, b, c) |
|
# define sem_destroy(a) sem_destroy_SysV(a) |
|
# define sem_wait(a) sem_wait_SysV(a) |
|
# define sem_trywait(a) sem_trywait_SysV(a) |
|
# define sem_post(a) sem_post_SysV(a) |
|
# define sem_getvalue(a, b) sem_getvalue_SysV(a, b) |
|
# define sem_open(...) sem_open_SysV(__VA_ARGS__) |
|
# define sem_close(a) sem_close_SysV(a) |
|
# define sem_unlink(a) sem_unlink_SysV(a) |
|
#endif |
|
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
SIGNAUX |
SIGNAUX |
Line 127
|
Line 206
|
*/ |
*/ |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
# ifdef Darwin |
# if defined(Darwin) |
# define SIGPOLL SIGINFO |
# define SIGPOLL SIGINFO |
# endif |
# endif |
|
|
Line 190 typedef FILE file;
|
Line 269 typedef FILE file;
|
typedef unsigned char t_8_bits; |
typedef unsigned char t_8_bits; |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
# include "rpltypes.conv.h" |
# include "rpltypes-conv.h" |
#else |
#else |
# include "rpltypes.h" |
# include "rpltypes.h" |
#endif |
#endif |
Line 362 int sem_getvalue2(sem_t *semaphore, int
|
Line 441 int sem_getvalue2(sem_t *semaphore, int
|
|
|
// Redéfinition de abs pour un fonctionnement en entier de type long long 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; }) |
# 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 |
// 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 |
// comme Sun Studio. Dans le cas où typeof() n'existe pas, il est possible |
Line 746 pid_t debug_fork();
|
Line 825 pid_t debug_fork();
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
|
#ifdef MIN |
|
# undef MIN |
|
#endif |
|
|
|
#ifdef MAX |
|
# undef MAX |
|
#endif |
|
|
|
#define ADR __RPL_ADR |
|
#define ALG __RPL_ALG |
|
#define BIN __RPL_BIN |
|
#define CHN __RPL_CHN |
|
#define CPL __RPL_CPL |
|
#define FCH __RPL_FCH |
|
#define FCT __RPL_FCT |
|
#define INT __RPL_INT |
|
#define LST __RPL_LST |
|
#define MCX __RPL_MCX |
|
#define MIN __RPL_MIN |
|
#define MRL __RPL_MRL |
|
#define MTX __RPL_MTX |
|
#define NOM __RPL_NOM |
|
#define NON __RPL_NON |
|
#define PRC __RPL_PRC |
|
#define REL __RPL_REL |
|
#define RPN __RPL_RPN |
|
#define SCK __RPL_SCK |
|
#define SLB __RPL_SLB |
|
#define SPH __RPL_SPH |
|
#define SQL __RPL_SQL |
|
#define TBL __RPL_TBL |
|
#define VCX __RPL_VCX |
|
#define VIN __RPL_VIN |
|
#define VRL __RPL_VRL |
|
|
|
|
enum t_type { ADR = 0, ALG, BIN, CHN, CPL, FCH, FCT, INT, LST, |
enum t_type { ADR = 0, ALG, BIN, CHN, CPL, FCH, FCT, INT, LST, |
MCX, MIN, MRL, MTX, NOM, NON, PRC, REL, RPN, SCK, |
MCX, MIN, MRL, MTX, NOM, NON, PRC, REL, RPN, SCK, |
SLB, SPH, SQL, TBL, VCX, VIN, VRL }; |
SLB, SPH, SQL, TBL, VCX, VIN, VRL }; |
Line 1530 typedef struct processus
|
Line 1645 typedef struct processus
|
pthread_t thread_fusible; |
pthread_t thread_fusible; |
pthread_t thread_surveille_par_fusible; |
pthread_t thread_surveille_par_fusible; |
|
|
# ifndef Cygwin |
# if !defined(Cygwin) |
stack_t pile_signal; |
stack_t pile_signal; |
# else |
# else |
# define SA_ONSTACK 0 |
# define SA_ONSTACK 0 |