aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>2000-12-03 14:41:47 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>2000-12-03 14:41:47 +0000
commit48781d44e4b95ec475527e1359ce9e7bb15fd8ec (patch)
tree482908e5a9df83c34f079180dd327d07eda76d1d
parent13dbd0276a14a56729f2f94937c7cd02ae483102 (diff)
downloadpostgresql-48781d44e4b95ec475527e1359ce9e7bb15fd8ec.tar.gz
postgresql-48781d44e4b95ec475527e1359ce9e7bb15fd8ec.zip
Support IBM S/390. Patches from Neale Ferguson@softwareAG-usa.com.
-rw-r--r--doc/src/sgml/installation.sgml9
-rw-r--r--src/include/storage/s_lock.h25
2 files changed, 32 insertions, 2 deletions
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index e0bea34fd8e..71d5fb1e03c 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.30 2000/11/30 21:44:07 petere Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.31 2000/12/03 14:41:47 thomas Exp $ -->
<chapter id="installation">
<title><![%flattext-install-include[<productname>PostgreSQL</>]]> Installation Instructions</title>
@@ -1161,6 +1161,13 @@ gunzip -c user.ps.gz \
<entry>See also <filename>doc/FAQ_HPUX</></>
</row>
<row>
+ <entry>IBM</entry>
+ <entry>S/390</entry>
+ <entry>7.1</entry>
+ <entry>2000-11-17, Neale Ferguson (<email>Neale.Ferguson@softwareAG-usa.com</>)</entry>
+ <entry></>
+ </row>
+ <row>
<entry>IRIX 6.5.6f</entry>
<entry>MIPS</entry>
<entry>6.5.3</entry>
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__)