version 1.59, 2010/08/18 12:56:55
|
version 1.60, 2010/08/22 16:38:36
|
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> |
|
# include <sys/sem.h> |
|
typedef struct |
typedef struct |
{ |
{ |
int sem; |
int sem; |
Line 197
|
Line 198
|
# define UNIX_PATH_MAX sizeof(sizecheck.sun_path) |
# define UNIX_PATH_MAX sizeof(sizecheck.sun_path) |
#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 204
|
Line 211
|
# endif |
# endif |
# define SA_SIGINFO 0 |
# define SA_SIGINFO 0 |
|
|
# define kill(pid, signal) rpl_kill(pid, signal) |
# define kill(pid, signal) kill_broken_siginfo(pid, signal) |
# define pthread_kill(tid, signal) rpl_pthread_kill(tid, signal) |
# define pthread_kill(tid, signal) pthread_kill_broken_siginfo(tid, signal) |
int rpl_kill(pid_t pid, int signal); |
int kill_broken_siginfo(pid_t pid, int signal); |
int rpl_pthread_kill(pthread_t tid, int signal); |
int pthread_kill_broken_siginfo(pthread_t tid, 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) \ |
#if ! defined(UNION_SEMUN) && defined(SEMAPHORES_SYSV) |
key |= ((((key_t) s.st_dev) & 0xFF) << 8) | \ |
union semun |
((((key_t) s.st_ino) & 0xFFFF) << 16); \ |
{ |
key; \ |
int val; |
}) |
struct semid_ds *buf; |
|
unsigned short *array; |
|
struct seminfo *__buf; |
|
}; |
|
#endif |
|
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 725 pid_t debug_fork();
|
Line 737 pid_t debug_fork();
|
# define __erreur_(i) i |
# define __erreur_(i) i |
# endif |
# 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 |
Line 751 pid_t debug_fork();
|
Line 764 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 |
|
|
/* |
/* |