diff options
Diffstat (limited to 'db2')
-rw-r--r-- | db2/mutex/tsl_parisc.s | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/db2/mutex/tsl_parisc.s b/db2/mutex/tsl_parisc.s new file mode 100644 index 0000000000..e6054944ec --- /dev/null +++ b/db2/mutex/tsl_parisc.s @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1996-1997 The University of Utah and the Computer Systems + * Laboratory at the University of Utah (CSL). All rights reserved. + * + * Permission to use, copy, modify and distribute this software is hereby + * granted provided that (1) source code retains these copyright, permission, + * and disclaimer notices, and (2) redistributions including binaries + * reproduce the notices in supporting documentation, and (3) all advertising + * materials mentioning features or use of this software display the following + * acknowledgement: ``This product includes software developed by the Computer + * Systems Laboratory at the University of Utah.'' + * + * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS + * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF + * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * CSL requests users of this software to return to csl-dist@cs.utah.edu any + * improvements that they make and grant CSL redistribution rights. + * + * @(#)tsl_parisc.s 8.4 (Sleepycat) 1/18/97 + */ + +/* + * Spin locks for the PA-RISC. Based on Bob Wheeler's Mach implementation. + */ + .SPACE $TEXT$ + .SUBSPA $CODE$ + +/* + * int tsl_set(tsl_t *tsl) + * + * Try to acquire a lock, return 1 if successful, 0 if not. + */ + .EXPORT tsl_set,ENTRY +tsl_set + .PROC + .CALLINFO FRAME=0,NO_CALLS + .ENTRY + ldo 15(%r26),%r26 + depi 0,31,4,%r26 + ldcws 0(%r26),%r28 + subi,= 0,%r28,%r0 + ldi 1,%r28 + bv,n 0(%r2) + .EXIT + .PROCEND + + +/* + * void tsl_unset(tsl_t *tsl) + * + * Release a lock. + */ + .EXPORT tsl_unset,ENTRY +tsl_unset + .PROC + .CALLINFO FRAME=0,NO_CALLS + .ENTRY + ldo 15(%r26),%r26 + ldi -1,%r19 + depi 0,31,4,%r26 + bv 0(%r2) + stw %r19,0(%r26) + .EXIT + .PROCEND |