aboutsummaryrefslogtreecommitdiff
path: root/src/bootsplash.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2010-07-26 23:47:26 -0400
committerKevin O'Connor <kevin@koconnor.net>2010-07-26 23:47:26 -0400
commitcadaf0e35d4530a0aa3f3100c3c0e5c96d9f0556 (patch)
treee87fca3a157363d1ca064258a44704dd1a289305 /src/bootsplash.c
parent2641186e7650d1dbe9249f57fe005581f31da402 (diff)
downloadseabios-hppa-cadaf0e35d4530a0aa3f3100c3c0e5c96d9f0556.zip
seabios-hppa-cadaf0e35d4530a0aa3f3100c3c0e5c96d9f0556.tar.gz
seabios-hppa-cadaf0e35d4530a0aa3f3100c3c0e5c96d9f0556.tar.bz2
Be sure to disable bootsplash on all BIOS boot cases.
Disable the bootsplash on cbfs payload exec, and if something hooks int19. Also, be sure to only disable the bootsplash (revert to text mode) once.
Diffstat (limited to 'src/bootsplash.c')
-rw-r--r--src/bootsplash.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/bootsplash.c b/src/bootsplash.c
index b96e066..9ff81b3 100644
--- a/src/bootsplash.c
+++ b/src/bootsplash.c
@@ -10,6 +10,7 @@
#include "config.h" // CONFIG_*
#include "util.h" // dprintf
#include "jpeg.h" // splash
+#include "biosvar.h" // SET_EBDA
/****************************************************************
@@ -99,7 +100,7 @@ static void enable_vga_text_console(void)
call16_int10(&br);
// Write to screen.
- printf("Starting SeaBIOS (version %s)\n\n", VERSION);
+ printf("SeaBIOS (version %s)\n\n", VERSION);
}
void enable_vga_console(void)
@@ -181,7 +182,7 @@ void enable_vga_console(void)
dprintf(8, "bytes per scanline: %d\n", mode_info->bytes_per_scanline);
dprintf(8, "bits per pixel: %d\n", mode_info->bits_per_pixel);
- /* Look for bootsplash.jpg in CBFS and decompress it... */
+ /* Decompress jpeg */
dprintf(8, "Copying boot splash screen...\n");
cbfs_copyfile(file, jpeg, filesize);
dprintf(8, "Decompressing boot splash screen...\n");
@@ -194,6 +195,7 @@ void enable_vga_console(void)
/* Show the picture */
iomemcpy(framebuffer, picture, imagesize);
+ SET_EBDA(bootsplash_active, 1);
cleanup:
free(jpeg);
@@ -210,7 +212,8 @@ gotext:
void
disable_bootsplash(void)
{
- if (! CONFIG_BOOTSPLASH)
+ if (! CONFIG_BOOTSPLASH || !GET_EBDA(bootsplash_active))
return;
+ SET_EBDA(bootsplash_active, 0);
enable_vga_text_console();
}