2003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod. (_multiboot_mod_SOURCES): New variable. (_multiboot_mod_CFLAGS): Likewise. * loader/i386/pc/multiboot.c: New file. * include/pupa/i386/pc/multiboot.h: Likewise. * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h. (pupa_multiboot_real_boot): New function. * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h. (pupa_multiboot_real_boot): New prototype. (pupa_rescue_cmd_multiboot): Likewise (pupa_rescue_cmd_module): Likewise. * kern/loader.c (pupa_loader_set): Continue when pupa_loader_unload_func() fails. (pupa_loader_unset): New function. * include/pupa/loader.h (pupa_loader_unset): New prototype. * kern/misc.c (pupa_stpcpy): New function. * include/pupa/misc.h (pupa_stpcpy): New prototype.
This commit is contained in:
parent
8e72a9c0e3
commit
9a5c1adeaa
11 changed files with 672 additions and 4 deletions
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* PUPA -- Preliminary Universal Programming Architecture for GRUB
|
||||
* Copyright (C) 2002 Yoshinori K. Okuji <okuji@enbug.org>
|
||||
* Copyright (C) 2003 Jeroen Dekkers <jeroen@dekkers.cx>
|
||||
*
|
||||
* PUPA is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -32,8 +33,7 @@ pupa_loader_set (pupa_err_t (*boot) (void),
|
|||
pupa_err_t (*unload) (void))
|
||||
{
|
||||
if (pupa_loader_loaded && pupa_loader_unload_func)
|
||||
if (pupa_loader_unload_func () != PUPA_ERR_NONE)
|
||||
return;
|
||||
pupa_loader_unload_func ();
|
||||
|
||||
pupa_loader_boot_func = boot;
|
||||
pupa_loader_unload_func = unload;
|
||||
|
@ -41,6 +41,18 @@ pupa_loader_set (pupa_err_t (*boot) (void),
|
|||
pupa_loader_loaded = 1;
|
||||
}
|
||||
|
||||
void
|
||||
pupa_loader_unset(void)
|
||||
{
|
||||
if (pupa_loader_loaded && pupa_loader_unload_func)
|
||||
pupa_loader_unload_func ();
|
||||
|
||||
pupa_loader_boot_func = 0;
|
||||
pupa_loader_unload_func = 0;
|
||||
|
||||
pupa_loader_loaded = 0;
|
||||
}
|
||||
|
||||
pupa_err_t
|
||||
pupa_loader_boot (void)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue