]> granicus.if.org Git - postgresql/commitdiff
Somewhere between 6.1 and 6.3 someone removed the support for the
authorBruce Momjian <bruce@momjian.us>
Sun, 19 Jul 1998 01:19:54 +0000 (01:19 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 19 Jul 1998 01:19:54 +0000 (01:19 +0000)
NS32K machine I contributed.  In any case, I now have postgresql-6.3
running again on NetBSD/pc532, a NS32532 machine.  The following
changes are needed relative to the src directory.  (It looks like
support was partially removed when the files were moved from the
src/backend/storage/.... tree to the src/include tree.)

If you need me to get a current development version of postgresql
for this change let me know.  Also, let me know if this code needs
updating due to another code movement that deleted the old NS32K
support.

Thank you.

Phil Nelson

src/include/port/bsd.h
src/include/storage/s_lock.h

index 03c99acd873f5054b6138f988e4256f9f2b92920..4e754e77dec81b1e13e138d542a1a0a2c84270a4 100644 (file)
@@ -15,8 +15,8 @@
 #define HAS_TEST_AND_SET
 #endif
 
-#if defined(ns32k)
-#define NEED_NS32k_TAS_ASM
+#if defined(__ns32k__)
+#define NEED_NS32K_TAS_ASM
 #define HAS_TEST_AND_SET
 #endif
 
index 7cbf56385e6f27507912423b5834bd45e7b36161..70a0f4226c4648b11af1ce82ba1855487c2583f9 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.39 1998/07/18 14:58:58 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.40 1998/07/19 01:19:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -209,6 +209,22 @@ tas(slock_t *s_lock)
 #endif /* NEED_I386_TAS_ASM */
 
 
+
+#if defined(NEED_NS32K_TAS_ASM)
+
+#define S_LOCK(lock)                           \
+{                                              \
+    slock_t res = 1;                           \
+    while (res) {                              \
+      __asm__("movqd 0, r0");                  \
+      __asm__("sbitd r0, %0" : "=m"(*lock));   \
+      __asm__("sprb us, %0" : "=r" (res));     \
+      res = ((res >> 5) & 1);                  \
+    }                                          \
+}
+#endif /* NEED_NS32K_TAS_ASM */
+
+
 #endif /* defined(__GNUC__) */
 
 
@@ -308,6 +324,10 @@ int        tas(volatile slock_t *lock); /* port/.../tas.s, or s_lock.c */
 #define TAS(lock)              tas((volatile slock_t *) lock)
 #endif /* TAS */
 
+#define S_UNLOCK(lock)  (*(lock) = 0)
+
+#define S_INIT_LOCK(lock)       S_UNLOCK(lock)
+
 
 #endif /* HAS_TEST_AND_SET */
 #endif /* S_LOCK_H */