X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=elilo.h;h=4809fbe4ab880d9b8920a605977ed041cde4b717;hb=aaccd566c8920f39c752a07aea130f710b9fca3c;hp=9d2861796dcfd0a0d9f183a6a0c2bc267aee4804;hpb=054761502f884ae2cb147c75bd17a660fe63b071;p=debian%2Felilo diff --git a/elilo.h b/elilo.h index 9d28617..4809fbe 100644 --- a/elilo.h +++ b/elilo.h @@ -29,8 +29,16 @@ #ifndef __ELILO_H__ #define __ELILO_H__ +#define ELILO_VERSION L"3.12" + #include +#ifdef CONFIG_ia32 +#define PTR_FMT L"0x%x" +#else +#define PTR_FMT L"0x%lx" +#endif + #include "elilo_debug.h" #include "fileops.h" @@ -60,11 +68,17 @@ #define CMDLINE_MAXLEN 512 /* needed by ia32 */ #define FILENAME_MAXLEN 256 #define MAX_ARGS 256 +/* Just pick an arbitrary number that's high enough for now :o) */ +#define MAX_DEFAULT_CONFIGS 16 typedef struct { UINT8 nothing_yet; } image_opt_t; +typedef struct config_file { + CHAR16 fname[FILENAME_MAXLEN]; +} config_file_t; + typedef struct { /* * list of options controllable from both the command line @@ -75,6 +89,7 @@ typedef struct { UINTN delay; /* delay before booting the image */ UINTN verbose; /* verbosity level [1-5] */ CHAR16 initrd[FILENAME_MAXLEN]; /* name of file for initial ramdisk */ + CHAR16 vmcode[FILENAME_MAXLEN]; /* name of file for boot time module*/ UINT8 delay_set; /* mark whether or not delay was specified on cmdline */ UINT8 edd30_on; /* true is EDD30 variable is TRUE */ UINT8 edd30_no_force; /* don't force EDD30 variable to true */ @@ -91,7 +106,8 @@ typedef struct { sys_img_options_t *sys_img_opts; /* architecture depdendent per image options */ CHAR16 default_kernel[FILENAME_MAXLEN]; - CHAR16 default_config[FILENAME_MAXLEN]; + /* CHAR16 default_config[FILENAME_MAXLEN]; */ + config_file_t default_configs[MAX_DEFAULT_CONFIGS]; CHAR16 config[FILENAME_MAXLEN]; /* name of config file */ CHAR16 chooser[FILENAME_MAXLEN]; /* image chooser to use */ @@ -105,6 +121,7 @@ extern EFI_SYSTEM_TABLE *systab; typedef struct { VOID *start_addr; UINTN pgcnt; + UINTN size; } memdesc_t; typedef struct { @@ -141,6 +158,7 @@ extern VOID *alloc_pages(UINTN, EFI_MEMORY_TYPE, EFI_ALLOCATE_TYPE, VOID *); extern VOID free_pages(VOID *); extern VOID free_all(VOID); extern INTN alloc_kmem(VOID *, UINTN); +extern INTN alloc_kmem_anywhere(VOID **, UINTN); extern VOID free_kmem(VOID); extern VOID free_all_memory(VOID); @@ -160,9 +178,9 @@ extern VOID ascii2U(CHAR8 *, CHAR16 *, UINTN); extern VOID U2ascii(CHAR16 *, CHAR8 *, UINTN); /* from config.c (more in config.h) */ -extern EFI_STATUS read_config(CHAR16 *, INTN retry); +extern EFI_STATUS read_config(CHAR16 *); extern VOID print_config_options(VOID); -extern INTN find_label(CHAR16 *, CHAR16 *, CHAR16 *, CHAR16 *); +extern INTN find_label(CHAR16 *, CHAR16 *, CHAR16 *, CHAR16 *, CHAR16 *); extern VOID print_label_list(VOID); extern INTN config_init(VOID); extern CHAR16 *get_message_filename(INTN which); @@ -171,13 +189,13 @@ extern VOID *get_next_description(VOID *prev, CHAR16 **label, CHAR16 **descripti extern CHAR16 *get_config_file(VOID); /* from initrd.c */ -extern INTN load_initrd(CHAR16 *, memdesc_t *); +extern INTN load_file(CHAR16 *, memdesc_t *); /* from alternate.c */ -extern INTN alternate_kernel(CHAR16 *, INTN); +extern INTN alternate_kernel(CHAR16 *, UINTN); /* from bootparams.c */ -extern VOID *create_boot_params (CHAR16 *, memdesc_t *, UINTN *); +extern VOID *create_boot_params (CHAR16 *, memdesc_t *, memdesc_t *, UINTN *); extern VOID free_boot_params(VOID *bp); /* @@ -185,7 +203,7 @@ extern VOID free_boot_params(VOID *bp); */ -extern INTN sysdeps_create_boot_params(boot_params_t *, CHAR8 *, memdesc_t *, UINTN *); +extern INTN sysdeps_create_boot_params(boot_params_t *, CHAR8 *, memdesc_t *, memdesc_t *, UINTN *); extern VOID sysdeps_free_boot_params(boot_params_t *); extern INTN sysdeps_init(EFI_HANDLE dev); extern INTN sysdeps_initrd_get_addr(kdesc_t *, memdesc_t *);