Introduce two new sysarch options to allow for userspace configuration
of MTE: ARM64_MEMORY_TAG and ARM64_MTE_CTRL.
ARM64_MTE_CTRL allows for userspace configuration of MTE for a process,
including setting the Tag Check Fault and Allocation Access bits in
SCTLR_EL1 to control whether accesses to tagged memory cause an
exception on a tag check fault, and whether that exception is raised
synchronously or asynchronously.
ARM64_MEMORY_TAG is used to tag the pages in a given memory range by
changing their memory attributes. The arguments for this are the same as
the sysarch BTI option, so the arm64_guard_page_args struct has been
renamed to arm64_memory_args.
Sponsored by: Arm Ltd
Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Co-authored-by: Andrew Turner <andrew@FreeBSD.org>