Print this page
eeprom

@@ -298,45 +298,45 @@
                 eeprom_error(EXEC_FAIL, cmdline, ret);
                 return (-1);
         }
 }
 
-#define BOOTADM_STR     "bootadm: "
+#define GRUBADM_STR     "grubadm: "
 
 /*
- * bootadm starts all error messages with "bootadm: ".
- * Add a note so users don't get confused on how they ran bootadm.
+ * grubadm starts all error messages with "grubadm: ".
+ * Add a note so users don't get confused on how they ran grubadm.
  */
 static void
 output_error_msg(const char *msg)
 {
-        size_t len = sizeof (BOOTADM_STR) - 1;
+        size_t len = sizeof (GRUBADM_STR) - 1;
 
-        if (strncmp(msg, BOOTADM_STR, len) == 0) {
+        if (strncmp(msg, GRUBADM_STR, len) == 0) {
                 eeprom_error("error returned from %s\n", msg);
         } else if (msg[0] != '\0') {
                 eeprom_error("%s\n", msg);
         }
 }
 
 static char *
-get_bootadm_value(char *name, const int quiet)
+get_grubadm_value(char *name, const int quiet)
 {
         char *ptr, *ret_str, *end_ptr, *orig_ptr;
         char output[BUFSIZ];
         int is_console, is_kernel = 0;
         size_t len;
 
         is_console = (strcmp(name, "console") == 0);
 
         if (strcmp(name, "boot-file") == 0) {
                 is_kernel = 1;
-                ptr = "/sbin/bootadm set-menu kernel 2>&1";
+                ptr = "/sbin/grubadm --number -1 --get-kernel 2>&1";
         } else if (is_console || (strcmp(name, "boot-args") == 0)) {
-                ptr = "/sbin/bootadm set-menu args 2>&1";
+                ptr = "/sbin/grubadm --number -1 --get-opts 2>&1";
         } else {
-                eeprom_error("Unknown value in get_bootadm_value: %s\n", name);
+                eeprom_error("Unknown value in get_grubadm_value: %s\n", name);
                 return (NULL);
         }
 
         if (exec_cmd(ptr, output, BUFSIZ) != 0) {
                 if (quiet == 0) {

@@ -415,14 +415,14 @@
 /*
  * If quiet is 1, print nothing if there is no value.  If quiet is 0, print
  * a message.  Return 1 if the value is printed, 0 otherwise.
  */
 static int
-print_bootadm_value(char *name, const int quiet)
+print_grubadm_value(char *name, const int quiet)
 {
         int rv = 0;
-        char *value = get_bootadm_value(name, quiet);
+        char *value = get_grubadm_value(name, quiet);
 
         if ((value != NULL) && (value[0] != '\0')) {
                 (void) printf("%s=%s\n", name, value);
                 rv = 1;
         } else if (quiet == 0) {

@@ -443,11 +443,11 @@
         /*
          * The console property is kept in both menu.lst and bootenv.rc.  The
          * menu.lst value takes precedence.
          */
         if (strcmp(name, "console") == 0) {
-                if (print_bootadm_value(name, 1) == 0) {
+                if (print_grubadm_value(name, 1) == 0) {
                         if ((p = get_var(name, list)) != NULL) {
                                 (void) printf("%s=%s\n", name, p->val ?
                                     p->val : "");
                         } else {
                                 (void) printf("%s: data not available.\n",

@@ -457,11 +457,11 @@
         } else if (strcmp(name, "bootcmd") == 0) {
                 bootcmd = getbootcmd();
                 (void) printf("%s=%s\n", name, bootcmd ? bootcmd : "");
         } else if ((strcmp(name, "boot-file") == 0) ||
             (strcmp(name, "boot-args") == 0)) {
-                (void) print_bootadm_value(name, 0);
+                (void) print_grubadm_value(name, 0);
         } else if ((p = get_var(name, list)) == NULL) {
                 (void) printf("%s: data not available.\n", name);
         } else {
                 (void) printf("%s=%s\n", name, p->val ? p->val : "");
         }

@@ -477,11 +477,11 @@
         /*
          * The console property is kept both in menu.lst and bootenv.rc.
          * The menu.lst value takes precedence, so try printing that one
          * first.
          */
-        console_printed = print_bootadm_value("console", 1);
+        console_printed = print_grubadm_value("console", 1);
 
         for (e = list->next; e != list; e = e->next) {
                 p = (benv_ent_t *)e->item;
                 if (p->name != NULL) {
                         if (((strcmp(p->name, "console") == 0) &&

@@ -492,12 +492,12 @@
                                 continue;
                         }
                         (void) printf("%s=%s\n", p->name, p->val ? p->val : "");
                 }
         }
-        (void) print_bootadm_value("boot-file", 1);
-        (void) print_bootadm_value("boot-args", 1);
+        (void) print_grubadm_value("boot-file", 1);
+        (void) print_grubadm_value("boot-args", 1);
 }
 
 /*
  * Write a string to a file, quoted appropriately.  We use single
  * quotes to prevent any variable expansion.  Of course, we backslash-quote

@@ -521,20 +521,20 @@
         }
         (void) putc('\'', fp);
 }
 
 static void
-set_bootadm_var(char *name, char *value)
+set_grubadm_var(char *name, char *value)
 {
         char buf[BUFSIZ];
         char output[BUFSIZ] = "";
         char *console, *args;
         int is_console;
 
         if (verbose) {
                 (void) printf("old:");
-                (void) print_bootadm_value(name, 0);
+                (void) print_grubadm_value(name, 0);
         }
 
         /*
          * For security, we single-quote whatever we run on the command line,
          * and we don't allow single quotes in the string.

@@ -545,53 +545,53 @@
                 return;
         }
 
         is_console = (strcmp(name, "console") == 0);
         if (strcmp(name, "boot-file") == 0) {
-                (void) snprintf(buf, BUFSIZ, "/sbin/bootadm set-menu "
-                    "kernel='%s' 2>&1", value);
+                (void) snprintf(buf, BUFSIZ, "/sbin/grubadm --number -1 "
+                    "--set-kernel '%s' 2>&1", value);
         } else if (is_console || (strcmp(name, "boot-args") == 0)) {
                 if (is_console) {
-                        args = get_bootadm_value("boot-args", 1);
+                        args = get_grubadm_value("boot-args", 1);
                         console = value;
                 } else {
                         args = value;
-                        console = get_bootadm_value("console", 1);
+                        console = get_grubadm_value("console", 1);
                 }
                 if (((args == NULL) || (args[0] == '\0')) &&
                     ((console == NULL) || (console[0] == '\0'))) {
-                        (void) snprintf(buf, BUFSIZ, "/sbin/bootadm set-menu "
-                            "args= 2>&1");
+                        (void) snprintf(buf, BUFSIZ, "/sbin/grubadm --number -1 "
+                            "--set-opts '-B $ZFS_BOOTFS' 2>&1");
                 } else if ((args == NULL) || (args[0] == '\0')) {
-                        (void) snprintf(buf, BUFSIZ, "/sbin/bootadm "
-                            "set-menu args='-B console=%s' 2>&1",
+                        (void) snprintf(buf, BUFSIZ, "/sbin/grubadm --number -1 "
+                            "--set-opts '-B console=%s' 2>&1",
                             console);
                 } else if ((console == NULL) || (console[0] == '\0')) {
-                        (void) snprintf(buf, BUFSIZ, "/sbin/bootadm "
-                            "set-menu args='%s' 2>&1", args);
+                        (void) snprintf(buf, BUFSIZ, "/sbin/grubadm --number -1 "
+                            "--set-opts '%s' 2>&1", args);
                 } else if (strncmp(args, "-B ", 3) != 0) {
-                        (void) snprintf(buf, BUFSIZ, "/sbin/bootadm "
-                            "set-menu args='-B console=%s %s' 2>&1",
+                        (void) snprintf(buf, BUFSIZ, "/sbin/grubadm --number -1 "
+                            "--set-opts '-B console=%s %s' 2>&1",
                             console, args);
                 } else {
-                        (void) snprintf(buf, BUFSIZ, "/sbin/bootadm "
-                            "set-menu args='-B console=%s,%s' 2>&1",
+                        (void) snprintf(buf, BUFSIZ, "/sbin/grubadm --number -1 "
+                            "--set-opts '-B console=%s,%s' 2>&1",
                             console, args + 3);
                 }
         } else {
-                eeprom_error("Unknown value in set_bootadm_value: %s\n", name);
+                eeprom_error("Unknown value in set_grubadm_value: %s\n", name);
                 return;
         }
 
         if (exec_cmd(buf, output, BUFSIZ) != 0) {
                 output_error_msg(output);
                 return;
         }
 
         if (verbose) {
                 (void) printf("new:");
-                (void) print_bootadm_value(name, 0);
+                (void) print_grubadm_value(name, 0);
         }
 }
 
 /*
  * Returns 1 if bootenv.rc was modified, 0 otherwise.

@@ -605,22 +605,22 @@
         if (strcmp(name, "bootcmd") == 0)
                 return (0);
 
         if ((strcmp(name, "boot-file") == 0) ||
             (strcmp(name, "boot-args") == 0)) {
-                set_bootadm_var(name, val);
+                set_grubadm_var(name, val);
                 return (0);
         }
 
         /*
          * The console property is kept in two places: menu.lst and bootenv.rc.
          * Update them both.  We clear verbose to prevent duplicate messages.
          */
         if (strcmp(name, "console") == 0) {
                 old_verbose = verbose;
                 verbose = 0;
-                set_bootadm_var(name, val);
+                set_grubadm_var(name, val);
                 verbose = old_verbose;
         }
 
         if (verbose) {
                 (void) printf("old:");