mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
Fix for netbsd locking, from Henry B. Hotz.
This commit is contained in:
parent
e2617c856e
commit
58ed1232f5
@ -1,14 +1,24 @@
|
||||
#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
|
||||
#endif
|
||||
#define HAS_TEST_AND_SET
|
||||
#endif
|
||||
|
||||
#if defined(__m68k__)
|
||||
#define HAS_TEST_AND_SET
|
||||
#endif
|
||||
|
||||
#if defined(__mips__)
|
||||
/* # undef HAS_TEST_AND_SET */
|
||||
#endif
|
||||
|
@ -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
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user