version 1.7, 2010/08/06 15:33:04
|
version 1.8, 2010/08/09 13:51:48
|
Line 107 sem_getvalue2(sem_t *semaphore, int *val
|
Line 107 sem_getvalue2(sem_t *semaphore, int *val
|
|
|
#endif |
#endif |
|
|
#ifdef OS2 |
#ifdef SEMAPHORES_SYSV |
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 123 sem_getvalue2(sem_t *semaphore, int *val
|
Line 123 sem_getvalue2(sem_t *semaphore, int *val
|
|
|
extern unsigned char *chemin_semaphores_SysV; |
extern unsigned char *chemin_semaphores_SysV; |
|
|
|
#ifndef UNION_SEMUN |
|
union semun |
|
{ |
|
int val; |
|
struct semid_ds *buf; |
|
unsigned short *array; |
|
struct seminfo *__buf; |
|
}; |
|
#endif |
|
|
int |
int |
sem_init(sem_t *semaphore, int shared, unsigned int valeur) |
sem_init_SysV(sem_t *semaphore, int shared, unsigned int valeur) |
{ |
{ |
|
int ios; |
|
|
union semun argument; |
union semun argument; |
|
|
if (shared != 0) |
if (shared != 0) |
Line 141 sem_init(sem_t *semaphore, int shared, u
|
Line 153 sem_init(sem_t *semaphore, int shared, u
|
} |
} |
|
|
argument.val = valeur; |
argument.val = valeur; |
semctl((*semaphore), 0, SETVAL, argument); |
ios = semctl((*semaphore), 0, SETVAL, argument); |
|
|
return(0); |
return(ios); |
} |
} |
|
|
int |
int |
sem_destroy(sem_t *semaphore) |
sem_destroy_SysV(sem_t *semaphore) |
{ |
{ |
if (semctl((*semaphore), IPC_RMID, 0) == -1) |
if (semctl((*semaphore), IPC_RMID, 0) == -1) |
{ |
{ |
Line 158 sem_destroy(sem_t *semaphore)
|
Line 170 sem_destroy(sem_t *semaphore)
|
} |
} |
|
|
int |
int |
sem_wait(sem_t *semaphore) |
sem_wait_SysV(sem_t *semaphore) |
{ |
{ |
struct sembuf commande; |
struct sembuf commande; |
|
|
Line 175 sem_wait(sem_t *semaphore)
|
Line 187 sem_wait(sem_t *semaphore)
|
} |
} |
|
|
int |
int |
sem_trywait(sem_t *semaphore) |
sem_trywait_SysV(sem_t *semaphore) |
{ |
{ |
struct sembuf commande; |
struct sembuf commande; |
|
|
Line 197 sem_trywait(sem_t *semaphore)
|
Line 209 sem_trywait(sem_t *semaphore)
|
} |
} |
|
|
int |
int |
sem_post(sem_t *semaphore) |
sem_post_SysV(sem_t *semaphore) |
{ |
{ |
struct sembuf commande; |
struct sembuf commande; |
|
|
Line 214 sem_post(sem_t *semaphore)
|
Line 226 sem_post(sem_t *semaphore)
|
} |
} |
|
|
int |
int |
sem_getvalue(sem_t *semaphore, int *valeur) |
sem_getvalue_SysV(sem_t *semaphore, int *valeur) |
{ |
{ |
(*valeur) = semctl((*semaphore), 0, GETVAL); |
(*valeur) = semctl((*semaphore), 0, GETVAL); |
|
|
Line 227 sem_getvalue(sem_t *semaphore, int *vale
|
Line 239 sem_getvalue(sem_t *semaphore, int *vale
|
} |
} |
|
|
sem_t |
sem_t |
*sem_open(const char *nom, int oflag, ...) |
*sem_open_SysV(const char *nom, int oflag, ...) |
//*sem_open(const char *nom, int oflag) |
//*sem_open(const char *nom, int oflag) |
//*sem_open(const char *nom, int oflag, mode_t mode, unsigned int value) |
//*sem_open(const char *nom, int oflag, mode_t mode, unsigned int value) |
{ |
{ |
Line 301 sem_t
|
Line 313 sem_t
|
|
|
free(nom_absolu); |
free(nom_absolu); |
|
|
return(SEM_FAILED); |
return(semaphore); |
} |
} |
|
|
int |
int |
sem_close(sem_t *semaphore) |
sem_close_SysV(sem_t *semaphore) |
{ |
{ |
free(semaphore); |
free(semaphore); |
return(0); |
return(0); |
} |
} |
|
|
int |
int |
sem_unlink(const char *nom) |
sem_unlink_SysV(const char *nom) |
{ |
{ |
sem_t semaphore; |
sem_t semaphore; |
|
|