diff --git a/hypervisor/debug/console.c b/hypervisor/debug/console.c index d959baea0..080475c99 100644 --- a/hypervisor/debug/console.c +++ b/hypervisor/debug/console.c @@ -10,6 +10,7 @@ static spinlock_t lock; static uint32_t serial_handle = SERIAL_INVALID_HANDLE; +struct timer console_timer; #define CONSOLE_KICK_TIMER_TIMEOUT 40 /* timeout is 40ms*/ @@ -198,7 +199,6 @@ static int console_timer_callback(__unused void *data) void console_setup_timer(void) { - static struct timer console_timer; uint64_t period_in_cycle, fire_tsc; if (serial_handle == SERIAL_INVALID_HANDLE) { diff --git a/hypervisor/include/debug/console.h b/hypervisor/include/debug/console.h index 715511a2c..f6ca6b82e 100644 --- a/hypervisor/include/debug/console.h +++ b/hypervisor/include/debug/console.h @@ -8,6 +8,8 @@ #define CONSOLE_H #ifdef HV_DEBUG +extern struct timer console_timer; + /** Initializes the console module. * * @param cdev A pointer to the character device to use for the console. @@ -62,6 +64,17 @@ void console_dump_bytes(const void *p, unsigned int len); void console_setup_timer(void); uint32_t get_serial_handle(void); + +static inline void suspend_console(void) +{ + del_timer(&console_timer); +} + +static inline void resume_console_enable(void) +{ + console_setup_timer(); +} + #else static inline int console_init(void) { @@ -86,6 +99,9 @@ static inline void console_dump_bytes(__unused const void *p, } static inline void console_setup_timer(void) {} static inline uint32_t get_serial_handle(void) { return 0; } + +void suspend_console(void) {} +void resume_console_enable(void) {} #endif #endif /* CONSOLE_H */