From 8a0967a3b165803599b2bb39617bc55a1fcf52a0 Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" <scrappy@hub.org> Date: Tue, 30 Dec 1997 04:01:28 +0000 Subject: [PATCH] bring in alpha/linux s_lock changes From: Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu> --- src/backend/storage/buffer/Makefile | 5 ++--- src/include/storage/s_lock.h | 27 ++++----------------------- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/backend/storage/buffer/Makefile b/src/backend/storage/buffer/Makefile index 63bfd30d562..177621a925a 100644 --- a/src/backend/storage/buffer/Makefile +++ b/src/backend/storage/buffer/Makefile @@ -4,7 +4,7 @@ # Makefile for storage/buffer # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/storage/buffer/Makefile,v 1.5 1997/12/20 00:27:09 scrappy Exp $ +# $Header: /cvsroot/pgsql/src/backend/storage/buffer/Makefile,v 1.6 1997/12/30 04:01:25 scrappy Exp $ # #------------------------------------------------------------------------- @@ -15,7 +15,7 @@ INCLUDE_OPT = -I../.. CFLAGS+=$(INCLUDE_OPT) -OBJS = buf_table.o buf_init.o bufmgr.o freelist.o localbuf.o +OBJS = buf_table.o buf_init.o bufmgr.o freelist.o localbuf.o s_lock.o all: SUBSYS.o @@ -31,4 +31,3 @@ clean: ifeq (depend,$(wildcard depend)) include depend endif - diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index 8089f2edff1..b59146d8c0d 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.13 1997/12/09 20:55:33 momjian Exp $ + * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.14 1997/12/30 04:01:28 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -313,28 +313,9 @@ tas_dummy() #if defined(__alpha__) && defined(linux) -#define S_LOCK(lock) do { \ - slock_t _res; \ - do { \ - __asm__(" ldq $0, %0 \n\ - bne $0, already_set%= \n\ - ldq_l $0, %0 \n\ - bne $0, already_set%= \n\ - or $31, 1, $0 \n\ - stq_c $0, %0 \n\ - beq $0, stqc_fail%= \n\ - success%=: \n\ - bis $31, $31, %1 \n\ - mb \n\ - jmp $31, end%= \n\ - stqc_fail%=: or $31, 1, $0 \n\ - already_set%=: bis $0, $0, %1 \n\ - end%=: nop ": "=m"(*lock), "=r"(_res): :"0"); \ - } while (_res != 0); \ - } while (0) - - -#define S_UNLOCK(lock) ({ __asm__("mb \n"); *(lock) = 0; }) +void S_LOCK(slock_t* lock); + +#define S_UNLOCK(lock) { __asm__("mb"); *(lock) = 0; } #define S_INIT_LOCK(lock) S_UNLOCK(lock) -- GitLab