From 08a9d991eb38c7f9c8eef7462a0456230a0c556b Mon Sep 17 00:00:00 2001 From: Rohan Bafna Date: Sun, 12 Jan 2025 16:54:42 -0500 Subject: [PATCH] Add sentinel ebp values --- kernel/src/asm/entry.S | 3 +++ kernel/src/asm/entryother.S | 3 +++ kernel/src/asm/trapasm.S | 3 +++ kernel/src/proc.c | 2 ++ 4 files changed, 11 insertions(+) diff --git a/kernel/src/asm/entry.S b/kernel/src/asm/entry.S index b3f1afc..eceb260 100644 --- a/kernel/src/asm/entry.S +++ b/kernel/src/asm/entry.S @@ -55,6 +55,9 @@ entry: orl $(CR0_PG|CR0_WP), %eax movl %eax, %cr0 + # LAB 1: Set sentinel value of %ebp + movl $0xF00, %ebp + # Set up the stack pointer. movl $(stack + KSTACKSIZE), %esp diff --git a/kernel/src/asm/entryother.S b/kernel/src/asm/entryother.S index 757e7f9..0d36df6 100644 --- a/kernel/src/asm/entryother.S +++ b/kernel/src/asm/entryother.S @@ -67,6 +67,9 @@ start32: orl $(CR0_PE|CR0_PG|CR0_WP), %eax movl %eax, %cr0 + # LAB 1: Set sentinel value of %ebp + movl $0xF00, %ebp + # Switch to the stack allocated by startothers() movl (start-4), %esp # Call mpenter() diff --git a/kernel/src/asm/trapasm.S b/kernel/src/asm/trapasm.S index da8aefc..c0d061a 100644 --- a/kernel/src/asm/trapasm.S +++ b/kernel/src/asm/trapasm.S @@ -15,6 +15,9 @@ alltraps: movw %ax, %ds movw %ax, %es + # LAB 1: Set sentinel value of %ebp + movl $0xF00, %ebp + # Call trap(tf), where tf=%esp pushl %esp call trap diff --git a/kernel/src/proc.c b/kernel/src/proc.c index c140f40..64d3fdf 100644 --- a/kernel/src/proc.c +++ b/kernel/src/proc.c @@ -113,6 +113,8 @@ found: p->context = (struct context*)sp; memset(p->context, 0, sizeof *p->context); p->context->eip = (uint)forkret; + // LAB 1: Set sentinel value of %ebp + p->context->ebp = 0xF00; return p; } -- 2.47.3