Module Name:    src
Committed By:   ad
Date:           Thu Jan  9 10:43:45 UTC 2020

Modified Files:
        src/sys/uvm: uvm_page.h

Log Message:
Use __SHIFTIN()/__SHIFTOUT().  Suggested by riastradh@.


To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/sys/uvm/uvm_page.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/uvm/uvm_page.h
diff -u src/sys/uvm/uvm_page.h:1.93 src/sys/uvm/uvm_page.h:1.94
--- src/sys/uvm/uvm_page.h:1.93	Tue Dec 31 22:42:51 2019
+++ src/sys/uvm/uvm_page.h	Thu Jan  9 10:43:45 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_page.h,v 1.93 2019/12/31 22:42:51 ad Exp $	*/
+/*	$NetBSD: uvm_page.h,v 1.94 2020/01/09 10:43:45 ad Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -397,10 +397,14 @@ int uvm_direct_process(struct vm_page **
  *
  * None of this is set in stone; it can be adjusted as needed.
  */
+
+#define	UVM_PHYSADDR_FREELIST	__BITS(0,4)
+#define	UVM_PHYSADDR_BUCKET	__BITS(5,9)
+
 static inline unsigned
 uvm_page_get_freelist(struct vm_page *pg)
 {
-	unsigned fl = pg->phys_addr & 0x1f;
+	unsigned fl = __SHIFTOUT(pg->phys_addr, UVM_PHYSADDR_FREELIST);
 	KASSERT(fl == (unsigned)uvm_page_lookup_freelist(pg));
 	return fl;
 }
@@ -408,21 +412,23 @@ uvm_page_get_freelist(struct vm_page *pg
 static inline unsigned
 uvm_page_get_bucket(struct vm_page *pg)
 {
-	return (pg->phys_addr & 0x3e0) >> 5;
+	return __SHIFTOUT(pg->phys_addr, UVM_PHYSADDR_BUCKET);
 }
 
 static inline void
 uvm_page_set_freelist(struct vm_page *pg, unsigned fl)
 {
 	KASSERT(fl < 32);
-	pg->phys_addr = (pg->phys_addr & ~0x1f) | fl;
+	pg->phys_addr &= ~UVM_PHYSADDR_FREELIST;
+	pg->phys_addr |= __SHIFTIN(fl, UVM_PHYSADDR_FREELIST);
 }
 
 static inline void
 uvm_page_set_bucket(struct vm_page *pg, unsigned b)
 {
 	KASSERT(b < 32);
-	pg->phys_addr = (pg->phys_addr & ~0x3e0) | (b << 5);
+	pg->phys_addr &= ~UVM_PHYSADDR_BUCKET;
+	pg->phys_addr |= __SHIFTIN(b, UVM_PHYSADDR_BUCKET);
 }
 
 #ifdef DEBUG

Reply via email to