1
2009-12-20 Vladimir Serbinenko <phcoder@gmail.com>
3
Move context handling out of the kernel.
5
* conf/any-emu.rmk (grub_emu_SOURCES): Add normal/context.c.
6
* conf/common.rmk (normal_mod_SOURCES): Add normal/context.c.
7
* conf/i386-coreboot.rmk (kernel_img_HEADERS): Add env_private.h.
8
* conf/i386-efi.rmk: Likewise.
9
* conf/i386-ieee1275.rmk: Likewise.
10
* conf/i386-pc.rmk: Likewise.
11
* conf/powerpc-ieee1275.rmk: Likewise.
12
* conf/sparc64-ieee1275.rmk: Likewise.
13
* conf/x86_64-efi.rmk: Likewise.
14
* include/grub/env.h: Include grub/menu.h.
15
(grub_env_var_type): Removed.
16
(grub_env_var): Replaced field 'type' with 'global'.
17
(grub_env_find): New prototype.
18
(grub_env_context_open): Remove EXPORT_FUNC.
19
(grub_env_context_close): Likewise.
20
(grub_env_export): Likewise.
21
(grub_env_set_data_slot): Removed.
22
(grub_env_get_data_slot): Likewise.
23
(grub_env_unset_data_slot): Likewise.
24
(grub_env_unset_menu): New prototype.
25
(grub_env_set_menu): Likewise.
26
(grub_env_get_menu): Likewise.
27
* include/grub/env_private.h: New file.
28
* include/grub/normal.h (grub_context_init): New prototype.
29
(grub_context_fini): Likewise.
30
* kern/corecmd.c (grub_core_cmd_export): Moved from here ...
31
* normal/context.c (grub_cmd_export): ... to here.
32
* kern/env.c: Include env_private.h.
33
(HASHSZ): Moved to include/grub/env_private.h.
34
(grub_env_context): Likewise.
35
(grub_env_sorted_var): Likewise.
36
(current_context): Renamed from this ...
37
(grub_current_context): ...to this. 'static' removed. All users updated.
38
(grub_env_find): Removed 'static'.
39
(grub_env_context_open): Moved to normal/context.c.
40
(grub_env_context_close): Likewise.
41
(grub_env_export): Likewise.
42
(mangle_data_slot_name): Removed.
43
(grub_env_set_data_slot): Likewise.
44
(grub_env_get_data_slot): Likewise.
45
(grub_env_unset_data_slot): Likewise.
46
* kern/main.c (grub_set_root_dev): Don't export root.
47
It will be done later.
48
(grub_main): Don't export prefix.
49
It will be done later.
50
* normal/context.c: New file.
51
* normal/main.c (free_menu): Use grub_env_unset_menu.
52
(grub_normal_add_menu_entry): Use grub_env_get_menu.
53
(read_config_file): Use grub_env_get_menu and grub_env_set_menu.
54
(GRUB_MOD_INIT(normal)): Call grub_context_init.
55
(GRUB_MOD_FINI(normal)): Call grub_context_fini.