diff options
author | Robert Morris <[email protected]> | 2022-08-09 14:17:46 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2022-08-09 14:17:46 -0400 |
commit | 27a669ef25c11e452bf2bbe01341adb36176ab73 (patch) | |
tree | 0f478e5048d0600b5d0dec8c1eebcd5632e3a9a7 /kernel/kernelvec.S | |
parent | af9abaca0543e392812fcde1138e68892b6c70bc (diff) | |
download | xv6-labs-27a669ef25c11e452bf2bbe01341adb36176ab73.tar.gz xv6-labs-27a669ef25c11e452bf2bbe01341adb36176ab73.tar.bz2 xv6-labs-27a669ef25c11e452bf2bbe01341adb36176ab73.zip |
comment nits
Diffstat (limited to 'kernel/kernelvec.S')
-rw-r--r-- | kernel/kernelvec.S | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/kernel/kernelvec.S b/kernel/kernelvec.S index f42a364..fb31b32 100644 --- a/kernel/kernelvec.S +++ b/kernel/kernelvec.S @@ -1,17 +1,19 @@ - # + # # interrupts and exceptions while in supervisor # mode come here. # - # push all registers, call kerneltrap(), restore, return. + # the current stack is a kernel stack. + # push all registers, call kerneltrap(). + # when kerneltrap() returns, restore registers, return. # .globl kerneltrap .globl kernelvec .align 4 kernelvec: - // make room to save registers. + # make room to save registers. addi sp, sp, -256 - // save the registers. + # save the registers. sd ra, 0(sp) sd sp, 8(sp) sd gp, 16(sp) @@ -44,14 +46,14 @@ kernelvec: sd t5, 232(sp) sd t6, 240(sp) - // call the C trap handler in trap.c + # call the C trap handler in trap.c call kerneltrap - // restore registers. + # restore registers. ld ra, 0(sp) ld sp, 8(sp) ld gp, 16(sp) - // not this, in case we moved CPUs: ld tp, 24(sp) + # not tp (contains hartid), in case we moved CPUs ld t0, 32(sp) ld t1, 40(sp) ld t2, 48(sp) @@ -82,7 +84,7 @@ kernelvec: addi sp, sp, 256 - // return to whatever we were doing in the kernel. + # return to whatever we were doing in the kernel. sret # @@ -109,8 +111,9 @@ timervec: add a3, a3, a2 sd a3, 0(a1) - # raise a supervisor software interrupt. - li a1, 2 + # arrange for a supervisor software interrupt + # after this handler returns. + li a1, 2 csrw sip, a1 ld a3, 16(a0) |