(set_env_limn_ro): Likewise.
(GRUB_MOD_INIT): Likewise.
* grub-core/hook/datehook.c (GRUB_MOD_INIT): Likewise. Change to
ARRAY_SIZE while on it.
(GRUB_MOD_FINI): Change to ARRAY_SIZE.
* grub-core/normal/context.c (grub_env_export): Move from here ...
* grub-core/kern/env.c (grub_env_export): ... here.
* grub-core/normal/context.c (grub_cmd_export): Skip exporting root and
prefix.
* grub-core/kern/main.c (grub_main): Export root and prefix.
* include/grub/env.h (grub_env_export): Export.
Reported by: Seth Goldberg.
+2011-01-11 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/fs/i386/pc/pxe.c (set_mac_env): Export variable.
+ (set_env_limn_ro): Likewise.
+ (GRUB_MOD_INIT): Likewise.
+ * grub-core/hook/datehook.c (GRUB_MOD_INIT): Likewise. Change to
+ ARRAY_SIZE while on it.
+ (GRUB_MOD_FINI): Change to ARRAY_SIZE.
+ * grub-core/normal/context.c (grub_env_export): Move from here ...
+ * grub-core/kern/env.c (grub_env_export): ... here.
+ * grub-core/normal/context.c (grub_cmd_export): Skip exporting root and
+ prefix.
+ * grub-core/kern/main.c (grub_main): Export root and prefix.
+ * include/grub/env.h (grub_env_export): Export.
+ Reported by: Seth Goldberg.
+
2011-01-11 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_make_mbi):
grub_env_set ("net_pxe_mac", buf);
/* XXX: Is it possible to change MAC in PXE? */
grub_register_variable_hook ("net_pxe_mac", 0, grub_env_write_readonly);
+ grub_env_export ("net_pxe_mac");
}
static void
grub_env_set (varname, value);
value[len] = c;
grub_register_variable_hook (varname, 0, grub_env_write_readonly);
+ grub_env_export (varname);
}
static void
grub_env_write_pxe_default_server);
grub_register_variable_hook ("pxe_default_gateway", 0,
grub_env_write_pxe_default_gateway);
+
/* XXX: Is it possible to change IP in PXE? */
grub_register_variable_hook ("net_pxe_ip", 0,
grub_env_write_readonly);
grub_register_variable_hook ("pxe_blksize", 0,
grub_env_write_pxe_blocksize);
+
+ grub_env_export ("pxe_default_server");
+ grub_env_export ("pxe_default_gateway");
+ grub_env_export ("net_pxe_ip");
+ grub_env_export ("pxe_blksize");
+
grub_disk_dev_register (&grub_pxe_dev);
grub_fs_register (&grub_pxefs_fs);
}
GRUB_MOD_INIT(datehook)
{
- int i;
+ unsigned i;
- for (i = 0; i < 7; i++)
- grub_register_variable_hook (grub_datetime_names[i],
- grub_read_hook_datetime, 0);
+ for (i = 0; i < ARRAY_SIZE (grub_datetime_names); i++)
+ {
+ grub_register_variable_hook (grub_datetime_names[i],
+ grub_read_hook_datetime, 0);
+ grub_env_export (grub_datetime_names[i]);
+ }
}
GRUB_MOD_FINI(datehook)
{
- int i;
+ unsigned i;
- for (i = 0; i < 7; i++)
+ for (i = 0; i < ARRAY_SIZE (grub_datetime_names); i++)
{
grub_register_variable_hook (grub_datetime_names[i], 0, 0);
grub_env_unset (grub_datetime_names[i]);
return GRUB_ERR_NONE;
}
+
+grub_err_t
+grub_env_export (const char *name)
+{
+ struct grub_env_var *var;
+
+ var = grub_env_find (name);
+ if (! var)
+ {
+ grub_err_t err;
+
+ err = grub_env_set (name, "");
+ if (err)
+ return err;
+ var = grub_env_find (name);
+ }
+ var->global = 1;
+
+ return GRUB_ERR_NONE;
+}
for convenience. */
grub_machine_set_prefix ();
grub_set_root_dev ();
+ grub_env_export ("root");
+ grub_env_export ("prefix");
grub_register_core_commands ();
return err;
}
-grub_err_t
-grub_env_export (const char *name)
-{
- struct grub_env_var *var;
-
- var = grub_env_find (name);
- if (! var)
- {
- grub_err_t err;
-
- err = grub_env_set (name, "");
- if (err)
- return err;
- var = grub_env_find (name);
- }
- var->global = 1;
-
- return GRUB_ERR_NONE;
-}
-
static grub_command_t export_cmd;
static grub_err_t
void
grub_context_init (void)
{
- grub_env_export ("root");
- grub_env_export ("prefix");
-
export_cmd = grub_register_command ("export", grub_cmd_export,
N_("ENVVAR [ENVVAR] ..."),
N_("Export variables."));
grub_err_t grub_env_context_open (void);
grub_err_t grub_env_context_close (void);
-grub_err_t grub_env_export (const char *name);
+grub_err_t EXPORT_FUNC(grub_env_export) (const char *name);
void grub_env_unset_menu (void);
grub_menu_t grub_env_get_menu (void);