diff options
Diffstat (limited to 'mcon/U/d_semop.U')
-rw-r--r-- | mcon/U/d_semop.U | 67 |
1 files changed, 60 insertions, 7 deletions
diff --git a/mcon/U/d_semop.U b/mcon/U/d_semop.U index 039cff2..129a057 100644 --- a/mcon/U/d_semop.U +++ b/mcon/U/d_semop.U @@ -1,31 +1,84 @@ -?RCS: $Id: d_semop.U 1 2006-08-24 12:32:52Z rmanfredi $ +?RCS: $Id: d_semop.U 167 2013-05-08 17:58:00Z rmanfredi $ ?RCS: ?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi ?RCS: -?RCS: You may redistribute only under the terms of the Artistic Licence, +?RCS: You may redistribute only under the terms of the Artistic License, ?RCS: as specified in the README file that comes with the distribution. ?RCS: You may reuse parts of this distribution only within the terms of -?RCS: that same Artistic Licence; a copy of which may be found at the root +?RCS: that same Artistic License; a copy of which may be found at the root ?RCS: of the source tree for dist 4.0. ?RCS: ?RCS: $Log: d_semop.U,v $ ?RCS: Revision 3.0 1993/08/18 12:07:05 ram ?RCS: Baseline for dist 3.0 netwide release. ?RCS: -?MAKE:d_semop: Inlibc +?MAKE:d_semop d_semtimedop: Trylink cat ?MAKE: -pick add $@ %< ?S:d_semop: ?S: This variable conditionally defines the HAS_SEMOP symbol, which ?S: indicates to the C program that the semop() routine is available. ?S:. +?S:d_semtimedop: +?S: This variable conditionally defines the HAS_SEMTIMEDOP symbol, which +?S: indicates to the C program that the semtimedop() routine is available. +?S:. ?C:HAS_SEMOP: ?C: This symbol, if defined, indicates that the semop() routine is ?C: available to execute semaphore operations. ?C:. +?C:HAS_SEMTIMEDOP: +?C: This symbol, if defined, indicates that the semtimedop() routine is +?C: available to execute semaphore operations with a timeout. +?C:. ?H:#$d_semop HAS_SEMOP /**/ +?H:#$d_semtimedop HAS_SEMTIMEDOP /**/ ?H:. -?LINT:set d_semop +?LINT:set d_semop d_semtimedop : see if semop exists -set semop d_semop -eval $inlibc +$cat >try.c <<EOC +#include <sys/ipc.h> +#include <sys/sem.h> +int main(void) +{ + static int ret, id; + static size_t n; + static struct sembuf buf; + + buf.sem_num |= 1; + buf.sem_op |= 1; + buf.sem_flg |= SEM_UNDO; + buf.sem_flg |= IPC_NOWAIT; + ret |= semop(id, &buf, n); + return ret ? 0 : 1; +} +EOC +cyn=semop +set d_semop +eval $trylink + +@if d_semtimedop || HAS_SEMTIMEDOP +: see if semtimedop exists +$cat >try.c <<EOC +#include <sys/types.h> +#include <sys/ipc.h> +#include <sys/sem.h> +int main(void) +{ + static int ret, id; + static size_t n; + static struct sembuf buf; + + + buf.sem_num |= 1; + buf.sem_op |= 1; + buf.sem_flg |= SEM_UNDO; + buf.sem_flg |= IPC_NOWAIT; + ret |= semtimedop(id, &buf, n, (struct timespec *) 0); + return ret ? 0 : 1; +} +EOC +cyn=semtimedop +set d_semtimedop +eval $trylink +@end |