version 1.49, 2010/07/14 14:19:40
|
version 1.54, 2010/08/12 14:22:37
|
Line 31
|
Line 31
|
# define _DARWIN_C_SOURCE |
# define _DARWIN_C_SOURCE |
#endif |
#endif |
|
|
|
#ifdef OS2 |
|
# define _BSD_SOURCE |
|
# define _XOPEN_SOURCE 600 |
|
|
|
# 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) |
|
#endif |
|
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 66
|
Line 81
|
# 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 |
|
# include <sys/sem.h> |
|
# define SEM_FAILED NULL |
|
typedef int sem_t; |
|
|
|
# ifndef SEM_A |
|
# define SEM_A 0200 |
|
# endif |
|
# ifndef SEM_R |
|
# define SEM_R 0400 |
|
# endif |
|
|
|
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 166
|
|
|
#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 193
|
*/ |
*/ |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
# ifdef Darwin |
# if defined(Darwin) |
# define SIGPOLL SIGINFO |
# define SIGPOLL SIGINFO |
# endif |
# endif |
|
|
Line 190 typedef FILE file;
|
Line 256 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 428 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 1530 typedef struct processus
|
Line 1596 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 |
Line 1793 typedef struct processus
|
Line 1859 typedef struct processus
|
|
|
unsigned char traitement_interruption; /* Y/N */ |
unsigned char traitement_interruption; /* Y/N */ |
unsigned char traitement_interruptible; /* Y/N */ |
unsigned char traitement_interruptible; /* Y/N */ |
|
unsigned char traitement_at_poke; /* Y/N */ |
|
|
struct_objet *at_exit; |
struct_objet *at_exit; |
|
struct_objet *at_poke; |
|
|
/* Variables volatiles */ |
/* Variables volatiles */ |
|
|
Line 1991 void instruction_asr(struct_processus *s
|
Line 2059 void instruction_asr(struct_processus *s
|
void instruction_atan(struct_processus *s_etat_processus); |
void instruction_atan(struct_processus *s_etat_processus); |
void instruction_atanh(struct_processus *s_etat_processus); |
void instruction_atanh(struct_processus *s_etat_processus); |
void instruction_atexit(struct_processus *s_etat_processus); |
void instruction_atexit(struct_processus *s_etat_processus); |
|
void instruction_atpoke(struct_processus *s_etat_processus); |
void instruction_autoscale(struct_processus *s_etat_processus); |
void instruction_autoscale(struct_processus *s_etat_processus); |
void instruction_axes(struct_processus *s_etat_processus); |
void instruction_axes(struct_processus *s_etat_processus); |
|
|
Line 2012 void instruction_cllcd(struct_processus
|
Line 2081 void instruction_cllcd(struct_processus
|
void instruction_clmf(struct_processus *s_etat_processus); |
void instruction_clmf(struct_processus *s_etat_processus); |
void instruction_close(struct_processus *s_etat_processus); |
void instruction_close(struct_processus *s_etat_processus); |
void instruction_clratexit(struct_processus *s_etat_processus); |
void instruction_clratexit(struct_processus *s_etat_processus); |
|
void instruction_clratpoke(struct_processus *s_etat_processus); |
void instruction_clrcntxt(struct_processus *s_etat_processus); |
void instruction_clrcntxt(struct_processus *s_etat_processus); |
void instruction_clrerr(struct_processus *s_etat_processus); |
void instruction_clrerr(struct_processus *s_etat_processus); |
void instruction_clrfuse(struct_processus *s_etat_processus); |
void instruction_clrfuse(struct_processus *s_etat_processus); |