History log of /freebsd-current/sys/sys/_pv_entry.h
Revision Date Author Comments
# aa62d30d4 11-Oct-2022 Warner Losh <imp@FreeBSD.org>

sys/_pv_entry.h: Include sys/param.h

sys/param.h is required for this file because it uses howmany() which is
defined there. For the kernel, this works today because of namespace
polllution. However, user land programs, like qemu, can include
machine/pmap.h without having included sys/param.h (since it wasn't
required before).

Sponsored by: Netflix
Reviewed by: tsoome, jhb
Differential Revision: https://reviews.freebsd.org/D36927


# ce9e720a 07-Oct-2022 John Baldwin <jhb@FreeBSD.org>

<sys/_pv_entry>: Add a fallback for __LONG_WIDTH__ for older compilers.

clang only includes a __LONG_WIDTH__ builtin in clang 14 and later.


# 765c48cc 07-Oct-2022 John Baldwin <jhb@FreeBSD.org>

sys/_pv_entry.h: Drop UCB copyright as this is all Peter's code.

Reported by: alc


# 4d90a5af 07-Oct-2022 John Baldwin <jhb@FreeBSD.org>

sys: Consolidate common implementation details of PV entries.

Add a <sys/_pv_entry.h> intended for use in <machine/pmap.h> to
define struct pv_entry, pv_chunk, and related macros and inline
functions.

Note that powerpc does not yet use this as while the mmu_radix pmap
in powerpc uses the new scheme (albeit with fewer PV entries in a
chunk than normal due to an used pv_pmap field in struct pv_entry),
the Book-E pmaps for powerpc use the older style PV entries without
chunks (and thus require the pv_pmap field).

Suggested by: kib
Reviewed by: kib
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D36685