summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include/bootinfo.h
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2001-09-10 13:40:00 +0000
committerdfr <dfr@FreeBSD.org>2001-09-10 13:40:00 +0000
commitade9f272a1052e929d592494c4397e446099eaa5 (patch)
tree06427a959336d80b40fc7494d841518b6c06baa3 /sys/ia64/include/bootinfo.h
parentb8191006ede917ab84bb811958bf36de70c7d1d6 (diff)
downloadFreeBSD-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.h55
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;
OpenPOWER on IntegriCloud