[IA64] reset_system

Cleanup: EFI_RESET_SYSTEM now always calls domain_shutdown.
machine_restart and machine_halt calls efi reset_system to do their job.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
This commit is contained in:
awilliam@xenbuild.aw committed 2006-06-15 09:51:58 -06:00
1 parent 7515eac375
commit 331da5acb2
7 files changed
+26 -38

No files matched your search

+2
View File
@@ -1010,6 +1010,7 @@ GLOBAL_ENTRY(ia64_delay_loop)
br.ret.sptk.many rp
END(ia64_delay_loop)
#ifndef XEN
/*
* Return a CPU-local timestamp in nano-seconds. This timestamp is
* NOT synchronized across CPUs its return value must never be
@@ -1062,6 +1063,7 @@ GLOBAL_ENTRY(start_kernel_thread)
br.call.sptk.many rp = sys_exit;;
1: br.sptk.few 1b // not reached
END(start_kernel_thread)
#endif /* XEN */
#ifdef CONFIG_IA64_BRL_EMU
-1
View File
@@ -64,7 +64,6 @@
#ifdef XEN
#include <xen/domain.h>
#include <asm/hw_irq.h>
int ht_per_core = 1;
#ifndef CONFIG_SMP
cpumask_t cpu_online_map = CPU_MASK_CPU0;
EXPORT_SYMBOL(cpu_online_map);
+8 -11
View File
@@ -891,22 +891,19 @@ int construct_dom0(struct domain *d,
void machine_restart(char * __unused)
{
if (running_on_sim) dummy();
printf("machine_restart called: spinning....\n");
if (running_on_sim)
printf ("machine_restart called. spinning...\n");
else
(*efi.reset_system)(EFI_RESET_WARM,0,0,NULL);
while(1);
}
void machine_halt(void)
{
if (running_on_sim) dummy();
printf("machine_halt called: spinning....\n");
while(1);
}
void dummy_called(char *function)
{
if (running_on_sim) asm("break 0;;");
printf("dummy called in %s: spinning....\n", function);
if (running_on_sim)
printf ("machine_halt called. spinning...\n");
else
(*efi.reset_system)(EFI_RESET_SHUTDOWN,0,0,NULL);
while(1);
}
+15 -7
View File
@@ -475,13 +475,21 @@ efi_emulator (struct pt_regs *regs, IA64FAULT *fault)
switch (regs->r2) {
case FW_HYPERCALL_EFI_RESET_SYSTEM:
printf("efi.reset_system called ");
if (current->domain == dom0) {
printf("(by dom0)\n ");
(*efi.reset_system)(EFI_RESET_WARM,0,0,NULL);
} else {
printf("\n");
domain_shutdown (current->domain, SHUTDOWN_reboot);
{
u8 reason;
unsigned long val = vcpu_get_gr(v,32);
switch (val)
{
case EFI_RESET_SHUTDOWN:
reason = SHUTDOWN_poweroff;
break;
case EFI_RESET_COLD:
case EFI_RESET_WARM:
default:
reason = SHUTDOWN_reboot;
break;
}
domain_shutdown (current->domain, reason);
}
status = EFI_UNSUPPORTED;
break;
+1 -1
View File
@@ -287,7 +287,7 @@ void init_all_rr(struct vcpu *v)
//rrv.rrval = v->domain->arch.metaphysical_rr0;
rrv.ps = PAGE_SHIFT;
rrv.ve = 1;
if (!v->vcpu_info) { printf("Stopping in init_all_rr\n"); dummy(); }
if (!v->vcpu_info) { panic("Stopping in init_all_rr\n"); }
VCPU(v,rrs[0]) = -1;
VCPU(v,rrs[1]) = rrv.rrval;
VCPU(v,rrs[2]) = rrv.rrval;
-12
View File
@@ -94,18 +94,6 @@ void console_print(char *msg)
printk("console_print called, how did start_kernel return???\n");
}
void kernel_thread_helper(void)
{
printk("kernel_thread_helper not implemented\n");
dummy();
}
void sys_exit(void)
{
printk("sys_exit not implemented\n");
dummy();
}
////////////////////////////////////
// called from unaligned.c
////////////////////////////////////
-6
View File
@@ -235,12 +235,6 @@ struct screen_info { };
#define seq_printf(a,b...) printf(b)
//#define CONFIG_BLK_DEV_INITRD // needed to reserve memory for domain0
void dummy_called(char *function);
#define dummy() dummy_called((char *) __FUNCTION__)
// these declarations got moved at some point, find a better place for them
extern int ht_per_core;
#ifdef CONFIG_XEN_IA64_DOM0_VP
#define CONFIG_SHADOW 1
#endif
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.