Merge branch 'lab4' into lab5

This commit is contained in:
Yeongjin Jang 2019-04-01 21:36:43 -07:00
commit ed614a36f0
9 changed files with 38 additions and 6 deletions

3
.gitignore vendored
View File

@ -17,3 +17,6 @@
/myapi.key
/.suf
tags
.gdb_history
peda*.txt
.*.swp

2
CODING
View File

@ -15,8 +15,6 @@ We have the following conventions in our code:
* Function names are all lower-case separated by underscores.
* Beginning-of-line indentation via tabs, not spaces.
* Preprocessor macros are always UPPERCASE.
There are a few grandfathered exceptions: assert, panic,
static_assert, offsetof.

4
README.info Normal file
View File

@ -0,0 +1,4 @@
Lab 1 : Tue 10:00 ~ 11:20
Lab 2 : Tue 12:00 ~ 13:20
Lab 3 : Wed 15:00 ~ 16:20
Lab 4 : Fri 14:00 ~ 15:20

View File

@ -22,6 +22,7 @@ struct Command {
int (*func)(int argc, char** argv, struct Trapframe* tf);
};
// LAB 1: add your command to here...
static struct Command commands[] = {
{ "help", "Display this list of commands", mon_help },
{ "kerninfo", "Display information about the kernel", mon_kerninfo },
@ -58,7 +59,9 @@ mon_kerninfo(int argc, char **argv, struct Trapframe *tf)
int
mon_backtrace(int argc, char **argv, struct Trapframe *tf)
{
// Your code here.
// LAB 1: Your code here.
// HINT 1: use read_ebp().
// HINT 2: print the current ebp on the first line (not current_ebp[0])
return 0;
}

View File

@ -75,6 +75,7 @@ sched_halt(void)
"movl %0, %%esp\n"
"pushl $0\n"
"pushl $0\n"
// LAB 4:
// Uncomment the following line after completing exercise 13
//"sti\n"
"1:\n"

View File

@ -66,14 +66,26 @@ static const char *trapname(int trapno)
}
// XYZ: write a function declaration here...
// e.g., void t_divide();
void
trap_init(void)
{
extern struct Segdesc gdt[];
/*
*
* HINT
* Do something like this: SETGATE(idt[T_DIVIDE], 0, GD_KT, t_divide, 0);
* if your trap handler's name for divide by zero is t_device.
* Additionally, you should declare trap handler as a function
* to refer that in C code... (see the comment XYZ above)
*
*/
// LAB 3: Your code here.
// Per-CPU setup
// Per-CPU setup
trap_init_percpu();
}

View File

@ -48,9 +48,15 @@
* Lab 3: Your code here for generating entry points for the different traps.
*/
// HINT 1 : TRAPHANDLER_NOEC(t_divide, T_DIVIDE);
// Do something like this if there is no error code for the trap
// HINT 2 : TRAPHANDLER(t_dblflt, T_DBLFLT);
// Do something like this if the trap includes an error code..
// HINT 3 : READ Intel's manual to check if the trap includes an error code
// or not...
/*
* Lab 3: Your code here for _alltraps
*/

View File

@ -214,7 +214,7 @@ vprintfmt(void (*putch)(int, void*), void *putdat, const char *fmt, va_list ap)
// (unsigned) octal
case 'o':
// Replace this with your code.
// LAB 1: Replace this with your code.
putch('X', putdat);
putch('X', putdat);
putch('X', putdat);

5
student.info Normal file
View File

@ -0,0 +1,5 @@
OSU ID (xxx-yyy-zzz) : 933456789
FLIP ID (e.g., jangye) : jangye
Name : Yeongjin Jang
CS 444/544 ? : 444
Lab Class # : Lab 1