1
2010-07-05 Colin Watson <cjwatson@ubuntu.com>
3
* Makefile.in (MAINTAINER_CLEANFILES): Add unicode/UnicodeData.txt,
4
unicode/BidiMirroring.txt, unicode/ArabicShaping.txt, and unidata.c.
6
2010-07-05 Colin Watson <cjwatson@ubuntu.com>
8
* util/i386/pc/grub-setup.c (setup): Rename prefix to
9
install_prefix, in line with install_dos_part and install_bsd_part.
10
Add new prefix variable, which is copied to install_prefix after
11
comparing core.img in memory with the one read from disk in the
12
no-embedding case, and use that rather than overwriting
13
install_prefix immediately when installing to a partition.
14
Fixes Debian bug #586621; based on patches by Matt Kraai and M. Vefa
17
2010-07-04 Grégoire Sutre <gregoire.sutre@gmail.com>
19
* configure.ac: Avoid == in test command, it's not portable.
20
* util/grub.d/30_os-prober.in: Likewise.
22
2010-07-04 Colin Watson <cjwatson@ubuntu.com>
24
* kern/emu/getroot.c [__GNU__]: Include <sys/mman.h> for munmap.
26
2010-07-04 Grégoire Sutre <gregoire.sutre@gmail.com>
28
* util/i386/pc/grub-setup.c (setup): Do not embed when there are
29
multiple (top-level) partmaps.
31
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
33
* util/i386/efi/grub-install.in: Don't use empty grub_device.
34
Reported by: Tino Keitel.
36
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
38
Bidi and diacritics support.
40
* Makefile.in (widthspec.bin): New target.
41
(widthspec.h): Likewise.
42
(TARGET_CFLAGS): Add -DHAVE_UNIFONT_WIDTHSPEC=1 if font was available.
43
* autogen.sh: Generate unidata.c.
44
* commands/cat.c (grub_cmd_cat): Don't use grub_putchar.
45
* commands/ls.c (grub_ls_list_devices): Likewise.
46
(grub_ls_list_files): Likewise.
47
* commands/minicmd.c (grub_mini_cmd_cat): Likewise.
48
(grub_mini_cmd_lsmod): Likewise.
49
* commands/read.c: Likewise.
50
* kern/corecmd.c (grub_core_cmd_ls): Likewise.
51
* kern/rescue_reader.c (grub_rescue_read_line): Likewise.
52
* lib/arg.c (grub_arg_show_help): Likewise.
53
* lib/crypto.c (grub_password_get): Likewise.
54
* normal/auth.c (grub_username_get): Likewise.
55
* normal/misc.c (grub_normal_print_device_info): Likewise.
56
* commands/help.c (grub_cmd_help): Use grub_unicode_aglomerate_comb.
57
* conf/common.rmk (grub_mkfont_SOURCES): Add unidata.c.
58
(gfxmenu_mod_SOURCES): Add gfxmenu/font.c.
59
(normal/charset.c_DEPENDENCIES): New variable.
60
(normal_mod_SOURCES): Add normal/charset.c and unidata.c.
61
(pkglib_MODULES): Remove charset.mod.
62
(charset_mod_SOURCES): Removed.
63
(charset_mod_CFLAGS): Likewise.
64
(charset_mod_LDFLAGS): Likewise.
65
(pkglib_MODULES) [ieee1275]: Remove terminfo.mod.
66
* conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Add term/terminfo.c
68
* conf/sparc64-ieee1275.rmk (kernel_img_SOURCES): Likewise.
69
* conf/i386-ieee1275.rmk (kernel_img_SOURCES): Likewise.
70
(kernel_img_HEADERS): Add terminfo.h.
71
* font/font.c (ascii_glyph_lookup): Return NULL on failure.
72
Fill ->font. Reverse ascii bitmaps.
73
(grub_font_get_xheight): New function.
74
* font/font.c (grub_font_get_string_width): Moved from here ...
75
* gfxmenu/font.c (grub_font_get_string_width): ... here.
76
* font/font.c (grub_font_draw_string): Moved from here ...
77
* gfxmenu/font.c (grub_font_draw_string): ... here.
78
* font/font.c (grub_font_dup_glyph): New function.
79
(grub_font_blit_glyph): Likewise.
80
(grub_font_blit_glyph_mirror): Likewise.
81
(blit_comb): Likewise.
82
(grub_font_construct_dry_run): Likewise.
83
(grub_font_get_constructed_device_width): Likewise.
84
(grub_font_construct_glyph): Likewise.
85
* include/grub/charset.h (grub_ucs4_to_utf8): New proto.
86
* include/grub/misc.h (grub_utf8_to_ucs4): Moved from here ...
87
* include/grub/charset.h (grub_utf8_to_ucs4): ... here.
88
* include/grub/font.h (GRUB_FONT_CODE_CHAR_MASK): New constant.
89
(GRUB_FONT_CODE_RIGHT_JOINED): Likewise.
90
(GRUB_FONT_CODE_LEFT_JOINED): Likewise.
91
(grub_font_get_xheight): New proto.
92
(grub_font_get_constructed_device_width): Likewise.
93
(grub_font_construct_glyph): Likewise.
94
* include/grub/font.h (grub_font_get_string_width): Moved from here ...
95
* include/grub/gfxmenu_view.h (grub_font_get_string_width): ... here.
96
* include/grub/font.h (grub_font_draw_string): Moved from here ...
97
* include/grub/gfxmenu_view.h (grub_font_draw_string): ... here.
98
* include/grub/i386/vga_common.h (grub_console_putchar): Moved from here..
99
* include/grub/i386/pc/console.h (grub_console_putchar): ... here.
100
* include/grub/i386/vga_common.h (grub_console_real_putchar): Removed.
101
(grub_console_getcharwidth): Likewise.
102
* include/grub/misc.h (grub_xputs): New proto.
103
(grub_puts): Inlined.
104
* include/grub/normal.h (grub_print_ucs4): Add margin specification.
105
(grub_normal_get_line_counter): Removed.
106
(grub_install_newline_hook): Likewise.
107
(grub_normal_get_char_counter): New proto.
108
(grub_normal_reset_more): Likewise.
109
(grub_xputs_normal): Likewise.
110
* include/grub/powerpc/ieee1275/console.h: Removed.
111
* include/grub/sparc64/ieee1275/console.h: Likewise.
112
* include/grub/term.h (GRUB_TERM_CODE_TYPE_MASK): New definition.
113
(GRUB_TERM_CODE_TYPE_ASCII): Likewise.
114
(GRUB_TERM_CODE_TYPE_CP437): Likewise.
115
(GRUB_TERM_CODE_TYPE_UTF8_LOGICAL): Likewise.
116
(GRUB_TERM_CODE_TYPE_UTF8_VISUAL): Likewise.
117
(GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS): Likewise.
118
(grub_term_input): Pass reference to self. All users updated.
119
(grub_term_output): Pass grub_unicode_glyph to putchar and getcharwidth.
120
Pass reference to self. New fields normal_color, highlight_color and
121
data. All users updated.
122
(grub_putchar): Removed.
123
(grub_putcode): Remove EXPORT_FUNC since it's not in kernel anymore.
124
(grub_unicode_estimate_width): New function.
125
(grub_term_getcharwidth): Add defaults.
126
(GRUB_TERM_DEFAULT_NORMAL_COLOR): New definition.
127
(GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR): Likewise.
128
(GRUB_TERM_DEFAULT_STANDARD_COLOR): Likewise.
129
(grub_cls): Remove EXPORT_FUNC.
130
(grub_setcolorstate): Inline.
131
(grub_newline_hook): Removed.
132
* include/grub/terminfo.h: Rewritten. All users updated.
133
* include/grub/unicode.h: New file.
134
* include/grub/video.h (grub_video_signed_rect): New type.
135
* kern/emu/console.c (grub_console_highlight_color): Removed.
136
(grub_console_normal_color): Likewise.
137
(grub_console_standard_color): Made static.
138
(grub_ncurses_putchar): Remove mapping.
139
(grub_ncurses_getcharwidth): Removed.
140
(grub_ncurses_term_output): Declare as GRUB_TERM_CODE_TYPE_ASCII.
141
(grub_ncurses_setcolor): Removed.
142
(grub_ncurses_getcolor): Likewise.
143
* kern/i386/pc/startup.S (grub_console_real_putchar): Renamed to ...
144
(grub_console_putchar): ... this.
145
(grub_console_putchar): Handle argument difference.
146
* kern/ieee1275/init.c (grub_machine_init): Split console_init into
147
console_init_early and console_init_lately.
148
* kern/sparc64/ieee1275/init.c (grub_machine_init): Likewise.
149
* kern/misc.c (grub_puts): Removed.
150
(grub_vprintf): Store UTF-8 string instead of outputting it directly.
151
(grub_vsnprintf_real): Remove str = NULL support.
152
* kern/misc.c (grub_utf8_to_ucs4): Move from here ...
153
* normal/charset.c (grub_utf8_to_ucs4): ... here.
154
* kern/term.c (grub_putcode): Renamed to ...
155
(grub_putcode_dumb): ... this. Pass grub_unicode_glyph instead of code.
156
(grub_putchar): Removed.
157
(grub_xputs_dumb): New function.
158
(grub_xputs): New variable.
159
* lib/charset.c: Move from here ...
160
* normal/charset.c: ... to here.
161
(grub_ucs4_to_utf8): New function.
162
(grub_ucs4_to_utf8_alloc): Use grub_ucs4_to_utf8.
163
(join_types): New variable.
164
(unpack_join): New function.
165
(bidi_types): New variable.
166
(unpack_bidi): New function.
167
(get_bidi_type): Likewise.
168
(get_join_type): Likewise.
169
(is_mirrored): Likewise.
170
(grub_unicode_get_comb_type): Likewise.
171
(grub_unicode_estimate_width) [HAVE_UNIFONT_WIDTHSPEC]: Likewise.
172
(is_type_after): Likewise.
173
(grub_unicode_aglomerate_comb): Likewise.
174
(bidi_line_wrap): Likewise.
175
(grub_bidi_line_logical_to_visual): Likewise.
176
(grub_bidi_logical_to_visual): Likewise.
177
(grub_unicode_mirror_code): Likewise.
178
(grub_unicode_shape_code): Likewise.
179
* normal/cmdline.c (grub_cmdline_get): Reset more counter.
180
Don't use grub_putchar.
181
* normal/main.c (grub_normal_init_page): Use grub_putcode.
182
(grub_normal_reader_init): Likewise.
183
(grub_xputs_saved): New variable.
184
(GRUB_MOD_INIT): Set grub_xputs.
185
(GRUB_MOD_FINI): Restore grub_xputs.
186
* normal/menu.c (grub_wait_after_message): Don't use grub_putchar.
187
(menu_init): Avoid printing gfxmenu error.
188
(show_menu): Use grub_normal_get_char_counter.
189
* normal/menu_entry.c (update_screen): Fix out-of-array.
190
(complete): Avoid NULL dereferencing.
191
* grub_menu_entry_run (grub_menu_entry_run): Don't use putchar.
192
* normal/menu_text.c (print_spaces): Removed.
193
(grub_print_ucs4): Likewise.
194
(grub_print_message_indented): Use grub_print_ucs4.
195
(print_message): Use grub_putcode.
196
(print_entry): Hanlde diacritics.
197
* normal/term.c (term_state): New type.
198
(grub_more_lines): Removed.
199
(term_states): New variable.
200
(grub_normal_line_counter): Renamed to ..
201
(grub_normal_char_counter): ...this. All users updated.
202
(grub_normal_get_line_counter): Renamed to ...
203
(grub_normal_get_char_counter): ... this.
204
(grub_normal_reset_more): New function.
205
(process_newline): Removed.
206
(print_more): New function.
207
(grub_install_newline_hook): Removed.
208
(map_code): New function.
209
(grub_puts_terminal): Use grub_print_ucs4.
210
(putglyph): New function.
211
(putcode_real): Likewise.
212
(grub_putcode): Use putcode_real.
213
(get_maxwidth): New function.
214
(get_startwidth): Likewise.
215
(print_ucs4_terminal): Likewise.
216
(find_term_state): Likewise.
217
(put_glyphs_terminal): Likewise.
218
(print_backlog): Likewise.
219
(print_ucs4_real): Likewise.
220
(grub_print_ucs4): Likewise.
221
(grub_xputs_normal): Likewise.
222
* term/efi/console.c (grub_console_putchar): Output diacritics.
223
(grub_console_getcharwidth): Removed.
224
(grub_console_term_output): Declare as GRUB_TERM_CODE_TYPE_UCS4_VISUAL.
225
* term/gfxterm.c (clear_char): Free chars.
226
(scroll_up): Avoid leaking memory.
227
(grub_gfxterm_putchar): Support diacritics.
228
(grub_video_term): Declare as GRUB_TERM_CODE_TYPE_UCS4_VISUAL.
229
* term/i386/pc/console.c (grub_console_term_output): Declare as
230
GRUB_TERM_CODE_TYPE_VGA.
231
* term/i386/pc/vga.c (grub_vga_term): Declare as
232
GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS.
233
* term/i386/pc/vga_text.c (grub_vga_text_term): Declare as
234
GRUB_TERM_CODE_TYPE_VGA.
235
* term/i386/vga_common.c (map_char): Removed.
236
(grub_console_putchar): Likewise.
237
(grub_console_getcharwidth): Likewise.
238
* term/ieee1275/ofconsole.c: Simplify using terminfo.
239
(colors): Reordered to match terminfo.
240
(grub_ofconsole_normal_color): Removed.
241
(grub_ofconsole_writeesc): Likewise.
242
(grub_ofconsole_highlight_color): Likewise.
243
(grub_ofconsole_getcharwidth): Likewise.
244
(grub_ofconsole_setcolorstate): Likewise.
245
(grub_ofconsole_setcolor): Likewise.
246
(grub_ofconsole_getcolor): Likewise.
247
(grub_ofconsole_readkey): Renamed to ...
248
(readkey): ... this. Remove escape sequence handling. Return -1 on no
250
(grub_ofconsole_checkkey): Removed.
251
(grub_ofconsole_getkey): Likewise.
252
(grub_ofconsole_getxy): Likewise.
253
(grub_ofconsole_gotoxy): Likewise.
254
(grub_ofconsole_cls): Likewise.
255
(grub_ofconsole_refresh): Likewise.
256
(grub_ofconsole_terminfo_input): New struct.
257
(grub_ofconsole_terminfo_output): Likewise.
258
(grub_ofconsole_term_input): Use terminfo.
259
(grub_ofconsole_term_output): Likewise.
260
(grub_console_init): Split into ...
261
(grub_console_init_early): ...this and ...
262
(grub_console_init_lately): ...this. Use terminfo.
263
(grub_ofconsole_putchar): Renamed to ...
264
(put): ... this. Remove mapping.
265
(grub_ofconsole_term_output): Declare as GRUB_TERM_CODE_TYPE_ASCII.
266
* term/serial.c: Simplify using terminfo.
269
(keep_track): Likewise.
270
(registered): Likewise.
271
(input_buf): Likewise.
272
(npending): Likewise.
273
(serial_translate_key_sequence): Likewise.
274
(fill_input_buf): Likewise.
275
(grub_serial_checkkey): Likewise.
276
(grub_serial_getkey): Likewise.
277
(grub_serial_getxy): Likewise.
278
(grub_serial_gotoxy): Likewise.
279
(grub_serial_putchar): Likewise.
280
(grub_serial_cls): Likewise.
281
(grub_serial_setcolorstate): Likewise.
282
(grub_serial_setcursor): Likewise.
283
(serial_hw_init): Use serial_hw_fetch.
284
(grub_serial_terminfo_input): New variable.
285
(grub_serial_terminfo_output): Likewise.
286
(grub_serial_term_input): Use terminfo.
287
(grub_serial_term_output): Likewise.
288
* term/terminfo.c (putstr): Use put.
289
(grub_terminfo_all_free): New function
290
(grub_terminfo_set_current): New types vt100-color, ieee1275 and dumb.
291
(grub_terminfo_output_register): New function.
292
(grub_terminfo_output_unregister): Likewise.
293
(grub_terminfo_getxy): Likewise.
294
(grub_terminfo_readkey): Likewise.
295
(grub_terminfo_checkkey): Likewise.
296
(grub_terminfo_getkey): Likewise.
297
(grub_terminfo_input_init): Likewise.
298
(print_terminfo): Likewise.
299
(grub_cmd_terminfo): Handle encoding.
300
(grub_terminfo_gotoxy): Track position.
301
(grub_terminfo_cls): Likewise.
302
(grub_terminfo_putchar): Likewise.
303
(grub_terminfo_setcolorstate): Handle colors
304
(grub_terminfo_cursor_on): This ...
305
(grub_terminfo_cursor_off): ... and this merged into ...
306
(grub_terminfo_setcursor): ... this.
307
* term/tparm.c (grub_terminfo_tparm): Avoid NULL dereferencing.
308
* unicode/ArabicShaping.txt: New file (imported from Unicode).
309
* unicode/BidiMirroring.txt: Likewise.
310
* unicode/UnicodeData.txt: Likewise.
311
* unicode/COPYING: Likewise.
312
* util/grub-editenv.c (grub_putchar): Removed.
313
(grub_xputs_real): New function.
314
(grub_xputs): New variable.
315
* util/grub-fstest.c (grub_putchar): Removed.
316
(grub_xputs_real): New function.
317
(grub_xputs): New variable.
318
* util/grub-mkdevicemap.c (grub_putchar): Removed.
319
(grub_xputs_real): New function.
320
(grub_xputs): New variable.
321
* util/grub-probe.c (grub_putchar): Removed.
322
(grub_xputs_real): New function.
323
(grub_xputs): New variable.
324
* util/grub-script-check.c (grub_putchar): Removed.
325
(grub_xputs_real): New function.
326
(grub_xputs): New variable.
327
* util/i386/pc/grub-setup.c (grub_putchar): Removed.
328
(grub_xputs_real): New function.
329
(grub_xputs): New variable.
330
* util/import_unicode.py: New file.
331
* util/grub-mkfont.c (ft_errmsgs): New array.
332
(grub_glyph_info): Make bitmap a pointer.
333
(file_formats): New type WIDTH_SPEC.
334
(grub_font_info): New members glyphs_unsorted, glyphs_sorted, num_glyphs.
335
(options): Add width-spec.
337
(add_char): Renamed to ...
338
(add_glyph): ... this.
339
(add_glyph): Use index. Show freetype errors. Cut blank space at borders.
340
(glyph_replace): New type.
341
(subst_rightjoin), (subst_leftjoin), (subst_medijoin): New variables.
342
(add_char): New function.
343
(add_subst): Likewise.
344
(process_cursive): Likewise.
345
(add_font): Handle GSUB.
346
(write_font_width_spec): New function.
348
* commands/minicmd.c (grub_mini_cmd_clear): Moved from here ...
349
* normal/main.c (grub_mini_cmd_clear): ..here. All users updated.
350
* kern/term.c (grub_cls): Moved from here...
351
* normal/term.c (grub_cls): ... here.
353
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
355
* include/grub/types.h: Define the C99-style PRIxGRUB_SIZE macro,
356
suitable for using within the format argument of printf when
357
converting grub_size_t.
358
* disk/usbms.c (grub_usbms_transfer): Use PRIxGRUB_SIZE rather than
359
"x" to convert grub_size_t arguments.
361
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
363
* gfxmenu/gui_list.c (draw_menu): Use viewport to simplify code and fix
365
(list_get_minimal_size): Take selection box into account.
367
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
369
* font/font.c (grub_font_get_glyph_with_fallback): Avoid dereferencing
372
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
374
* util/deviceiter.c (grub_util_iterate_devices): Skip device-mapper
375
devices when iterating over /dev/disk/by-id; they will be handled
376
later if appropriate, which they aren't always (e.g. LVM).
378
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
380
* include/grub/misc.h (grub_reboot): Declare as noreturn.
381
* kern/efi/efi.c (grub_reboot): Don't return, even if reset_system
383
(grub_halt): Likewise.
384
* kern/ieee1275/openfw.c (grub_reboot): Don't return, even if
386
(grub_halt): Don't return, even if all of shut-down, power-off, and
389
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
391
* kern/efi/init.c (grub_efi_init): set_watchdog_timer takes four
392
arguments, not three.
394
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
396
* util/grub-mkconfig_lib.in (uses_abstraction): New function.
397
* util/grub.d/10_linux.in: Use it to check for LVM, so that
398
LVM-on-RAID is handled correctly.
400
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
402
* docs/grub.texi (Changes from GRUB Legacy): New section.
405
2010-07-02 Colin Watson <cjwatson@ubuntu.com>
407
* util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Sometimes
408
grub.d/README accidentally ends up executable for one reason or
411
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
413
* partmap/gpt.c (MAX_SECTOR_LOG): New definition.
414
(gpt_partition_map_iterate): Support non-512B sectors.
416
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
418
* kern/efi/init.c (grub_efi_init): Disable watchdog.
419
Tested by: Seth Goldberg.
421
2010-07-02 Vladimir Serbinenko <phcoder@gmail.com>
423
* loader/multiboot.c (grub_multiboot_boot) [GRUB_USE_MULTIBOOT2]:
425
Reported by: Seth Goldberg.
427
2010-07-01 Vladimir Serbinenko <phcoder@gmail.com>
429
* util/grub-mkrescue.in: Avoid module duplication.
431
2010-07-01 Sean Finney <seanius@seanius.net>
433
* util/grub.d/10_linux.in: Don't use UUID for LVM root.
435
2010-07-01 Sean Finney <seanius@seanius.net>
437
* disk/lvm.c (grub_lvm_scan_device): Skip snapshots.
439
2010-07-01 Vladimir Serbinenko <phcoder@gmail.com>
441
* disk/lvm.c (grub_lvm_checkvalue): New function.
442
(grub_lvm_check_flag): Likewise.
444
2010-07-01 Robert Millan <rmh@gnu.org>
446
* kern/emu/hostdisk.c (convert_system_partition_to_system_disk):
447
Support 'p' as partition separator on kernel of FreeBSD (used
449
(grub_util_biosdisk_get_grub_dev): Likewise.
451
2010-07-01 Vladimir Serbinenko <phcoder@gmail.com>
453
Yeeloong firmware port.
455
* boot/mips/yeeloong/fwstart.S: New file.
456
* bus/cs5536.c (gpiodump): New const.
457
(set_io_space): New function.
460
(grub_cs5536_init_geode): Likewise.
461
* commands/mips/yeeloong/lsspd.c: New file.
462
* conf/mips-qemu-mips.rmk (pkglib_MODULES): Add serial.mod.
463
(serial_mod_SOURCES): New variable.
464
(serial_mod_CFLAGS): Likewise.
465
(serial_mod_LDFLAGS): Likewise.
466
* conf/mips-yeeloong.rmk (kernel_img_SOURCES): Add term/serial.c,
467
term/terminfo.c and term/tparm.c.
468
(pkglib_IMAGES): Add fwstart.img.
469
(fwstart_img_SOURCES): New variable.
470
(fwstart_img_CFLAGS): Likewise.
471
(fwstart_img_ASFLAGS): Likewise.
472
(fwstart_img_LDFLAGS): Likewise.
473
(fwstart_img_FORMAT): Likewise.
474
(pkglib_MODULES): Add lsspd.mod.
475
(lsspd_mod_SOURCES): New variable.
476
(lsspd_mod_CFLAGS): Likewise.
477
(lsspd_mod_LDFLAGS): Likewise.
478
(pkglib_MODULES): Add halt.mod.
479
(halt_mod_SOURCES): New variable.
480
(halt_mod_CFLAGS): Likewise.
481
(halt_mod_LDFLAGS): Likewise.
482
* conf/mips.rmk (pkglib_MODULES): Remove serial.mod.
483
(serial_mod_SOURCES): Removed.
484
(serial_mod_CFLAGS): Likewise.
485
(serial_mod_LDFLAGS): Likewise.
486
* disk/ata.c (check_device): New function.
487
(grub_ata_device_initialize): Use check_device.
488
(grub_ata_iterate): Recheck devices.
489
(grub_ata_open): Likewise.
490
(grub_atapi_iterate): Likewise.
491
(grub_atapi_open): Likewise.
492
* include/grub/ata.h (GRUB_ATA_CH0_PORT1): New macro.
493
(GRUB_ATA_CH1_PORT1): Likewise.
494
(GRUB_ATA_CH0_PORT2): Likewise.
495
(GRUB_ATA_CH1_PORT2): Likewise.
496
* include/grub/mips/loongson.h: New file.
497
* include/grub/mips/yeeloong/ec.h: Likewise.
498
* include/grub/mips/yeeloong/serial.h (GRUB_MACHINE_SERIAL_PORT): New definition.
499
(GRUB_MACHINE_SERIAL_DIVISOR_115200): Likewise.
500
(GRUB_MACHINE_SERIAL_PORTS) [ASM_FILE]: Remove.
501
* include/grub/misc.h (grub_halt): Declare as noreturn.
502
* include/grub/serial.h (UART_ENABLE_FIFO): Renamed to ...
503
(UART_ENABLE_FIFO_TRIGGER14): ... this. All users updated.
504
(UART_ENABLE_FIFO_TRIGGER1): New definition.
505
(UART_ENABLE_DTRRTS): Likewise.
506
(UART_ENABLE_MODEM): Removed.
507
(UART_ENABLE_OUT2): New const.
508
* include/grub/term.h (grub_term_register_input_active): New function.
509
(grub_term_register_output_active): Likewise.
510
* kern/mips/startup.S [GRUB_MACHINE_MIPS_YEELOONG]: Handle 0xffffffff
512
* kern/mips/yeeloong/init.c (grub_get_rtc): Macroify.
513
(init_pci): New function.
514
(grub_machine_init): Execute platform init when firmware. Init serial.
515
(grub_halt): Implement.
516
(grub_exit): Likewise.
517
(grub_reboot): Likewise.
518
* term/serial.c (serial_hw_init): Update macros.
519
[GRUB_MACHINE_MIPS_YEELOONG]: Init on startup.
520
* util/grub-mkimage.c (image_target_desc): New id IMAGE_YEELOONG_FLASH.
521
(image_targets): New target mipsel-yeeloong-flash.
522
(generate_image): Support IMAGE_YEELOONG_FLASH.
523
* video/sm712.c (GRUB_SM712_TOTAL_MEMORY_SPACE): New definition.
524
(grub_video_sm712_setup): Init card.
525
(grub_video_sm712_set_palette): Removed.
526
* video/sm712_init.c: New file.
528
2010-06-30 Colin Watson <cjwatson@ubuntu.com>
530
* Makefile.in (install-local): Temporarily prepend $(builddir) to
531
PATH when running help2man and then run it on the unadorned
532
executable names, rather than passing $(builddir)/* paths to
533
help2man. This avoids the build directory ending up in generated
536
2010-06-29 Colin Watson <cjwatson@ubuntu.com>
538
* util/grub-mkconfig.in: Use 'set -e' rather than '#! /bin/sh -e',
539
to avoid accidents when debugging with 'sh -x'.
540
* util/grub-mkrescue.in: Likewise.
541
* util/grub.d/00_header.in: Likewise.
542
* util/grub.d/10_hurd.in: Likewise.
543
* util/grub.d/10_kfreebsd.in: Likewise.
544
* util/grub.d/10_linux.in: Likewise.
545
* util/grub.d/10_netbsd.in: Likewise.
546
* util/grub.d/10_windows.in: Likewise.
547
* util/grub.d/20_linux_xen.in: Likewise.
548
* util/grub.d/30_os-prober.in: Likewise.
549
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
551
2010-06-29 Colin Watson <cjwatson@ubuntu.com>
553
* commands/cat.c (grub_cmd_cat): Fix buffer overrun if '\r' is the
554
last character in the buffer.
555
Reported by: Vladimir Serbinenko.
557
2010-06-29 Robert Millan <rmh@gnu.org>
559
* docs/grub.texi (Simple configuration): Document ${GRUB_BADRAM}.
560
(Command-line and menu entry commands): Document `badram' command.
562
2010-06-28 Robert Millan <rmh@gnu.org>
564
* util/grub-mkconfig.in: Export `GRUB_BADRAM' variable.
565
* util/grub.d/00_header.in: When `GRUB_BADRAM' is set, issue badram
566
command using ${GRUB_BADRAM} as parameter.
568
2010-06-28 Colin Watson <cjwatson@ubuntu.com>
570
* docs/grub.texi (Device map): New section.
571
(Themes): New section (stub).
572
* Makefile.in (docs/grub.info): The info documentation now builds
573
without errors. Make sure it stays that way.
575
2010-06-28 Vladimir Serbinenko <phcoder@gmail.com>
577
Use normal parser for menu entries.
578
Reported by: Thomas Frauendorfer
580
* include/grub/parser.h (grub_parser_execute): Don't export.
581
* normal/menu.c (grub_menu_execute_entry_real): New function.
582
(grub_menu_execute_entry): Use grub_menu_execute_entry_real.
584
2010-06-28 Colin Watson <cjwatson@ubuntu.com>
586
* docs/grub.texi (Embedded configuration): New section (replacing
587
old "Preset Menu" stub).
588
(Images): New section.
589
(configfile): Note that any menu entries defined in `file' are shown
592
2010-06-28 Josh Triplett <josh@joshtriplett.org>
594
* mmap/i386/pc/mmap_helper.S: Set CF on return.
596
2010-06-28 Colin Watson <cjwatson@ubuntu.com>
598
* util/grub-install.in: Add --debug-image= option.
600
2010-06-28 Colin Watson <cjwatson@ubuntu.com>
602
Change grub-mkdevicemap to emit /dev/disk/by-id/ names where
605
* util/deviceiter.c (check_device): Rename to ...
606
(check_device_readable_unique): ... this. Update all callers.
607
Maintain and check a list of which devices (by canonicalized name)
608
have already been seen.
609
(clear_seen_devices): New function.
610
(compare_file_names) [__linux__]: New function.
611
(grub_util_iterate_devices): Clear the list of seen devices on exit
612
and (just in case) on entry.
613
(grub_util_iterate_devices) [__linux__]: Iterate over non-partition
614
devices in /dev/disk/by-id/, in sorted order. Remove DM-RAID
615
seen-devices list, superseded by general code in check_device.
617
2010-06-28 Colin Watson <cjwatson@ubuntu.com>
619
* commands/cat.c (options): New variable.
620
(grub_cmd_cat): Parse options. If the --dos option is given, print
621
DOS-style "\r\n" line endings as simple newlines (Debian bug
623
(GRUB_MOD_INIT): Use extcmd.
624
(GRUB_MOD_FINI): Likewise.
625
* docs/grub.texi (cat): Document --dos.
627
2010-06-28 Vladimir Serbinenko <phcoder@gmail.com>
629
XEN with Linux grub-mkconfig support.
631
* conf/common.rmk (grub-mkconfig_SCRIPTS) [linux]: Add 20_linux_xen.
632
* util/grub-mkconfig.in: Export GRUB_CMDLINE_XEN and
633
GRUB_CMDLINE_XEN_DEFAULT.
634
* util/grub.d/20_linux_xen.in: New file.
636
2010-06-28 Vladimir Serbinenko <phcoder@gmail.com>
638
Initialise VGA video on qemu ourselves.
640
* boot/i386/qemu/boot.S: Don't call 0xc000.
641
* conf/i386-qemu.rmk (kern/i386/qemu/init.c_DEPENDENCIES): New variable.
642
(kernel_img_SOURCES): Add kern/i386/qemu/init.c and bus/pci.c.
643
(kernel_img_HEADERS): Add pci.h.
644
* conf/i386.rmk (pkglib_MODULES) [qemu]: Remove pci.mod.
645
* configure.ac: Force unifont on qemu and yeeloong.
646
* include/grub/i386/qemu/kernel.h (grub_qemu_init_cirrus): New proto.
647
(grub_vga_palette_write): Use correct register.
648
* kern/i386/coreboot/init.c (grub_machine_init) [GRUB_MACHINE_QEMU]:
649
Call grub_qemu_init_cirrus.
650
* kern/i386/qemu/init.c: New file.
651
* term/i386/pc/vga_text.c (inc_y): Never read outside the screen.
653
* commands/videotest.c (grub_cmd_videotest): Handle double buffering.
655
2010-06-26 Pavel Roskin <proski@gnu.org>
657
* util/grub.d/10_linux.in: Add support for initrd images on Fedora
660
2010-06-26 Colin Watson <cjwatson@ubuntu.com>
662
* docs/grub.texi (Simple configuration): Explain that
663
GRUB_DISABLE_LINUX_RECOVERY and GRUB_DISABLE_NETBSD_RECOVERY must be
664
set to `true' to disable their respective recovery entries, not
667
2010-06-26 Colin Watson <cjwatson@ubuntu.com>
669
Make the `source' command slightly faster.
671
* normal/main.c (grub_normal_execute): Don't re-read list files when
674
2010-06-23 Colin Watson <cjwatson@ubuntu.com>
676
* loader/i386/multiboot_mbi.c (retrieve_video_parameters): Set red
677
field position and mask size to red fields from mode_info, not
679
* loader/multiboot_mbi2.c (retrieve_video_parameters): Likewise.
680
Remove redundant tag->common.framebuffer_type assignment.
681
Reported by: Seth Goldberg.
683
2010-06-23 Colin Watson <cjwatson@ubuntu.com>
685
Sync up other versions of the Linux loader with Robert Millan's
686
change of 2010-01-09, "Make loader output a bit more user-friendly".
688
* loader/i386/efi/linux.c (grub_linux_boot): Move debug info to
690
(grub_cmd_linux): Likewise.
691
(grub_cmd_initrd): Likewise.
692
* loader/i386/ieee1275/linux.c (grub_cmd_linux): Likewise.
693
* loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
695
2010-06-21 Colin Watson <cjwatson@ubuntu.com>
697
* kern/efi/mm.c (grub_efi_mm_init): Handle systems with memory maps
698
larger than MEMORY_MAP_SIZE.
700
2010-06-21 BVK Chaitanya <bvk.groups@gmail.com>
704
* conf/common.rmk: Add grub_script.tab.h as a grub-script-check
706
* script/parser.y: #include grub_script.tab.h header.
708
2010-06-20 Vladimir Serbinenko <phcoder@gmail.com>
710
Support >3GiB and <16MiB RAM in i386-qemu.
712
* kern/i386/qemu/mmap.c (QEMU_CMOS_MEMSIZE2_HIGH): New const.
713
(QEMU_CMOS_MEMSIZE2_LOW): Likewise.
714
(grub_lower_mem): Removed.
715
(grub_upper_mem): Likewise.
716
(mem_size): Made static.
717
(above_4g): New variable.
718
(grub_machine_mmap_init): Detect small mem_size and above_4g.
719
(grub_machine_mmap_iterate): Order in ascending order and add above_4g
722
2010-06-20 Vladimir Serbinenko <phcoder@gmail.com>
724
Cirrus 5446 and Bochs video cards support.
726
* conf/i386.rmk (pkglib_MODULES): Add video_cirrus.mod and
728
(video_cirrus_mod_SOURCES): New variable.
729
(video_cirrus_mod_CFLAGS): Likewise.
730
(video_cirrus_mod_LDFLAGS): Likewise.
731
(video_bochs_mod_SOURCES): Likewise.
732
(video_bochs_mod_CFLAGS): Likewise.
733
(video_bochs_mod_LDFLAGS): Likewise.
734
* include/grub/vga.h: New file.
735
* include/grub/video_fb.h (grub_video_fb_doublebuf_blit_init): Removed.
736
(grub_video_fb_set_page_t): New type.
737
(grub_video_fb_setup): New prototype.
738
(grub_video_fb_swap_buffers): Likewise.
739
(grub_video_fb_get_info_and_fini): Likewise.
740
* term/i386/pc/vga_text.c (CRTC_ADDR_PORT): Moved to include/grub/vga.h.
741
(CRTC_DATA_PORT): Likewise.
742
(CRTC_CURSOR): Likewise.
743
(CRTC_CURSOR_ADDR_HIGH): Likewise.
744
(CRTC_CURSOR_ADDR_LOW): Likewise.
745
(CRTC_CURSOR_DISABLE): Likewise.
746
(update_cursor): Use grub_vga_cr_write.
747
(grub_vga_text_setcursor): Likewise.
748
* video/bochs.c: New file.
749
* video/fb/video_fb.c (render_target): Moved into framebuffer variable.
751
(palette_size): Likewise.
752
(framebuffer): New variable.
753
(grub_video_fb_init): Use 'framebuffer'.
754
(grub_video_fb_fini): Likewise.
755
(grub_video_fb_get_info): Likewise.
756
(grub_video_fb_get_palette): Likewise.
757
(grub_video_fb_set_palette): Likewise.
758
(grub_video_fb_set_viewport): Likewise.
759
(grub_video_fb_get_viewport): Likewise.
760
(grub_video_fb_map_color): Likewise.
761
(grub_video_fb_map_rgb): Likewise.
762
(grub_video_fb_map_rgba): Likewise.
763
(grub_video_fb_unmap_color): Likewise.
764
(grub_video_fb_unmap_color_int): Likewise.
765
(grub_video_fb_fill_rect): Likewise.
766
(grub_video_fb_blit_bitmap): Likewise.
767
(grub_video_fb_blit_render_target): Likewise.
768
(grub_video_fb_scroll): Likewise.
769
(grub_video_fb_create_render_target): Likewise.
770
(grub_video_fb_doublebuf_blit_init): Likewise.
771
(grub_video_fb_set_active_render_target): Handle doublebuffering.
772
(doublebuf_pageflipping_update_screen): New function.
773
(doublebuf_pageflipping_init): Likewise.
774
(grub_video_fb_setup): Likewise.
775
(grub_video_fb_swap_buffers): Likewise.
776
(grub_video_fb_get_info_and_fini): Likewise.
777
* video/i386/pc/vbe.c (framebuffer): Remove all doublebuffering fields.
779
(doublebuf_pageflipping_commit): Restructured into ...
780
(doublebuf_pageflipping_set_page): ... this.
781
(doublebuf_pageflipping_update_screen): Removed.
782
(doublebuf_pageflipping_init): Likewise.
783
(double_buffering_init): Likewise.
784
(grub_video_vbe_setup): Use grub_video_fb_setup.
785
(grub_video_vbe_swap_buffers): Removed.
786
(grub_video_vbe_set_active_render_target): Likewise.
787
(grub_video_vbe_get_active_render_target): Likewise.
788
(grub_video_vbe_get_info_and_fini): Use grub_video_fb_get_info_and_fini.
789
(grub_video_vbe_adapter): Use grub_video_fb_swap_buffers,
790
grub_video_fb_set_active_render_target and
791
grub_video_fb_get_active_render_target.
792
* video/i386/pc/vga.c (SEQUENCER_ADDR_PORT): Move to include/grub/vga.h.
793
(SEQUENCER_DATA_PORT): Likewise.
794
(MAP_MASK_REGISTER): Likewise.
795
(CRTC_ADDR_PORT): Likewise.
796
(CRTC_DATA_PORT): Likewise.
797
(START_ADDR_HIGH_REGISTER): Likewise.
798
(START_ADDR_LOW_REGISTER): Likewise.
799
(GRAPHICS_ADDR_PORT): Likewise.
800
(GRAPHICS_DATA_PORT): Likewise.
801
(READ_MAP_REGISTER): Likewise.
802
(INPUT_STATUS1_REGISTER): Likewise.
803
(INPUT_STATUS1_VERTR_BIT): Likewise.
804
(get_map_mask): Use grub_vga_sr_read.
805
(set_map_mask): Use grub_vga_sr_write.
806
(set_read_map): Use grub_vga_gr_write.
807
(set_start_address): Use grub_vga_cr_write.
808
* video/sm712.c (framebuffer): Remove leftover fields.
810
2010-06-20 Colin Watson <cjwatson@ubuntu.com>
812
* util/grub-mkconfig.in: Capitalise and export GRUB_PREFIX. Stop
813
setting GRUB_VIDEO_BACKEND. Make it available as a user override
814
instead. Replace the gfxterm backend check with a check that
815
${GRUB_PREFIX}/video.lst is non-empty.
816
* util/grub.d/00_header.in: Use GRUB_PREFIX rather than computing it
818
(load_video): New generated function. Call it before loading
819
gfxterm rather than loading ${GRUB_VIDEO_BACKEND}.
820
* util/grub.d/10_linux.in (linux_entry): Call load_video.
821
* util/grub.d/30_os-prober.in (osx_entry): Likewise.
822
* docs/grub.texi (Simple configuration): Document
825
2010-06-20 Vladimir Serbinenko <phcoder@gmail.com>
827
Use video functions in linux and xnu loaders.
829
* conf/i386-pc.rmk (xnu_mod_SOURCES): Remove loader/i386/pc/xnu.c.
830
* conf/x86-efi.rmk (xnu_mod_SOURCES): Remove loader/i386/efi/xnu.c.
831
* include/grub/i386/xnu.h (grub_xnu_set_video): Removed.
832
* loader/i386/efi/linux.c (grub_linux_setup_video): Copied from
833
loader/i386/pc/linux.c.
834
(grub_linux_boot): Resynced with loader/i386/pc/linux.c.
835
(find_line_len): Removed.
836
(find_framebuf): Likewise.
837
(grub_cmd_linux): Declare grub_linux_boot as possibly returning.
838
* loader/i386/efi/xnu.c: Removed.
839
* loader/i386/pc/xnu.c: Moved from here...
840
* loader/i386/xnu.c: ...here.
842
Enable priorities in video drivers.
844
* include/grub/video.h (grub_video_adapter_prio_t): New type.
845
(grub_video_adapter): New field prio.
846
(grub_video_register): Respect prio when inserting.
847
* video/efi_gop.c (grub_video_gop_adapter): Add prio.
848
* video/efi_uga.c (grub_video_uga_adapter): Likewise.
849
* video/emu/sdl.c (grub_video_sdl_adapter): Likewise.
850
* video/i386/pc/vbe.c (grub_video_vbe_adapter): Likewise.
851
* video/i386/pc/vga.c (grub_video_vga_adapter): Likewise.
852
* video/ieee1275.c (grub_video_ieee1275_adapter): Likewise.
853
* video/sm712.c (grub_video_sm712_adapter): Likewise.
857
* include/grub/video.h (grub_video_driver_id_t): New value
858
GRUB_VIDEO_DRIVER_SDL.
859
* video/emu/sdl.c (grub_video_sdl_adapter): Add id.
861
2010-06-17 Colin Watson <cjwatson@ubuntu.com>
863
* util/i386/pc/grub-setup.c (usage): Pass an extra `program_name'
865
* util/sparc64/ieee1275/grub-setup.c (usage): Likewise.
867
2010-06-17 Colin Watson <cjwatson@ubuntu.com>
869
* util/i386/pc/grub-setup.c (usage): Fix syntax error.
870
* util/sparc64/ieee1275/grub-setup.c (usage): Likewise.
872
2010-06-17 Colin Watson <cjwatson@ubuntu.com>
874
* util/i386/pc/grub-setup.c (usage): Warn against running grub-setup
875
directly, and recommend grub-install instead.
876
* util/sparc64/ieee1275/grub-setup.c (usage): Likewise.
878
2010-06-17 Colin Watson <cjwatson@ubuntu.com>
880
Fix i386-pc prefix handling with nested partitions (Debian bug
881
#585068). Note that the case where the core image is booted using
882
multiboot and relocated from its original location still requires
885
* kern/i386/pc/init.c (make_install_device): If the prefix starts
886
with "(,", fill the boot drive in between those two characters, but
887
expect that a full partition specification including partition map
889
* util/i386/pc/grub-setup.c (setup): Unless an explicit prefix was
890
specified, write a prefix without the drive name but including a
891
full partition specification.
893
2010-06-16 Colin Watson <cjwatson@ubuntu.com>
895
* util/grub-mkconfig.in: Ignore non-option arguments, for
896
compatibility with older versions (before 2010-06-12) which did the
897
same. In particular, this makes it easier to ship an update-grub
898
wrapper which is compatible with that used with GRUB Legacy (Debian
901
2010-06-14 Grégoire Sutre <gregoire.sutre@gmail.com>
903
* Makefile.in (install-local): Use $$file.h2m instead of $$dest.h2m
904
for manual page generation.
906
2010-06-14 Grégoire Sutre <gregoire.sutre@gmail.com>
908
* po/POTFILES: Remove leftover commands/handler.c.
1
910
2010-06-14 Colin Watson <cjwatson@ubuntu.com>
3
912
* util/grub-mkconfig.in: Remove vestige of old argument parsing that