console: cleanup - move private declarations into a separate (private) header - don't include unneeded headers - declare xprintk() - move resume-only code from xencons_ring_init() into xencons_resume() Signed-off-by: Jan Beulich --- a/drivers/xen/console/console.c +++ b/drivers/xen/console/console.c @@ -30,7 +30,6 @@ * IN THE SOFTWARE. */ -#include #include #include #include @@ -40,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -50,15 +48,9 @@ #include #include #include -#include -#include -#include #include #include -#include -#include -#include -#include +#include "xencons.h" /* * Modes: @@ -252,7 +244,7 @@ static int __init xen_console_init(void) console_initcall(xen_console_init); /*** Useful function for console debugging -- goes straight to Xen. ***/ -asmlinkage int xprintk(const char *fmt, ...) +int xprintk(const char *fmt, ...) { va_list args; int printk_len; --- /dev/null +++ a/drivers/xen/console/xencons.h @@ -0,0 +1,12 @@ +#include +#include + +void xencons_force_flush(void); + +/* Interrupt work hooks. Receive data, or kick data out. */ +struct pt_regs; +void xencons_rx(char *buf, unsigned len, struct pt_regs *); +void xencons_tx(void); + +int xencons_ring_init(void); +int xencons_ring_send(const char *data, unsigned len); --- a/drivers/xen/console/xencons_ring.c +++ b/drivers/xen/console/xencons_ring.c @@ -24,29 +24,10 @@ * IN THE SOFTWARE. */ -#include -#include #include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include #include +#include "xencons.h" static int xencons_irq; @@ -112,13 +93,7 @@ int xencons_ring_init(void) { int irq; - if (xencons_irq) - unbind_from_irqhandler(xencons_irq, NULL); - xencons_irq = 0; - - if (!is_running_on_xen() || - is_initial_xendomain() || - !xen_start_info->console.domU.evtchn) + if (!xen_start_info->console.domU.evtchn) return -ENODEV; irq = bind_caller_port_to_irqhandler( @@ -131,13 +106,18 @@ int xencons_ring_init(void) xencons_irq = irq; - /* In case we have in-flight data after save/restore... */ - notify_daemon(); - return 0; } void xencons_resume(void) { - (void)xencons_ring_init(); + if (xencons_irq) + unbind_from_irqhandler(xencons_irq, NULL); + xencons_irq = 0; + + if (is_running_on_xen() && !is_initial_xendomain()) + xencons_ring_init(); + + /* In case we have in-flight data after save/restore... */ + notify_daemon(); } --- a/include/xen/xencons.h +++ b/include/xen/xencons.h @@ -1,17 +1,12 @@ #ifndef __ASM_XENCONS_H__ #define __ASM_XENCONS_H__ +int xprintk(const char *, ...) __attribute__ ((__format__(__printf__, 1, 2))); + struct dom0_vga_console_info; void dom0_init_screen_info(const struct dom0_vga_console_info *, size_t); void xencons_force_flush(void); void xencons_resume(void); -/* Interrupt work hooks. Receive data, or kick data out. */ -void xencons_rx(char *buf, unsigned len, struct pt_regs *regs); -void xencons_tx(void); - -int xencons_ring_init(void); -int xencons_ring_send(const char *data, unsigned len); - #endif /* __ASM_XENCONS_H__ */