xen/arm: hypercalls
commitaa2466d21bd9e872690693d56feb946781443f28
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Fri, 14 Sep 2012 13:33:21 +0000 (14 13:33 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Fri, 14 Sep 2012 13:33:21 +0000 (14 13:33 +0000)
tree34f64dd0079bb963d8616cfed5c073914fbf2808
parent4c071ee5268f7234c3d084b6093bebccc28cdcba
xen/arm: hypercalls

Use r12 to pass the hypercall number to the hypervisor.

We need a register to pass the hypercall number because we might not
know it at compile time and HVC only takes an immediate argument.

Among the available registers r12 seems to be the best choice because it
is defined as "intra-procedure call scratch register".

Use the ISS to pass an hypervisor specific tag.

Changes in v2:
- define an HYPERCALL macro for 5 arguments hypercall wrappers, even if
at the moment is unused;
- use ldm instead of pop;
- fix up comments.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/arm/include/asm/xen/hypercall.h [new file with mode: 0644]
arch/arm/xen/Makefile
arch/arm/xen/hypercall.S [new file with mode: 0644]