[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [PATCH v3 43/43] mini-os: refactor the shutdown
The start_info_t is only defined when XEN_HAVE_PV_GUEST_ENTRY is is true. But the arm does not support XEN_HAVE_PV_GUEST_ENTRY. It brings compiler errors when compiling the minios for arm64. This patch does some refactor to the shutdown code: 1.) change the parameter to "void *" for init_shutdown() 2.) Use XEN_HAVE_PV_GUEST_ENTRY macro to guard the kernel_suspend()/start_info_ptr. Signed-off-by: Huang Shijie <shijie.huang@xxxxxxx> --- arch/arm/setup.c | 2 +- include/shutdown.h | 2 +- kernel.c | 2 +- shutdown.c | 20 ++++++++++++++++---- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/arch/arm/setup.c b/arch/arm/setup.c index ab82eda..8e48f73 100644 --- a/arch/arm/setup.c +++ b/arch/arm/setup.c @@ -48,7 +48,7 @@ void arch_init(void *dtb_pointer, paddr_t physical_offset) gic_init(); - start_kernel(); + start_kernel(NULL); } void diff --git a/include/shutdown.h b/include/shutdown.h index 88993cb..816e66d 100644 --- a/include/shutdown.h +++ b/include/shutdown.h @@ -3,7 +3,7 @@ #include <mini-os/hypervisor.h> -void init_shutdown(start_info_t *si); +void init_shutdown(void *si); void fini_shutdown(void); void kernel_suspend(void); diff --git a/kernel.c b/kernel.c index 301273d..ab6ca82 100644 --- a/kernel.c +++ b/kernel.c @@ -107,7 +107,7 @@ void start_kernel(void* par) #ifdef CONFIG_XENBUS /* Init shutdown thread */ - init_shutdown((start_info_t *)par); + init_shutdown(par); #endif /* Call (possibly overridden) app_main() */ diff --git a/shutdown.c b/shutdown.c index c7c92cb..81d89fd 100644 --- a/shutdown.c +++ b/shutdown.c @@ -46,7 +46,6 @@ #include <mini-os/xmalloc.h> -static start_info_t *start_info_ptr; #ifdef CONFIG_XENBUS static const char *path = "control/shutdown"; @@ -111,9 +110,15 @@ static void shutdown_thread(void *p) } } -void init_shutdown(start_info_t *si) +#ifdef XEN_HAVE_PV_GUEST_ENTRY +static start_info_t *start_info_ptr; +#endif + +void init_shutdown(void *si) { - start_info_ptr = si; +#ifdef XEN_HAVE_PV_GUEST_ENTRY + start_info_ptr = (start_info_t *)si; +#endif end_shutdown_thread = 0; create_thread("shutdown", shutdown_thread, NULL); @@ -131,8 +136,8 @@ void fini_shutdown(void) do_exit(); } } -#endif +#ifdef XEN_HAVE_PV_GUEST_ENTRY void kernel_suspend(void) { int rc; @@ -157,3 +162,10 @@ void kernel_suspend(void) printk("MiniOS resumed from suspend!\n"); } } +#else +void kernel_suspend(void) +{ +} +#endif + +#endif -- 2.7.4 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |