summaryrefslogtreecommitdiff
path: root/kernel/memlayout.h
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-07-22 14:54:40 -0400
committerRobert Morris <[email protected]>2019-07-22 14:54:40 -0400
commit6b379e4707d693bb383f51647f66ec5471d26979 (patch)
tree95d319b7b3f0747dce88ce1583483cca7c13784e /kernel/memlayout.h
parent5eab649255edc210c1e05ae62d2cb6fd0f328d8c (diff)
downloadxv6-labs-6b379e4707d693bb383f51647f66ec5471d26979.tar.gz
xv6-labs-6b379e4707d693bb383f51647f66ec5471d26979.tar.bz2
xv6-labs-6b379e4707d693bb383f51647f66ec5471d26979.zip
-MD and TRAPFRAME
Diffstat (limited to 'kernel/memlayout.h')
-rw-r--r--kernel/memlayout.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/memlayout.h b/kernel/memlayout.h
index ef5c1e1..c15e398 100644
--- a/kernel/memlayout.h
+++ b/kernel/memlayout.h
@@ -53,4 +53,15 @@
// map the trampoline page to the highest address,
// in both user and kernel space.
#define TRAMPOLINE (MAXVA - PGSIZE)
-#define KSTACK(p) (TRAMPOLINE - (p+1)* 2*PGSIZE)
+#define KSTACK(p) (TRAMPOLINE - ((p)+1)* 2*PGSIZE)
+
+// User memory layout.
+// Address zero first:
+// text
+// original data and bss
+// fixed-size stack
+// expandable heap
+// ...
+// TRAPFRAME (p->tf, used by the trampoline)
+// TRAMPOLINE (the same page as in the kernel)
+#define TRAPFRAME (TRAMPOLINE - PGSIZE)