version 1.125, 2011/09/18 12:42:50
|
version 1.126, 2011/09/19 17:33:17
|
Line 101
|
Line 101
|
# include <pwd.h> |
# include <pwd.h> |
# include <sys/shm.h> |
# include <sys/shm.h> |
|
|
# ifndef IPCS_SYSV |
# ifndef __RPLCAS |
# include <semaphore.h> |
# ifndef IPCS_SYSV |
# else |
# include <semaphore.h> |
# include <sys/ipc.h> |
|
# include <sys/sem.h> |
|
|
|
# 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 |
# else |
typedef struct |
# include <sys/ipc.h> |
{ |
# include <sys/sem.h> |
int sem; |
|
unsigned char *path; |
|
pid_t pid; |
|
} sem_t; |
|
# endif |
|
|
|
# define SEM_FAILED NULL |
|
|
|
sem_t *sem_open_SysV(const char *nom, int oflag, ...); |
# ifdef OS2 |
int sem_init_SysV(sem_t *sem, int shared, unsigned int value); |
# define INCL_DOSSEMAPHORES |
int sem_close_SysV(sem_t *sem); |
# define INCL_DOSMEMMGR |
int sem_wait_SysV(sem_t *sem); |
# define INCL_DOSERRORS |
int sem_trywait_SysV(sem_t *sem); |
# include <os2.h> |
int sem_post_SysV(sem_t *sem); |
|
int sem_getvalue_SysV(sem_t *sem, int *value); |
typedef struct _OS2SEM |
int sem_unlink_SysV(const char *nom); |
{ |
int sem_destroy_SysV(sem_t *sem); |
HMTX hmtx; |
|
HEV hev; |
|
ULONG shared; |
|
ULONG *cnt; |
|
ULONG *nopened; |
|
ULONG allocated; |
|
} sem_t; |
|
# else // IPCS_SYSV |
|
typedef struct |
|
{ |
|
int sem; |
|
int alloue; |
|
unsigned char *path; |
|
pid_t pid; |
|
} sem_t; |
|
# endif |
|
|
|
# ifndef SEM_FAILED |
|
# define SEM_FAILED NULL |
|
# 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 |
# endif |
# endif |
|
|
# include <setjmp.h> |
# include <setjmp.h> |
Line 239 enum signaux_rpl
|
Line 244 enum signaux_rpl
|
|
|
typedef struct queue_signaux |
typedef struct queue_signaux |
{ |
{ |
# ifndef SEMAPHORES_NOMMES |
# ifndef IPCS_SYSV |
sem_t semaphore; |
# ifndef SEMAPHORES_NOMMES |
|
sem_t semaphore; |
|
# endif |
|
# else |
|
sem_t semaphore; |
# endif |
# endif |
|
|
volatile int pointeur_lecture; |
volatile int pointeur_lecture; |