]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/commands/i386/cmostest.c: Add new command "cmosset".
authorVladimir Serbinenko <phcoder@gmail.com>
Sat, 9 Nov 2013 16:27:49 +0000 (17:27 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sat, 9 Nov 2013 16:27:49 +0000 (17:27 +0100)
Tested by: Denis 'GNUtoo' Carikli.

ChangeLog
grub-core/commands/i386/cmostest.c

index 4eb39b900f012b2c1a7d66459490f86a2bfa32ed..dfb1013c716620ad19a7db347ce6e568384a15a4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/commands/i386/cmostest.c: Add new command "cmosset".
+
+       Tested by: Denis 'GNUtoo' Carikli.
+
 2013-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/normal/datetime.c (grub_get_weekday): Use unsigned types.
index d2a184026f43ef6524d8d0e04c908f032cab5ce0..6f7271bf92d7f46101bb56580cb89abe696c746d 100644 (file)
@@ -81,7 +81,25 @@ grub_cmd_cmosclean (struct grub_command *cmd __attribute__ ((unused)),
   return grub_cmos_write (byte, value & (~(1 << bit)));
 }
 
-static grub_command_t cmd, cmd_clean;
+static grub_err_t
+grub_cmd_cmosset (struct grub_command *cmd __attribute__ ((unused)),
+                   int argc, char *argv[])
+{
+  int byte, bit;
+  grub_err_t err;
+  grub_uint8_t value;
+
+  err = parse_args (argc, argv, &byte, &bit);
+  if (err)
+    return err;
+  err = grub_cmos_read (byte, &value);
+  if (err)
+    return err;
+
+  return grub_cmos_write (byte, value | (1 << bit));
+}
+
+static grub_command_t cmd, cmd_clean, cmd_set;
 
 \f
 GRUB_MOD_INIT(cmostest)
@@ -92,10 +110,14 @@ GRUB_MOD_INIT(cmostest)
   cmd_clean = grub_register_command ("cmosclean", grub_cmd_cmosclean,
                                     N_("BYTE:BIT"),
                                     N_("Clean bit at BYTE:BIT in CMOS."));
+  cmd_set = grub_register_command ("cmosset", grub_cmd_cmosset,
+                                  N_("BYTE:BIT"),
+                                  N_("Set bit at BYTE:BIT in CMOS."));
 }
 
 GRUB_MOD_FINI(cmostest)
 {
   grub_unregister_command (cmd);
   grub_unregister_command (cmd_clean);
+  grub_unregister_command (cmd_set);
 }