freebsd-dev/sys/arm64/include
Mark Johnston ca2cae0b4d Implement software access and dirty bit management for arm64.
Previously the arm64 pmap did no reference or modification tracking;
all mappings were treated as referenced and all read-write mappings
were treated as dirty.  This change implements software management
of these attributes.

Dirty bit management is implemented to emulate ARMv8.1's optional
hardware dirty bit modifier management, following a suggestion from alc.
In particular, a mapping with ATTR_SW_DBM set is logically writeable and
is dirty if the ATTR_AP_RW_BIT bit is clear.  Mappings with
ATTR_AP_RW_BIT set are write-protected, and a write access will trigger
a permission fault.  pmap_fault() handles permission faults for such
mappings and marks the page dirty by clearing ATTR_AP_RW_BIT, thus
mapping the page read-write.

Reviewed by:	alc
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D20907
2019-07-15 17:13:32 +00:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
acpica_machdep.h Add support to find the arm64 serial using the ACPI tables. This uses the 2016-11-21 19:26:58 +00:00
armreg.h Fix some ISS bit definitions for data aborts. 2019-07-11 15:36:59 +00:00
asm.h In ARMv8.1 ARM has added a process state bit to disable access to userspace 2017-04-13 13:46:01 +00:00
atomic.h arm64: fix atomic_fcmpset_16 2018-05-28 21:05:00 +00:00
bus_dma_impl.h Allow loading the same DMA address multiple times without any prior 2019-05-16 17:41:16 +00:00
bus_dma.h Allow loading the same DMA address multiple times without any prior 2019-05-16 17:41:16 +00:00
bus.h
clock.h
counter.h Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
cpu.h Add a KPI for the delay while spinning on a spin lock. 2018-11-05 21:34:17 +00:00
cpufunc.h Implement the ffs and fls functions, and their longer counterparts, in 2019-05-17 15:52:17 +00:00
db_machdep.h Fix printing of negative offsets (typically from frame pointers) again. 2017-03-26 18:46:35 +00:00
debug_monitor.h Fix the arm64 kernel build when DDB is disabled, debug_monitor.c depends on 2016-09-13 15:45:22 +00:00
disassem.h
dump.h
efi.h Catch exceptions during EFI RT calls on amd64. 2018-09-02 21:37:05 +00:00
elf.h Impleent COMPAT_FREEBSD32 for arm64. 2019-01-13 19:49:46 +00:00
endian.h Add parentheses missed in r320388 2017-06-27 16:30:01 +00:00
exec.h
float.h
floatingpoint.h
fpu.h Add machine/fpu.h on arm64 for compatibility with amd64. 2017-10-10 13:02:58 +00:00
frame.h Impleent COMPAT_FREEBSD32 for arm64. 2019-01-13 19:49:46 +00:00
hypervisor.h Add the ARMv8.3 HCR_EL2 register fields. 2018-11-01 17:05:10 +00:00
ieeefp.h
ifunc.h Remove resolver_qual from DEFINE_IFUNC/DEFINE_UIFUNC macros. 2019-05-16 22:20:54 +00:00
in_cksum.h
intr.h Create macros for the ACPI interrupt cross references. This is considered a 2018-03-07 13:16:03 +00:00
iodev.h
kdb.h
machdep.h Remove physmap from the arm64 machdep.h. This was missed in r334162. 2018-05-24 16:07:47 +00:00
md_var.h Implement userspace gettimeofday(2) with HPET timecounter. 2016-08-17 09:52:09 +00:00
memdev.h Add memmmap on arm64 so we can mmap /dev/mem and /dev/kmem. 2016-07-13 23:03:34 +00:00
metadata.h loader.efi: Make framebuffer commands available for arm64 2017-10-25 18:55:04 +00:00
minidump.h
ofw_machdep.h
param.h Add support for pmap_enter(psind = 1) to the arm64 pmap. 2018-07-20 16:37:04 +00:00
pcb.h Move the l0 pagetable address to struct mdproc. It is a property of the 2017-08-22 13:16:14 +00:00
pci_cfgreg.h
pcpu.h Use int for the pcpu_ssbd argument. This is included from userland and may 2018-07-31 15:08:02 +00:00
pmap.h Add kernel support for Intel userspace protection keys feature on 2019-02-20 09:51:13 +00:00
pmc_mdep.h
proc.h Add GET_STACK_USAGE() for arm64. 2018-05-23 15:43:35 +00:00
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
profile.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
psl.h
pte.h Implement software access and dirty bit management for arm64. 2019-07-15 17:13:32 +00:00
ptrace.h
reg.h Impleent COMPAT_FREEBSD32 for arm64. 2019-01-13 19:49:46 +00:00
reloc.h
resource.h Define PCI_RES_BUS for NEW_PCIB 2016-05-19 14:00:18 +00:00
runq.h
setjmp.h Move the stored signal mask later in the jump buf. It was being clobbered 2016-12-06 13:46:12 +00:00
sf_buf.h
sigframe.h Follow arm[32] and sparc64 KAPI and provide the FreeBSD standard spelling 2019-01-29 20:10:27 +00:00
signal.h
smp.h Rename COUNT_IPI to INTR_IPI_COUNT to reduce the diff with intrng. 2016-03-18 16:29:58 +00:00
stack.h
stdarg.h Introduce an architecture-agnostic <sys/_stdarg.h> to reduce 2017-12-25 20:54:00 +00:00
sysarch.h
trap.h
ucontext.h Impleent COMPAT_FREEBSD32 for arm64. 2019-01-13 19:49:46 +00:00
undefined.h Move the undefined instruction handler to identcpu.c so we have access 2018-09-27 13:50:57 +00:00
vdso.h Add rudimentary support for building FreeBSD/arm64 with COMPAT_FREEBSD32. 2017-11-24 13:50:53 +00:00
vfp.h Impleent COMPAT_FREEBSD32 for arm64. 2019-01-13 19:49:46 +00:00
vm.h Add the VM_MEMATTR_WRITE_THROUGH memory type to arm64 and use it to support 2017-05-13 13:01:15 +00:00
vmparam.h Remove VM_FREELIST_ISADMA. It's not needed on these architectures. 2018-07-17 21:07:53 +00:00