update for mooc OS labs
This commit is contained in:
@@ -8,9 +8,9 @@
|
||||
#include <clock.h>
|
||||
#include <intr.h>
|
||||
#include <pmm.h>
|
||||
|
||||
#include <kmonitor.h>
|
||||
int kern_init(void) __attribute__((noreturn));
|
||||
|
||||
void grade_backtrace(void);
|
||||
static void lab1_switch_test(void);
|
||||
|
||||
int
|
||||
@@ -37,7 +37,7 @@ kern_init(void) {
|
||||
|
||||
//LAB1: CAHLLENGE 1 If you try to do it, uncomment lab1_switch_test()
|
||||
// user/kernel mode switch test
|
||||
//lab1_switch_test();
|
||||
lab1_switch_test();
|
||||
|
||||
/* do nothing */
|
||||
while (1);
|
||||
@@ -84,11 +84,24 @@ lab1_print_cur_status(void) {
|
||||
static void
|
||||
lab1_switch_to_user(void) {
|
||||
//LAB1 CHALLENGE 1 : TODO
|
||||
asm volatile (
|
||||
"sub $0x8, %%esp \n"
|
||||
"int %0 \n"
|
||||
"movl %%ebp, %%esp"
|
||||
:
|
||||
: "i"(T_SWITCH_TOU)
|
||||
);
|
||||
}
|
||||
|
||||
static void
|
||||
lab1_switch_to_kernel(void) {
|
||||
//LAB1 CHALLENGE 1 : TODO
|
||||
asm volatile (
|
||||
"int %0 \n"
|
||||
"movl %%ebp, %%esp \n"
|
||||
:
|
||||
: "i"(T_SWITCH_TOK)
|
||||
);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user