1 |
/* |
/* |
2 |
* PUPA -- Preliminary Universal Programming Architecture for GRUB |
* PUPA -- Preliminary Universal Programming Architecture for GRUB |
3 |
* Copyright (C) 2002 Yoshinori K. Okuji <okuji@enbug.org> |
* Copyright (C) 2002 Yoshinori K. Okuji <okuji@enbug.org> |
4 |
|
* Copyright (C) 2003 Jeroen Dekkers <jeroen@dekkers.cx> |
5 |
* |
* |
6 |
* This program is free software; you can redistribute it and/or modify |
* This program is free software; you can redistribute it and/or modify |
7 |
* it under the terms of the GNU General Public License as published by |
* it under the terms of the GNU General Public License as published by |
23 |
|
|
24 |
#include <pupa/types.h> |
#include <pupa/types.h> |
25 |
#include <pupa/symbol.h> |
#include <pupa/symbol.h> |
26 |
|
#include <pupa/machine/multiboot.h> |
27 |
|
|
28 |
extern pupa_uint32_t EXPORT_VAR(pupa_linux_prot_size); |
extern pupa_uint32_t EXPORT_VAR(pupa_linux_prot_size); |
29 |
extern char *EXPORT_VAR(pupa_linux_tmp_addr); |
extern char *EXPORT_VAR(pupa_linux_tmp_addr); |
35 |
/* This is an asm part of the chainloader. */ |
/* This is an asm part of the chainloader. */ |
36 |
void EXPORT_FUNC(pupa_chainloader_real_boot) (int drive, void *part_addr) __attribute__ ((noreturn)); |
void EXPORT_FUNC(pupa_chainloader_real_boot) (int drive, void *part_addr) __attribute__ ((noreturn)); |
37 |
|
|
38 |
|
/* The asm part of the multiboot loader. */ |
39 |
|
void EXPORT_FUNC(pupa_multiboot_real_boot) (pupa_addr_t entry, |
40 |
|
struct pupa_multiboot_info *mbi) |
41 |
|
__attribute__ ((noreturn)); |
42 |
|
|
43 |
/* It is necessary to export these functions, because normal mode commands |
/* It is necessary to export these functions, because normal mode commands |
44 |
reuse rescue mode commands. */ |
reuse rescue mode commands. */ |
45 |
void pupa_rescue_cmd_chainloader (int argc, char *argv[]); |
void pupa_rescue_cmd_chainloader (int argc, char *argv[]); |
46 |
void pupa_rescue_cmd_linux (int argc, char *argv[]); |
void pupa_rescue_cmd_linux (int argc, char *argv[]); |
47 |
void pupa_rescue_cmd_initrd (int argc, char *argv[]); |
void pupa_rescue_cmd_initrd (int argc, char *argv[]); |
48 |
|
void pupa_rescue_cmd_multiboot (int argc, char *argv[]); |
49 |
|
void pupa_rescue_cmd_module (int argc, char *argv[]); |
50 |
|
|
51 |
#endif /* ! PUPA_LOADER_MACHINE_HEADER */ |
#endif /* ! PUPA_LOADER_MACHINE_HEADER */ |