git: a6172e6353ee - stable/13 - amd64: provide PHYS_IN_DMAP() and VIRT_IN_DMAP()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 03 Dec 2021 14:53:39 UTC
The branch stable/13 has been updated by mhorne:
URL: https://cgit.FreeBSD.org/src/commit/?id=a6172e6353ee88e331f2287901078f0d2edbb82c
commit a6172e6353ee88e331f2287901078f0d2edbb82c
Author: Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2021-11-17 15:29:02 +0000
Commit: Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2021-12-03 14:02:02 +0000
amd64: provide PHYS_IN_DMAP() and VIRT_IN_DMAP()
It is useful for quickly checking an address against the DMAP region.
These definitions exist already on arm64 and riscv.
Reviewed by: kib, markj
MFC after: 3 days
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D32962
(cherry picked from commit 90d4da62259299a8d91fed1121be97ac5b7b6b3c)
---
sys/amd64/include/vmparam.h | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h
index 61d0dea54210..cddb360090ab 100644
--- a/sys/amd64/include/vmparam.h
+++ b/sys/amd64/include/vmparam.h
@@ -239,16 +239,19 @@
* because the result is not actually accessed until later, but the early
* vt fb startup needs to be reworked.
*/
+#define PHYS_IN_DMAP(pa) (dmaplimit == 0 || (pa) < dmaplimit)
+#define VIRT_IN_DMAP(va) ((va) >= DMAP_MIN_ADDRESS && \
+ (va) < (DMAP_MIN_ADDRESS + dmaplimit))
+
#define PMAP_HAS_DMAP 1
#define PHYS_TO_DMAP(x) ({ \
- KASSERT(dmaplimit == 0 || (x) < dmaplimit, \
+ KASSERT(PHYS_IN_DMAP(x), \
("physical address %#jx not covered by the DMAP", \
(uintmax_t)x)); \
(x) | DMAP_MIN_ADDRESS; })
#define DMAP_TO_PHYS(x) ({ \
- KASSERT((x) < (DMAP_MIN_ADDRESS + dmaplimit) && \
- (x) >= DMAP_MIN_ADDRESS, \
+ KASSERT(VIRT_IN_DMAP(x), \
("virtual address %#jx not covered by the DMAP", \
(uintmax_t)x)); \
(x) & ~DMAP_MIN_ADDRESS; })