Skip to content
Snippets Groups Projects
Commit 58ed1232 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Fix for netbsd locking, from Henry B. Hotz.

parent e2617c85
No related branches found
No related tags found
No related merge requests found
#define USE_POSIX_TIME
#if defined(i386)
#define NEED_I386_TAS_ASM
#define HAS_TEST_AND_SET
#endif
#if defined(sparc)
#define NEED_SPARC_TAS_ASM
#define HAS_TEST_AND_SET
#endif
#if defined(ns32k)
#define NEED_NS32k_TAS_ASM
#define HAS_TEST_AND_SET
#endif
#if defined(__m68k__)
#define HAS_TEST_AND_SET
#endif
#if defined(__mips__)
/* # undef HAS_TEST_AND_SET */
/* # undef HAS_TEST_AND_SET */
#endif
typedef unsigned char slock_t;
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.10 1997/10/03 15:27:18 momjian Exp $
* $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.11 1997/10/30 05:24:19 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -24,6 +24,10 @@
* ;
* }
*
* In addition to modifying this file you will need to modify
* the appropriate ...src/include/port/...h file to define
* HAS_TEST_AND_SET for the appropriate circumstances.
*
* If this is not done, POSTGRES will default to using System V
* semaphores (and take a large performance hit -- around 40% of
* its time on a DS5000/240 is spent in semop(3)...).
......@@ -228,6 +232,31 @@ tas_dummy()
#endif /* sun3 */
/*
* M68000 ports under NetBSD.
*
* This version should also work on a sun3, but I can't test it.
* Conversely the sun3 version should work under NetBSD/m68k, but
* it doesn't.
*/
#if defined(__NetBSD__) && defined(__m68k__)
static void S_LOCK(char *lock)
{
asm("
movel a6@(8),a0
LOOP:
tas a0@
bmi LOOP
");
}
#define S_UNLOCK(lock) (*(lock) = 0)
#define S_INIT_LOCK(lock) S_UNLOCK(lock)
#endif /* M68000 && NetBSD */
/*
* sparc machines
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment