watchdog: Move watchdog from being x86 specific to common code

Augment watchdog_setup() to be able to possibly return an error, and introduce
watchdog_enabled() as a better alternative to knowing the architectures
internal details.

This patch does not change the x86 implementaion, beyond making it compile.

For header files, some includes of xen/nmi.h were only for the watchdog
functions, so are replaced rather than adding an extra include of
xen/watchdog.h

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
This commit is contained in:
Andrew Cooper authored and Jan Beulich committed 2013-08-13 14:29:00 +02:00
1 parent 910daaf5aa
commit c8177e691f
12 files changed
+51 -10

No files matched your search

+7 -1
View File
@@ -410,7 +410,12 @@ void watchdog_enable(void)
atomic_dec(&watchdog_disable_count);
}
void __init watchdog_setup(void)
bool_t watchdog_enabled(void)
{
return !atomic_read(&watchdog_disable_count);
}
int __init watchdog_setup(void)
{
unsigned int cpu;
@@ -423,6 +428,7 @@ void __init watchdog_setup(void)
register_cpu_notifier(&cpu_nmi_nfb);
watchdog_enable();
return 0;
}
void nmi_watchdog_tick(struct cpu_user_regs * regs)
+1
View File
@@ -26,6 +26,7 @@
#include <xen/pfn.h>
#include <xen/nodemask.h>
#include <xen/tmem_xen.h> /* for opt_tmem only */
#include <xen/watchdog.h>
#include <public/version.h>
#include <compat/platform.h>
#include <compat/xen.h>
+1 -1
View File
@@ -12,7 +12,7 @@
#include <xen/delay.h>
#include <xen/dmi.h>
#include <xen/irq.h>
#include <xen/nmi.h>
#include <xen/watchdog.h>
#include <xen/console.h>
#include <xen/shutdown.h>
#include <xen/acpi.h>
+1
View File
@@ -49,6 +49,7 @@
#include <xen/kexec.h>
#include <xen/trace.h>
#include <xen/paging.h>
#include <xen/watchdog.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/atomic.h>
+1
View File
@@ -13,6 +13,7 @@
#include <xen/shutdown.h>
#include <xen/nmi.h>
#include <xen/guest_access.h>
#include <xen/watchdog.h>
#include <asm/current.h>
#include <asm/flushtlb.h>
#include <asm/traps.h>
+1 -1
View File
@@ -12,7 +12,7 @@
#include <xen/ctype.h>
#include <xen/errno.h>
#include <xen/guest_access.h>
#include <xen/nmi.h>
#include <xen/watchdog.h>
#include <xen/sched.h>
#include <xen/types.h>
#include <xen/hypercall.h>
+1 -1
View File
@@ -16,7 +16,7 @@
#include <xen/ctype.h>
#include <xen/perfc.h>
#include <xen/mm.h>
#include <xen/nmi.h>
#include <xen/watchdog.h>
#include <xen/init.h>
#include <asm/debugger.h>
#include <asm/div64.h>
+1 -1
View File
@@ -4,7 +4,7 @@
#include <xen/sched.h>
#include <xen/domain.h>
#include <xen/delay.h>
#include <xen/nmi.h>
#include <xen/watchdog.h>
#include <xen/shutdown.h>
#include <xen/console.h>
#ifdef CONFIG_KEXEC
+1 -1
View File
@@ -20,7 +20,7 @@
#include <xen/keyhandler.h>
#include <xen/delay.h>
#include <xen/guest_access.h>
#include <xen/nmi.h>
#include <xen/watchdog.h>
#include <xen/shutdown.h>
#include <xen/video.h>
#include <xen/kexec.h>
+1
View File
@@ -49,6 +49,7 @@
#define CONFIG_XENOPROF 1
#define CONFIG_KEXEC 1
#define CONFIG_WATCHDOG 1
#define HZ 100
-4
View File
@@ -41,8 +41,4 @@ long register_guest_nmi_callback(unsigned long address);
*/
long unregister_guest_nmi_callback(void);
void watchdog_disable(void);
void watchdog_enable(void);
void watchdog_setup(void);
#endif /* ASM_NMI_H */
+35
View File
@@ -0,0 +1,35 @@
/******************************************************************************
* watchdog.h
*
* Common watchdog code
*/
#ifndef __XEN_WATCHDOG_H__
#define __XEN_WATCHDOG_H__
#include <xen/types.h>
#ifdef CONFIG_WATCHDOG
/* Try to set up a watchdog. */
int watchdog_setup(void);
/* Enable the watchdog. */
void watchdog_enable(void);
/* Disable the watchdog. */
void watchdog_disable(void);
/* Is the watchdog currently enabled. */
bool_t watchdog_enabled(void);
#else
#define watchdog_setup() ((void)0)
#define watchdog_enable() ((void)0)
#define watchdog_disable() ((void)0)
#define watchdog_enabled() ((void)0)
#endif
#endif /* __XEN_WATCHDOG_H__ */
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.