version 1.125, 2011/09/18 12:42:50
|
version 1.131, 2011/09/20 15:45:53
|
Line 122
|
Line 122
|
ULONG *nopened; |
ULONG *nopened; |
ULONG allocated; |
ULONG allocated; |
} sem_t; |
} sem_t; |
# else |
# else // IPCS_SYSV |
typedef struct |
typedef struct |
{ |
{ |
int sem; |
int sem; |
|
int alloue; |
unsigned char *path; |
unsigned char *path; |
pid_t pid; |
pid_t pid; |
|
pthread_t tid; |
} sem_t; |
} sem_t; |
# endif |
# endif |
|
|
# define SEM_FAILED NULL |
# ifndef SEM_FAILED |
|
# define SEM_FAILED NULL |
|
# endif |
|
|
sem_t *sem_open_SysV(const char *nom, int oflag, ...); |
sem_t *sem_open_SysV(const char *nom, int oflag, ...); |
int sem_init_SysV(sem_t *sem, int shared, unsigned int value); |
int sem_init_SysV(sem_t *sem, int shared, unsigned int value); |
Line 239 enum signaux_rpl
|
Line 243 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; |
Line 445 typedef unsigned char t_8_bits;
|
Line 453 typedef unsigned char t_8_bits;
|
#endif |
#endif |
|
|
#ifdef SEMAPHORES_NOMMES |
#ifdef SEMAPHORES_NOMMES |
sem_t *sem_init2(unsigned int valeur, pid_t pid); |
#define SEM_FORK 0 |
int sem_destroy2(sem_t *semaphore_p, pid_t pid); |
#define SEM_QUEUE 1 |
|
#define SEM_SIGNAUX 2 |
|
sem_t *sem_init2(unsigned int valeur, pid_t pid, int ordre); |
|
sem_t *sem_init3(unsigned int valeur, pid_t pid, pthread_t tid, int ordre); |
|
int sem_destroy2(sem_t *semaphore_p, pid_t pid, int ordre); |
|
int sem_destroy3(sem_t *semaphore_p, pid_t pid, pthread_t tid, int ordre); |
int sem_getvalue2(sem_t *semaphore, int *valeur); |
int sem_getvalue2(sem_t *semaphore, int *valeur); |
sem_t *sem_open2(pid_t pid); |
sem_t *sem_open2(pid_t pid, int ordre); |
|
|
// Le mutex est là uniquement pour pouvoir émuler le comportement |
// Le mutex est là uniquement pour pouvoir émuler le comportement |
// de sem_getvalue() sur un système comme MacOS X qui ne possède pas |
// de sem_getvalue() sur un système comme MacOS X qui ne possède pas |
Line 2169 typedef struct processus
|
Line 2182 typedef struct processus
|
pthread_mutex_t mutex_allocation; |
pthread_mutex_t mutex_allocation; |
|
|
// Mutex autorisant les fork() |
// Mutex autorisant les fork() |
pthread_mutex_t mutex_fork; |
sem_t |
|
# ifdef SEMAPHORES_NOMMES |
|
* |
|
# endif |
|
semaphore_fork; |
|
|
/* Mutexes */ |
/* Mutexes */ |
|
|