2005-08-19 Yoshinori K. Okuji <okuji@enbug.org>

* DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
        commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
        commands/i386/pc/vbetest.c.

        * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
        call grub_vbe_get_controller_info again, because the returned
        information is volatile.
        (grub_vbe_set_video_mode): Mostly rewritten.
        (grub_vbe_get_video_mode): Use grub_vbe_probe and use
        grub_vbe_status_t correctly.
        (grub_vbe_get_video_mode_info): Likewise.
        (grub_vbe_set_pixel_rgb): Use a switch statement rather than
        several if statements.

        * commands/i386/pc/vbe_list_modes.c: Renamed to ...
        * commands/i386/pc/vbeinfo.c: ... this.

        * commands/i386/pc/vbe_test.c: Renamed to ...
        * commands/i386/pc/vbetest.c: ... this.

        * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
        ...
        (grub_cmd_vbeinfo): ... this. Save video modes before
        iterating. Skip a video mode, if it is not available, not enough
        information is given or it is monochrome. Show the memory
        model. Leave the interpretation of MODEVAR to grub_strtoul
        completely.
        (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
        (GRUB_MOD_FINI): Likewise.

        * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
        (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
        grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
        duplicated grub_env_get. Leave the interpretation of MODEVAR to
        grub_strtoul completely.
        (real2pm): Removed.
        (GRUB_MOD_INIT): Rename vbe_test to vbetest.
        (GRUB_MOD_FINI): Likewise.

        * normal/misc.c: Include grub/mm.h.

        * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
        vbe_list_modes with vbetest.mod and vbeinfo.mod.
        (vbe_list_modes_mod_SOURCES): Removed.
        (vbe_list_modes_mod_CFLAGS): Likewise.
        (vbe_test_mod_SOURCES): Likewise.
        (vbe_test_mod_CFLAGS): Likewise.
        (vbeinfo_mod_SOURCES): New variable.
        (vbeinfo_mod_CFLAGS): Likewise.
        (vbetest_mod_SOURCES): Likewise.
        (vbetest_mod_CFLAGS): Likewise.
This commit is contained in:
okuji 2005-08-19 00:32:01 +00:00
parent a7db563eb6
commit 1f0a95e481
9 changed files with 461 additions and 426 deletions

View file

@ -1150,7 +1150,7 @@ pkgdata_MODULES = _chain.mod _linux.mod linux.mod fat.mod ufs.mod \
terminal.mod fshelp.mod chain.mod multiboot.mod amiga.mod \
apple.mod pc.mod sun.mod loopback.mod reboot.mod halt.mod \
help.mod default.mod timeout.mod configfile.mod vbe.mod \
vesafb.mod vbe_test.mod vbe_list_modes.mod
vesafb.mod vbetest.mod vbeinfo.mod
# For _chain.mod.
_chain_mod_SOURCES = loader/i386/pc/chainloader.c
@ -3081,105 +3081,105 @@ fs-vesafb.lst: term/i386/pc/vesafb.c genfslist.sh
vesafb_mod_CFLAGS = $(COMMON_CFLAGS)
# For vbe_list_modes.mod.
vbe_list_modes_mod_SOURCES = commands/i386/pc/vbe_list_modes.c
CLEANFILES += vbe_list_modes.mod mod-vbe_list_modes.o mod-vbe_list_modes.c pre-vbe_list_modes.o vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.o def-vbe_list_modes.lst und-vbe_list_modes.lst
MOSTLYCLEANFILES += vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.d
DEFSYMFILES += def-vbe_list_modes.lst
UNDSYMFILES += und-vbe_list_modes.lst
# For vbeinfo.mod.
vbeinfo_mod_SOURCES = commands/i386/pc/vbeinfo.c
CLEANFILES += vbeinfo.mod mod-vbeinfo.o mod-vbeinfo.c pre-vbeinfo.o vbeinfo_mod-commands_i386_pc_vbeinfo.o def-vbeinfo.lst und-vbeinfo.lst
MOSTLYCLEANFILES += vbeinfo_mod-commands_i386_pc_vbeinfo.d
DEFSYMFILES += def-vbeinfo.lst
UNDSYMFILES += und-vbeinfo.lst
vbe_list_modes.mod: pre-vbe_list_modes.o mod-vbe_list_modes.o
vbeinfo.mod: pre-vbeinfo.o mod-vbeinfo.o
-rm -f $@
$(LD) -r -d -o $@ $^
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
pre-vbe_list_modes.o: vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.o
pre-vbeinfo.o: vbeinfo_mod-commands_i386_pc_vbeinfo.o
-rm -f $@
$(LD) -r -d -o $@ $^
mod-vbe_list_modes.o: mod-vbe_list_modes.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(vbe_list_modes_mod_CFLAGS) -c -o $@ $<
mod-vbeinfo.o: mod-vbeinfo.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(vbeinfo_mod_CFLAGS) -c -o $@ $<
mod-vbe_list_modes.c: moddep.lst genmodsrc.sh
sh $(srcdir)/genmodsrc.sh 'vbe_list_modes' $< > $@ || (rm -f $@; exit 1)
mod-vbeinfo.c: moddep.lst genmodsrc.sh
sh $(srcdir)/genmodsrc.sh 'vbeinfo' $< > $@ || (rm -f $@; exit 1)
def-vbe_list_modes.lst: pre-vbe_list_modes.o
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbe_list_modes/' > $@
def-vbeinfo.lst: pre-vbeinfo.o
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbeinfo/' > $@
und-vbe_list_modes.lst: pre-vbe_list_modes.o
echo 'vbe_list_modes' > $@
und-vbeinfo.lst: pre-vbeinfo.o
echo 'vbeinfo' > $@
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.o: commands/i386/pc/vbe_list_modes.c
$(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_list_modes_mod_CFLAGS) -c -o $@ $<
vbeinfo_mod-commands_i386_pc_vbeinfo.o: commands/i386/pc/vbeinfo.c
$(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbeinfo_mod_CFLAGS) -c -o $@ $<
vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.d: commands/i386/pc/vbe_list_modes.c
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_list_modes_mod_CFLAGS) -M $< | sed 's,vbe_list_modes\.o[ :]*,vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
vbeinfo_mod-commands_i386_pc_vbeinfo.d: commands/i386/pc/vbeinfo.c
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbeinfo_mod_CFLAGS) -M $< | sed 's,vbeinfo\.o[ :]*,vbeinfo_mod-commands_i386_pc_vbeinfo.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
-include vbe_list_modes_mod-commands_i386_pc_vbe_list_modes.d
-include vbeinfo_mod-commands_i386_pc_vbeinfo.d
CLEANFILES += cmd-vbe_list_modes.lst fs-vbe_list_modes.lst
COMMANDFILES += cmd-vbe_list_modes.lst
FSFILES += fs-vbe_list_modes.lst
CLEANFILES += cmd-vbeinfo.lst fs-vbeinfo.lst
COMMANDFILES += cmd-vbeinfo.lst
FSFILES += fs-vbeinfo.lst
cmd-vbe_list_modes.lst: commands/i386/pc/vbe_list_modes.c gencmdlist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_list_modes_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbe_list_modes > $@ || (rm -f $@; exit 1)
cmd-vbeinfo.lst: commands/i386/pc/vbeinfo.c gencmdlist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbeinfo > $@ || (rm -f $@; exit 1)
fs-vbe_list_modes.lst: commands/i386/pc/vbe_list_modes.c genfslist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_list_modes_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbe_list_modes > $@ || (rm -f $@; exit 1)
fs-vbeinfo.lst: commands/i386/pc/vbeinfo.c genfslist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbeinfo > $@ || (rm -f $@; exit 1)
vbe_list_modes_mod_CFLAGS = $(COMMON_CFLAGS)
vbeinfo_mod_CFLAGS = $(COMMON_CFLAGS)
# For vbe_test.mod.
vbe_test_mod_SOURCES = commands/i386/pc/vbe_test.c
CLEANFILES += vbe_test.mod mod-vbe_test.o mod-vbe_test.c pre-vbe_test.o vbe_test_mod-commands_i386_pc_vbe_test.o def-vbe_test.lst und-vbe_test.lst
MOSTLYCLEANFILES += vbe_test_mod-commands_i386_pc_vbe_test.d
DEFSYMFILES += def-vbe_test.lst
UNDSYMFILES += und-vbe_test.lst
# For vbetest.mod.
vbetest_mod_SOURCES = commands/i386/pc/vbetest.c
CLEANFILES += vbetest.mod mod-vbetest.o mod-vbetest.c pre-vbetest.o vbetest_mod-commands_i386_pc_vbetest.o def-vbetest.lst und-vbetest.lst
MOSTLYCLEANFILES += vbetest_mod-commands_i386_pc_vbetest.d
DEFSYMFILES += def-vbetest.lst
UNDSYMFILES += und-vbetest.lst
vbe_test.mod: pre-vbe_test.o mod-vbe_test.o
vbetest.mod: pre-vbetest.o mod-vbetest.o
-rm -f $@
$(LD) -r -d -o $@ $^
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
pre-vbe_test.o: vbe_test_mod-commands_i386_pc_vbe_test.o
pre-vbetest.o: vbetest_mod-commands_i386_pc_vbetest.o
-rm -f $@
$(LD) -r -d -o $@ $^
mod-vbe_test.o: mod-vbe_test.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(vbe_test_mod_CFLAGS) -c -o $@ $<
mod-vbetest.o: mod-vbetest.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(vbetest_mod_CFLAGS) -c -o $@ $<
mod-vbe_test.c: moddep.lst genmodsrc.sh
sh $(srcdir)/genmodsrc.sh 'vbe_test' $< > $@ || (rm -f $@; exit 1)
mod-vbetest.c: moddep.lst genmodsrc.sh
sh $(srcdir)/genmodsrc.sh 'vbetest' $< > $@ || (rm -f $@; exit 1)
def-vbe_test.lst: pre-vbe_test.o
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbe_test/' > $@
def-vbetest.lst: pre-vbetest.o
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbetest/' > $@
und-vbe_test.lst: pre-vbe_test.o
echo 'vbe_test' > $@
und-vbetest.lst: pre-vbetest.o
echo 'vbetest' > $@
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
vbe_test_mod-commands_i386_pc_vbe_test.o: commands/i386/pc/vbe_test.c
$(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_test_mod_CFLAGS) -c -o $@ $<
vbetest_mod-commands_i386_pc_vbetest.o: commands/i386/pc/vbetest.c
$(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbetest_mod_CFLAGS) -c -o $@ $<
vbe_test_mod-commands_i386_pc_vbe_test.d: commands/i386/pc/vbe_test.c
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_test_mod_CFLAGS) -M $< | sed 's,vbe_test\.o[ :]*,vbe_test_mod-commands_i386_pc_vbe_test.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
vbetest_mod-commands_i386_pc_vbetest.d: commands/i386/pc/vbetest.c
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbetest_mod_CFLAGS) -M $< | sed 's,vbetest\.o[ :]*,vbetest_mod-commands_i386_pc_vbetest.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
-include vbe_test_mod-commands_i386_pc_vbe_test.d
-include vbetest_mod-commands_i386_pc_vbetest.d
CLEANFILES += cmd-vbe_test.lst fs-vbe_test.lst
COMMANDFILES += cmd-vbe_test.lst
FSFILES += fs-vbe_test.lst
CLEANFILES += cmd-vbetest.lst fs-vbetest.lst
COMMANDFILES += cmd-vbetest.lst
FSFILES += fs-vbetest.lst
cmd-vbe_test.lst: commands/i386/pc/vbe_test.c gencmdlist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_test_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbe_test > $@ || (rm -f $@; exit 1)
cmd-vbetest.lst: commands/i386/pc/vbetest.c gencmdlist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbetest > $@ || (rm -f $@; exit 1)
fs-vbe_test.lst: commands/i386/pc/vbe_test.c genfslist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbe_test_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbe_test > $@ || (rm -f $@; exit 1)
fs-vbetest.lst: commands/i386/pc/vbetest.c genfslist.sh
set -e; $(CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(CPPFLAGS) $(CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbetest > $@ || (rm -f $@; exit 1)
vbe_test_mod_CFLAGS = $(COMMON_CFLAGS)
vbetest_mod_CFLAGS = $(COMMON_CFLAGS)
CLEANFILES += moddep.lst command.lst fs.lst
pkgdata_DATA += moddep.lst command.lst fs.lst
moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep

View file

@ -112,7 +112,7 @@ pkgdata_MODULES = _chain.mod _linux.mod linux.mod fat.mod ufs.mod \
terminal.mod fshelp.mod chain.mod multiboot.mod amiga.mod \
apple.mod pc.mod sun.mod loopback.mod reboot.mod halt.mod \
help.mod default.mod timeout.mod configfile.mod vbe.mod \
vesafb.mod vbe_test.mod vbe_list_modes.mod
vesafb.mod vbetest.mod vbeinfo.mod
# For _chain.mod.
_chain_mod_SOURCES = loader/i386/pc/chainloader.c
@ -262,10 +262,10 @@ vbe_mod_CFLAGS = $(COMMON_CFLAGS)
vesafb_mod_SOURCES = term/i386/pc/vesafb.c
vesafb_mod_CFLAGS = $(COMMON_CFLAGS)
# For vbe_list_modes.mod.
vbe_list_modes_mod_SOURCES = commands/i386/pc/vbe_list_modes.c
vbe_list_modes_mod_CFLAGS = $(COMMON_CFLAGS)
# For vbeinfo.mod.
vbeinfo_mod_SOURCES = commands/i386/pc/vbeinfo.c
vbeinfo_mod_CFLAGS = $(COMMON_CFLAGS)
# For vbe_test.mod.
vbe_test_mod_SOURCES = commands/i386/pc/vbe_test.c
vbe_test_mod_CFLAGS = $(COMMON_CFLAGS)
# For vbetest.mod.
vbetest_mod_SOURCES = commands/i386/pc/vbetest.c
vbetest_mod_CFLAGS = $(COMMON_CFLAGS)