diff -r f24993f27cc4 xen/arch/ia64/vmx/pal_emul.c --- a/xen/arch/ia64/vmx/pal_emul.c Thu Jul 06 08:30:17 2006 -0600 +++ b/xen/arch/ia64/vmx/pal_emul.c Fri Jul 07 16:05:11 2006 -0600 @@ -27,6 +27,24 @@ #include #include +/* + * Handy macros to make sure that the PAL return values start out + * as something meaningful. + */ +#define INIT_PAL_STATUS_UNIMPLEMENTED(x) \ + { x.status = PAL_STATUS_UNIMPLEMENTED; \ + x.v0 = 0; \ + x.v1 = 0; \ + x.v2 = 0; \ + } + +#define INIT_PAL_STATUS_SUCCESS(x) \ + { x.status = PAL_STATUS_SUCCESS; \ + x.v0 = 0; \ + x.v1 = 0; \ + x.v2 = 0; \ + } + static void get_pal_parameters (VCPU *vcpu, UINT64 *gr29, UINT64 *gr30, UINT64 *gr31) { @@ -83,7 +101,7 @@ pal_vm_tr_read (VCPU *vcpu ) { pal_vm_tr_read (VCPU *vcpu ) { struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); return result; } @@ -97,7 +115,7 @@ pal_prefetch_visibility (VCPU *vcpu) { */ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); return result; } @@ -106,7 +124,7 @@ pal_platform_addr(VCPU *vcpu) { pal_platform_addr(VCPU *vcpu) { struct ia64_pal_retval result; - result.status= 0; //success + INIT_PAL_STATUS_SUCCESS(result); return result; } @@ -116,7 +134,7 @@ pal_halt (VCPU *vcpu) { //bugbug: to be implement. struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); return result; } @@ -129,7 +147,8 @@ pal_halt_light (VCPU *vcpu) { if(SPURIOUS_VECTOR==vmx_check_pending_irq(vcpu)) do_sched_op_compat(SCHEDOP_block,0); - result.status= 0; + INIT_PAL_STATUS_SUCCESS(result); + return result; } @@ -137,7 +156,7 @@ pal_cache_read (VCPU *vcpu) { pal_cache_read (VCPU *vcpu) { struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); return result; } @@ -146,7 +165,7 @@ pal_cache_write (VCPU *vcpu) { pal_cache_write (VCPU *vcpu) { struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); return result; } @@ -155,7 +174,8 @@ pal_bus_get_features(VCPU *vcpu){ pal_bus_get_features(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -163,14 +183,17 @@ pal_cache_summary(VCPU *vcpu){ pal_cache_summary(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } static struct ia64_pal_retval pal_cache_init(VCPU *vcpu){ struct ia64_pal_retval result; - result.status=0; + + INIT_PAL_STATUS_SUCCESS(result); + return result; } @@ -178,7 +201,8 @@ pal_cache_info(VCPU *vcpu){ pal_cache_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -186,7 +210,8 @@ pal_cache_prot_info(VCPU *vcpu){ pal_cache_prot_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -194,7 +219,8 @@ pal_mem_attrib(VCPU *vcpu){ pal_mem_attrib(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -202,7 +228,8 @@ pal_debug_info(VCPU *vcpu){ pal_debug_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -210,7 +237,8 @@ pal_fixed_addr(VCPU *vcpu){ pal_fixed_addr(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -242,7 +270,8 @@ pal_halt_info(VCPU *vcpu){ pal_halt_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -250,7 +279,8 @@ pal_logical_to_physica(VCPU *vcpu){ pal_logical_to_physica(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -258,7 +288,8 @@ pal_perf_mon_info(VCPU *vcpu){ pal_perf_mon_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -266,7 +297,8 @@ pal_proc_get_features(VCPU *vcpu){ pal_proc_get_features(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -274,7 +306,8 @@ pal_ptce_info(VCPU *vcpu){ pal_ptce_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -282,7 +315,8 @@ pal_register_info(VCPU *vcpu){ pal_register_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -290,14 +324,16 @@ pal_rse_info(VCPU *vcpu){ pal_rse_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } static struct ia64_pal_retval pal_test_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -324,7 +360,8 @@ pal_vm_info(VCPU *vcpu){ pal_vm_info(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } @@ -332,7 +369,8 @@ pal_vm_page_size(VCPU *vcpu){ pal_vm_page_size(VCPU *vcpu){ struct ia64_pal_retval result; - result.status= -1; //unimplemented + INIT_PAL_STATUS_UNIMPLEMENTED(result); + return result; } void