]> rtime.felk.cvut.cz Git - jailhouse.git/commit
arm: dispatch hypercalls
authorJean-Philippe Brucker <jean-philippe.brucker@arm.com>
Thu, 26 Jun 2014 12:49:35 +0000 (13:49 +0100)
committerJan Kiszka <jan.kiszka@siemens.com>
Fri, 19 Dec 2014 10:04:07 +0000 (11:04 +0100)
commitf177144ddaabffebd024e91ffe73a00465396707
treebda84ca43165e52a58f5194ce24c70d8224e16d2
parentf577745ea97ad9a8ae81901eb230ca08e96dc44b
arm: dispatch hypercalls

Initial code for handling hypervisor traps. Only the non-banked registers
need to be saved in the low-level handler, the rest of the context won't
be overwritten.
The per-cpu datas are loaded from TPIDR_EL2 and the general-purpose
registers are saved directly on the stack and supplied as 'struct
registers' to the dispatcher.
The latter then inspects the ESR value and calls the core accordingly.
The return value and the general-purpose registers are passed back to the
driver by retrieving 'struct registers' from the stack, before doing the
final ERET.
This patch allows to handle all status querying hypercalls.

Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/arch/arm/Makefile
hypervisor/arch/arm/exception.S
hypervisor/arch/arm/include/asm/control.h
hypervisor/arch/arm/include/asm/processor.h
hypervisor/arch/arm/include/asm/sysregs.h
hypervisor/arch/arm/include/asm/traps.h [new file with mode: 0644]
hypervisor/arch/arm/traps.c [new file with mode: 0644]