Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/aarch64/include Implement PMAP_DIRECT / pmap_direct...



details:   https://anonhg.NetBSD.org/src/rev/b462a16d9089
branches:  trunk
changeset: 446026:b462a16d9089
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Tue Nov 20 20:53:50 2018 +0000

description:
Implement PMAP_DIRECT / pmap_direct_process() in support of experimental
UBC optimizations (compile-tested only for now)

PR kern/53124

diffstat:

 sys/arch/aarch64/include/pmap.h |  12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diffs (26 lines):

diff -r 48c56bb21d6b -r b462a16d9089 sys/arch/aarch64/include/pmap.h
--- a/sys/arch/aarch64/include/pmap.h   Tue Nov 20 20:36:24 2018 +0000
+++ b/sys/arch/aarch64/include/pmap.h   Tue Nov 20 20:53:50 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.h,v 1.17 2018/11/01 20:34:50 maxv Exp $ */
+/* $NetBSD: pmap.h,v 1.18 2018/11/20 20:53:50 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -54,6 +54,16 @@
 #ifndef KASAN
 #define PMAP_MAP_POOLPAGE(pa)          AARCH64_PA_TO_KVA(pa)
 #define PMAP_UNMAP_POOLPAGE(va)                AARCH64_KVA_TO_PA(va)
+
+#define PMAP_DIRECT
+static __inline int
+pmap_direct_process(paddr_t pa, voff_t pgoff, size_t len,
+    int (*process)(void *, size_t, void *), void *arg)
+{
+       vaddr_t va = AARCH64_PA_TO_KVA(pa);
+
+       return process((void *)(va + pgoff), len, arg);
+}
 #endif
 
 struct pmap {



Home | Main Index | Thread Index | Old Index