From 48781d44e4b95ec475527e1359ce9e7bb15fd8ec Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" Date: Sun, 3 Dec 2000 14:41:47 +0000 Subject: Support IBM S/390. Patches from Neale Ferguson@softwareAG-usa.com. --- src/include/storage/s_lock.h | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index d50e3564bb7..863801f8ee3 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.74 2000/11/28 23:27:57 tgl Exp $ + * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.75 2000/12/03 14:41:42 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -128,6 +128,29 @@ __asm__("swpb %0, %0, [%3]": "=r"(_res), "=m"(*lock):"0"(_res), "r" (lock)); #endif /* __arm__ */ +#if defined(__s390__) +/* + * S/390 Linux + */ +#define TAS(lock) tas(lock) + +static inline int +tas(volatile slock_t *lock) +{ + int _res; + + __asm__ __volatile(" la 1,1\n" + " l 2,%2\n" + " slr 0,0\n" + " cs 0,1,0(2)\n" + " lr %1,0" + : "=m" (lock), "=d" (_res) + : "m" (lock) + : "0", "1", "2"); + + return (_res); +} +#endif /* __s390__ */ #if defined(__sparc__) -- cgit v1.2.3