hdt: Adding vesa mode switching under CLI
authorErwan Velu <erwan.velu@free.fr>
Thu, 26 Nov 2009 20:41:26 +0000 (21:41 +0100)
committerErwan Velu <erwan.velu@free.fr>
Fri, 4 Dec 2009 09:11:13 +0000 (10:11 +0100)
Impact: its now possible to switch the vesa mode

Users can use vesa>enable to switch to vesa mode or
vesa>disable to switch to console mode

com32/hdt/hdt-cli-vesa.c
com32/hdt/hdt-cli.h

index e4032ea..a4a80fa 100644 (file)
@@ -80,6 +80,22 @@ static void show_vesa_modes(int argc __unused, char **argv __unused,
     }
 }
 
+static void enable_vesa(int argc __unused, char **argv __unused,
+                       struct s_hardware *hardware)
+{
+    vesamode = true;
+    max_console_lines = MAX_VESA_CLI_LINES;
+    init_console(hardware);
+}
+
+static void disable_vesa(int argc __unused, char **argv __unused,
+                        struct s_hardware *hardware)
+{
+    vesamode = false;
+    max_console_lines = MAX_CLI_LINES;
+    init_console(hardware);
+}
+
 struct cli_callback_descr list_vesa_show_modules[] = {
     {
      .name = CLI_MODES,
@@ -91,15 +107,36 @@ struct cli_callback_descr list_vesa_show_modules[] = {
      },
 };
 
+struct cli_callback_descr list_vesa_commands[] = {
+    {
+     .name = CLI_ENABLE,
+     .exec = enable_vesa,
+     },
+    {
+     .name = CLI_DISABLE,
+     .exec = disable_vesa,
+     },
+
+    {
+     .name = NULL,
+     .exec = NULL,
+     },
+};
+
 struct cli_module_descr vesa_show_modules = {
     .modules = list_vesa_show_modules,
     .default_callback = main_show_vesa,
 };
 
+struct cli_module_descr vesa_commands = {
+    .modules = list_vesa_commands,
+    .default_callback = enable_vesa,
+};
+
 struct cli_mode_descr vesa_mode = {
     .mode = VESA_MODE,
     .name = CLI_VESA,
-    .default_modules = NULL,
+    .default_modules = &vesa_commands,
     .show_modules = &vesa_show_modules,
     .set_modules = NULL,
 };
index 7d8a026..26fbc20 100644 (file)
@@ -68,6 +68,8 @@
 #define CLI_MODES "modes"
 #define CLI_VPD  "vpd"
 #define CLI_MEMORY  "memory"
+#define CLI_ENABLE "enable"
+#define CLI_DISABLE "disable"
 
 typedef enum {
     INVALID_MODE,