restore patches lost when merging NMU diff
[debian/elilo] / elilo.h
diff --git a/elilo.h b/elilo.h
index 9d2861796dcfd0a0d9f183a6a0c2bc267aee4804..4809fbe4ab880d9b8920a605977ed041cde4b717 100644 (file)
--- a/elilo.h
+++ b/elilo.h
 #ifndef __ELILO_H__
 #define __ELILO_H__
 
+#define ELILO_VERSION L"3.12"
+
 #include <efi.h>
 
+#ifdef CONFIG_ia32
+#define PTR_FMT L"0x%x"
+#else
+#define PTR_FMT L"0x%lx"
+#endif
+
 #include "elilo_debug.h"
 
 #include "fileops.h"
 #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 *);