From 56c453e430328f9996e7cb8ea72523cc037a3eaf Mon Sep 17 00:00:00 2001 From: jhb Date: Thu, 5 Oct 2000 22:22:31 +0000 Subject: Replace loadandclear() with atomic_readandclear_int(). --- sys/amd64/amd64/pmap.c | 4 ++-- sys/amd64/include/cpufunc.h | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) (limited to 'sys/amd64') diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 52d9cd1..523ef5d 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1603,7 +1603,7 @@ pmap_remove_pte(pmap, ptq, va) unsigned oldpte; vm_page_t m; - oldpte = loadandclear(ptq); + oldpte = atomic_readandclear_int(ptq); if (oldpte & PG_W) pmap->pm_stats.wired_count -= 1; /* @@ -1799,7 +1799,7 @@ pmap_remove_all(m) pte = pmap_pte_quick(pv->pv_pmap, pv->pv_va); - tpte = loadandclear(pte); + tpte = atomic_readandclear_int(pte); if (tpte & PG_W) pv->pv_pmap->pm_stats.wired_count--; diff --git a/sys/amd64/include/cpufunc.h b/sys/amd64/include/cpufunc.h index 39868df..317af1b 100644 --- a/sys/amd64/include/cpufunc.h +++ b/sys/amd64/include/cpufunc.h @@ -305,16 +305,6 @@ inw(u_int port) return (data); } -static __inline u_int -loadandclear(volatile u_int *addr) -{ - u_int result; - - __asm __volatile("xorl %0,%0; xchgl %1,%0" - : "=&r" (result) : "m" (*addr)); - return (result); -} - static __inline void outbv(u_int port, u_char data) { @@ -525,7 +515,6 @@ void invd __P((void)); void invlpg __P((u_int addr)); void invltlb __P((void)); u_short inw __P((u_int port)); -u_int loadandclear __P((u_int *addr)); void outb __P((u_int port, u_char data)); void outl __P((u_int port, u_int data)); void outsb __P((u_int port, void *addr, size_t cnt)); -- cgit v1.1