X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=elilo.h;h=bd0cd0b69bbdda709f77eea887a1f28d3c157960;hb=4386d0ddc988a11e8f55d774f577e4ca4f83cea9;hp=9d2861796dcfd0a0d9f183a6a0c2bc267aee4804;hpb=054761502f884ae2cb147c75bd17a660fe63b071;p=debian%2Felilo diff --git a/elilo.h b/elilo.h index 9d28617..bd0cd0b 100644 --- a/elilo.h +++ b/elilo.h @@ -29,8 +29,16 @@ #ifndef __ELILO_H__ #define __ELILO_H__ +#define ELILO_VERSION L"3.14" + #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" @@ -46,6 +54,10 @@ #define ROUNDUP(x,a) (((x) + (a) - 1) & ~((a) - 1)) #define ROUNDDOWN(x,a) ((x) & ~((a) - 1)) +#ifndef UINT32_MAX +#define UINT32_MAX ((UINT32)-1) +#endif + /* * Elilo Boot modes */ @@ -57,14 +69,21 @@ #define ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY #define ELILO_TIMEOUT_INFINITY (~0UL) -#define CMDLINE_MAXLEN 512 /* needed by ia32 */ +#define CMDLINE_MAXLEN 2048 +#define PATHNAME_MAXLEN 512 #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 +94,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 +111,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 +126,7 @@ extern EFI_SYSTEM_TABLE *systab; typedef struct { VOID *start_addr; UINTN pgcnt; + UINTN size; } memdesc_t; typedef struct { @@ -141,6 +163,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 +183,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 +194,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 +208,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 *); @@ -194,6 +217,7 @@ extern CHAR16 *sysdeps_get_cmdline_opts(VOID); extern INTN sysdeps_getopt(INTN, INTN, CHAR16 *); extern VOID sysdeps_print_cmdline_opts(VOID); extern INTN sysdeps_register_options(VOID); +extern VOID *sysdeps_checkfix_initrd(VOID *, memdesc_t *); #define CHAR_SLASH L'/' #define CHAR_BACKSLASH L'\\'