* fg_console is the current virtual console,
* last_console is the last used one,
* want_console is the console we want to switch to,
- * saved_* variants are for save/restore around kernel debugger enter/leave
*/
int fg_console;
EXPORT_SYMBOL(fg_console);
int last_console;
int want_console = -1;
-static int saved_fg_console;
-static int saved_last_console;
-static int saved_want_console;
-static int saved_vc_mode;
-static int saved_console_blanked;
-
/*
* For each existing display, we have a pointer to console currently visible
* on that display, allowing consoles other than fg_console to be refreshed
*/
void con_debug_enter(struct vc_data *vc)
{
- saved_fg_console = fg_console;
- saved_last_console = last_console;
- saved_want_console = want_console;
- saved_vc_mode = vc->vc_mode;
- saved_console_blanked = console_blanked;
- vc->vc_mode = KD_TEXT;
- console_blanked = 0;
- if (vc->vc_sw->con_debug_enter)
- vc->vc_sw->con_debug_enter(vc);
#ifdef CONFIG_KGDB_KDB
/* Set the initial LINES variable if it is not already set */
if (vc->vc_rows < 999) {
* was invoked.
*/
void con_debug_leave(void)
-{
- struct vc_data *vc;
-
- fg_console = saved_fg_console;
- last_console = saved_last_console;
- want_console = saved_want_console;
- console_blanked = saved_console_blanked;
- vc_cons[fg_console].d->vc_mode = saved_vc_mode;
-
- vc = vc_cons[fg_console].d;
- if (vc->vc_sw->con_debug_leave)
- vc->vc_sw->con_debug_leave(vc);
-}
+{ }
EXPORT_SYMBOL_GPL(con_debug_leave);
static int do_register_con_driver(const struct consw *csw, int first, int last)
* characters. (optional)
* @con_invert_region: invert a region of length @count on @vc starting at @p.
* (optional)
- * @con_debug_enter: prepare the console for the debugger. This includes, but
- * is not limited to, unblanking the console, loading an
- * appropriate palette, and allowing debugger generated output.
- * (optional)
- * @con_debug_leave: restore the console to its pre-debug state as closely as
- * possible. (optional)
*/
struct consw {
struct module *owner;
enum vc_intensity intensity,
bool blink, bool underline, bool reverse, bool italic);
void (*con_invert_region)(struct vc_data *vc, u16 *p, int count);
- void (*con_debug_enter)(struct vc_data *vc);
- void (*con_debug_leave)(struct vc_data *vc);
};
extern const struct consw *conswitchp;