[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] SN2 specific SAL calls for dom0
# HG changeset patch # User awilliam@xxxxxxxxxxxx # Date 1172685350 25200 # Node ID 347fb33790bdd93bcddffbe0e11b69756d4c6fb3 # Parent 2e2019e09e6c21bc0e072bd4e78d47a3bc87ea59 [IA64] SN2 specific SAL calls for dom0 Signed-off-by: Jes Sorensen <jes@xxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- xen/arch/ia64/xen/fw_emul.c | 65 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 64 insertions(+), 1 deletion(-) diff -r 2e2019e09e6c -r 347fb33790bd xen/arch/ia64/xen/fw_emul.c --- a/xen/arch/ia64/xen/fw_emul.c Wed Feb 28 10:35:48 2007 -0700 +++ b/xen/arch/ia64/xen/fw_emul.c Wed Feb 28 10:55:50 2007 -0700 @@ -22,6 +22,7 @@ #include <linux/efi.h> #include <asm/pal.h> #include <asm/sal.h> +#include <asm/sn/sn_sal.h> #include <asm/xenmca.h> #include <public/sched.h> @@ -131,6 +132,7 @@ sal_emulator (long index, unsigned long unsigned long in3, unsigned long in4, unsigned long in5, unsigned long in6, unsigned long in7) { + struct ia64_sal_retval ret_stuff; unsigned long r9 = 0; unsigned long r10 = 0; long r11 = 0; @@ -375,8 +377,69 @@ sal_emulator (long index, unsigned long if (!test_and_set_bit(_VCPUF_down, ¤t->vcpu_flags)) vcpu_sleep_nosync(current); break; + case SN_SAL_GET_MASTER_NASID: + status = -1; + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_MASTER_NASID ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_MASTER_NASID, + 0, 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + } + break; + case SN_SAL_GET_KLCONFIG_ADDR: + status = -1; + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_KLCONFIG_ADDR ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_KLCONFIG_ADDR, + in1, 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + } + break; + case SN_SAL_GET_SAPIC_INFO: + status = -1; + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_SAPIC_INFO ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SAPIC_INFO, in1, + 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + } + break; + case SN_SAL_GET_SN_INFO: + status = -1; + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_SN_INFO ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SN_INFO, in1, + 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + } + break; + case SN_SAL_IOIF_GET_HUBDEV_INFO: + status = -1; + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_IOIF_GET_HUBDEV_INFO ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_IOIF_GET_HUBDEV_INFO, + in1, in2, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + } + break; default: - printk("*** CALLED SAL_ WITH UNKNOWN INDEX. IGNORED...\n"); + printk("*** CALLED SAL_ WITH UNKNOWN INDEX (%lx). " + "IGNORED...\n", index); status = -1; break; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |