diff options
author | dfr <dfr@FreeBSD.org> | 2001-09-10 13:40:00 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2001-09-10 13:40:00 +0000 |
commit | ade9f272a1052e929d592494c4397e446099eaa5 (patch) | |
tree | 06427a959336d80b40fc7494d841518b6c06baa3 /sys/ia64/include/bootinfo.h | |
parent | b8191006ede917ab84bb811958bf36de70c7d1d6 (diff) | |
download | FreeBSD-src-ade9f272a1052e929d592494c4397e446099eaa5.zip FreeBSD-src-ade9f272a1052e929d592494c4397e446099eaa5.tar.gz |
* Make a start on a realistic definition for bootinfo.
* Switch to proc0's stack and backing store before calling ia64_init
so that we don't rely on the loader's stack at all.
* Change kernel entry point name from locorestart to __start.
Diffstat (limited to 'sys/ia64/include/bootinfo.h')
-rw-r--r-- | sys/ia64/include/bootinfo.h | 55 |
1 files changed, 14 insertions, 41 deletions
diff --git a/sys/ia64/include/bootinfo.h b/sys/ia64/include/bootinfo.h index 86b7e7a..c148120 100644 --- a/sys/ia64/include/bootinfo.h +++ b/sys/ia64/include/bootinfo.h @@ -41,46 +41,19 @@ * (u_long), then the bootinfo */ -#define BOOTINFO_MAGIC 0xdeadbeeffeedface - -struct bootinfo_v1 { - u_long ssym; /* 0: start of kernel sym table */ - u_long esym; /* 8: end of kernel sym table */ - char boot_flags[64]; /* 16: boot flags */ - char booted_kernel[64]; /* 80: name of booted kernel */ - void *hwrpb; /* 144: hwrpb pointer (BEVA) */ - u_long hwrpbsize; /* 152: size of hwrpb data */ - int (*cngetc) __P((void)); /* 160: console getc pointer */ - void (*cnputc) __P((int)); /* 168: console putc pointer */ - void (*cnpollc) __P((int)); /* 176: console pollc pointer */ - u_long pad[6]; /* 184: rsvd for future use */ - char *envp; /* 232: start of environment */ - u_long kernend; /* 240: end of kernel */ - u_long modptr; /* 248: FreeBSD module base */ - /* 256: total size */ -}; - -/* - * Kernel-internal structure used to hold important bits of boot - * information. NOT to be used by boot blocks. - * - * Note that not all of the fields from the bootinfo struct(s) - * passed by the boot blocks aren't here (because they're not currently - * used by the kernel!). Fields here which aren't supplied by the - * bootinfo structure passed by the boot blocks are supposed to be - * filled in at startup with sane contents. - */ -struct bootinfo_kernel { - u_long ssym; /* start of syms */ - u_long esym; /* end of syms */ - u_long modptr; /* FreeBSD module pointer */ - u_long kernend; /* "end of kernel" from boot code */ - char *envp; /* "end of kernel" from boot code */ - u_long hwrpb_phys; /* hwrpb physical address */ - u_long hwrpb_size; /* size of hwrpb data */ - char boot_flags[64]; /* boot flags */ - char booted_kernel[64]; /* name of booted kernel */ - char booted_dev[64]; /* name of booted device */ +struct bootinfo { + char bi_flags[64]; /* boot flags */ + char bi_kernel[64]; /* name of booted kernel */ + u_int64_t bi_systab; /* pa of EFI system table */ + u_int64_t bi_memmap; /* pa of EFI memory map */ + u_int64_t bi_memmap_size; /* size of EFI memory map */ + u_int64_t bi_memdesc_size; /* sizeof EFI memory desc */ + u_int32_t bi_memdesc_version; /* EFI memory desc version */ + u_int64_t bi_symtab; /* start of kernel sym table */ + u_int64_t bi_esymtab; /* end of kernel sym table */ + u_int64_t bi_kernend; /* end of kernel space */ + u_int64_t bi_envp; /* environment */ + u_int64_t bi_modulep; /* preloaded modules */ }; -extern struct bootinfo_kernel bootinfo; +extern struct bootinfo bootinfo; |