diff options
author | Thomas G. Lockhart <lockhart@fourpalms.org> | 2000-12-03 14:41:47 +0000 |
---|---|---|
committer | Thomas G. Lockhart <lockhart@fourpalms.org> | 2000-12-03 14:41:47 +0000 |
commit | 48781d44e4b95ec475527e1359ce9e7bb15fd8ec (patch) | |
tree | 482908e5a9df83c34f079180dd327d07eda76d1d /src | |
parent | 13dbd0276a14a56729f2f94937c7cd02ae483102 (diff) | |
download | postgresql-48781d44e4b95ec475527e1359ce9e7bb15fd8ec.tar.gz postgresql-48781d44e4b95ec475527e1359ce9e7bb15fd8ec.zip |
Support IBM S/390. Patches from Neale Ferguson@softwareAG-usa.com.
Diffstat (limited to 'src')
-rw-r--r-- | src/include/storage/s_lock.h | 25 |
1 files changed, 24 insertions, 1 deletions
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__) |