projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Comments.
[pintos-anon]
/
src
/
threads
/
kernel.lds.S
diff --git
a/src/threads/kernel.lds.S
b/src/threads/kernel.lds.S
index b5426e034b8c9c9662fe53c67908b95728a5e9e5..3b7f8b1f0e789b6414d096d73e7b522630440526 100644
(file)
--- a/
src/threads/kernel.lds.S
+++ b/
src/threads/kernel.lds.S
@@
-1,18
+1,21
@@
-#include "loader.h"
+#include "
threads/
loader.h"
OUTPUT_FORMAT("elf32-i386")
OUTPUT_ARCH("i386")
OUTPUT_FORMAT("elf32-i386")
OUTPUT_ARCH("i386")
-ENTRY(start)
+ENTRY(start)
/* Kernel starts at "start" symbol. */
SECTIONS
{
SECTIONS
{
+ /* Specifies the virtual address for the kernel base. */
. = LOADER_PHYS_BASE + LOADER_KERN_BASE;
_start = .;
. = LOADER_PHYS_BASE + LOADER_KERN_BASE;
_start = .;
- .text : { *(.text) } = 0x9090
+ /* Kernel starts with code, followed by read-only data and writable data. */
+ .text : { *(.start) *(.text) } = 0x9090
.rodata : { *(.rodata) *(.rodata.*) }
.data : { *(.data) }
.rodata : { *(.rodata) *(.rodata.*) }
.data : { *(.data) }
+ /* BSS (zero-initialized data) is after everything else. */
_start_bss = .;
.bss : { *(.bss) }
_end_bss = .;
_start_bss = .;
.bss : { *(.bss) }
_end_bss = .;