xen: Relocate mem_access and mem_event into common.

In preparation to add support for ARM LPAE mem_event, relocate mem_access and mem_event into common Xen code. This patch makes no functional changes to the X86 side, for ARM mem_event and mem_access functions are just placeholder stubs.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
xen/arm: Enable the compilation of mem_access and mem_event on ARM.

This patch enables the compilation of mem_access and mem_event on ARM and adds the required functions as placeholder stubs to p2m.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
tools/libxc: Allocate magic page for mem access on ARM

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
xen/arm: Data abort exception (R/W) mem_events.

This patch replaces the stub p2m functions with the actual ones required to store, set, check and deliver LPAE R/W mem_events. As the LPAE PTE lacks available bits to store the p2m_access_t bits, we use a separate radix tree (mem_access_settings) to store the permissions with the key being the gfn.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
xen/arm: Instruction prefetch abort (X) mem_event handling

Add missing structure definition for iabt and use the LPAE NX bit to set eXecute mem_event traps.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
tools/tests: Enable xen-access on ARM

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>