Module Name: src
Committed By: riastradh
Date: Wed Feb 12 06:05:31 UTC 2020
Modified Files:
src/external/cddl/osnet/dev/fbt/aarch64: fbt_isa.c
Log Message:
Switch from db_write_bytes to using direct-mapping.
This way there's no dependency on ddb.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.5 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.6
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.5 Wed Feb 12 01:10:25 2020
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c Wed Feb 12 06:05:31 2020
@@ -37,7 +37,9 @@
#include <sys/module.h>
#include <sys/kmem.h>
-#include <ddb/ddb.h>
+#include <uvm/uvm_extern.h>
+
+#include <dev/mm.h>
#include <machine/cpufunc.h>
@@ -92,9 +94,14 @@ fbt_invop(uintptr_t addr, struct trapfra
void
fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
{
+ paddr_t pa;
+ vaddr_t va;
- db_write_bytes((db_addr_t)fbt->fbtp_patchpoint, sizeof(val),
- (const void *)&val);
+ if (!pmap_extract(pmap_kernel(), (vaddr_t)fbt->fbtp_patchpoint, &pa))
+ return;
+ if (!mm_md_direct_mapped_phys(pa, &va))
+ return;
+ *(fbt_patchval_t *)va = val;
cpu_icache_sync_range((vm_offset_t)fbt->fbtp_patchpoint, sizeof(val));
}