Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/arch/vax/include/lock.h,v rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/vax/include/lock.h,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.8 retrieving revision 1.8.8.3 diff -u -p -r1.8 -r1.8.8.3 --- src/sys/arch/vax/include/lock.h 2001/06/04 21:37:12 1.8 +++ src/sys/arch/vax/include/lock.h 2002/10/18 02:40:30 1.8.8.3 @@ -1,4 +1,4 @@ -/* $NetBSD: lock.h,v 1.8 2001/06/04 21:37:12 ragge Exp $ */ +/* $NetBSD: lock.h,v 1.8.8.3 2002/10/18 02:40:30 nathanw Exp $ */ /* * Copyright (c) 2000 Ludd, University of Lule}, Sweden. @@ -41,14 +41,16 @@ typedef __volatile int __cpu_simple_loc static __inline void __cpu_simple_lock_init(__cpu_simple_lock_t *alp) { - __asm__ __volatile ("movl %0,r1;jsb Sunlock" +#ifdef _KERNEL + __asm__ __volatile ("movl %0,%%r1;jsb Sunlock" : /* No output */ : "g"(alp) : "r1","cc","memory"); -#if 0 - __asm__ __volatile ("bbcci $0, %0, 1f;1:" +#else + __asm__ __volatile ("bbcci $0,%0,1f;1:" : /* No output */ - : "m"(*alp)); + : "m"(*alp) + : "cc"); #endif } @@ -57,22 +59,25 @@ __cpu_simple_lock_try(__cpu_simple_lock_ { int ret; - __asm__ __volatile ("movl %1,r1;jsb Slocktry;movl r0,%0" +#ifdef _KERNEL + __asm__ __volatile ("movl %1,%%r1;jsb Slocktry;movl %%r0,%0" : "=&r"(ret) : "g"(alp) : "r0","r1","cc","memory"); -#if 0 - __asm__ __volatile ("movl $0,%0;bbssi $0,%1,1f;incl %0;1:" +#else + __asm__ __volatile ("clrl %0;bbssi $0,%1,1f;incl %0;1:" : "=&r"(ret) - : "m"(*alp)); + : "m"(*alp) + : "cc"); #endif return ret; } +#ifdef _KERNEL #define VAX_LOCK_CHECKS ((1 << IPI_SEND_CNCHAR) | (1 << IPI_DDB)) #define __cpu_simple_lock(alp) \ -{ \ +do { \ struct cpu_info *__ci = curcpu(); \ \ while (__cpu_simple_lock_try(alp) == 0) { \ @@ -84,7 +89,17 @@ __cpu_simple_lock_try(__cpu_simple_lock_ splx(__s); \ } \ } \ +} while (0) +#else +static __inline void +__cpu_simple_lock(__cpu_simple_lock_t *alp) +{ + __asm__ __volatile ("1:bbssi $0,%0,1b" + : /* No outputs */ + : "m"(*alp) + : "cc"); } +#endif /* _KERNEL */ #if 0 static __inline void @@ -103,7 +118,7 @@ __cpu_simple_lock(__cpu_simple_lock_t *a } #if 0 - __asm__ __volatile ("movl %0,r1;jsb Slock" + __asm__ __volatile ("movl %0,%%r1;jsb Slock" : /* No output */ : "g"(alp) : "r0","r1","cc","memory"); @@ -119,14 +134,16 @@ __cpu_simple_lock(__cpu_simple_lock_t *a static __inline void __cpu_simple_unlock(__cpu_simple_lock_t *alp) { - __asm__ __volatile ("movl %0,r1;jsb Sunlock" +#ifdef _KERNEL + __asm__ __volatile ("movl %0,%%r1;jsb Sunlock" : /* No output */ : "g"(alp) : "r1","cc","memory"); -#if 0 - __asm__ __volatile ("bbcci $0, %0, 1f;1:" +#else + __asm__ __volatile ("bbcci $0,%0,1f;1:" : /* No output */ - : "m"(*alp)); + : "m"(*alp) + : "cc"); #endif }