diff options
| author | Miguel <m.i@gmx.at> | 2018-09-03 15:18:16 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-03 15:18:16 +0200 |
| commit | 7eb87bf3f3fa6226657a7106eb255cbfa97758d2 (patch) | |
| tree | 2d7d2280d32180d18796999bf7687ebe5bf208df /asm/asm_start.h | |
| parent | 76b3da6022310dd8edbbbfdf4f73f1696a559853 (diff) | |
big renaming
Diffstat (limited to 'asm/asm_start.h')
| -rw-r--r-- | asm/asm_start.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/asm/asm_start.h b/asm/asm_start.h new file mode 100644 index 0000000..4b2db16 --- /dev/null +++ b/asm/asm_start.h @@ -0,0 +1,34 @@ +/** + * @file + * Defines the following sections/functions, some are linked at + * specific addresses in the final ELF kernel binary. + * This is specified in the _linker.ld_ file. + * + * TODO: THIS IS NOT TRUE ANYMORE (SINCE IT KILLED THE MEMORY IN BETWEEN PROABBLY) + * * 0x007000 .smp - entry point for application processors (16bit code) + * * 0x100000 .multiboot - the multiboot header + * + * * .text + * * .bootstrap_stack + * * _start() - main entry point for booting cpu, calls kernel_main(). + * + * The addresses for .smp and .multiboot are based on the assumption: + * * 0x00000500 - 0x00007BFF : guaranteed free to use + * * 0x00100000 - 0x00EFFFFF : free for use (if it exists) + * + * References + * ---------- + * * https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Boot-information-format + * * http://wiki.osdev.org/Bare_Bones + */ + +/** This will be called by a multiboot compilant boot-loader (i.e. grub2). + * Calls kernel_main() passing through eax and ebx: + * * eax - magic number + * * ebx - multiboot structure + * */ +void _start(); + +/** 16-bit entry point for application processors */ +void _start_smp(); + |
