^-^
Why so serious?
lec6 System Call Entry and Exit
  1. 课前准备
    1. RISC-V trap machinery
      1. 最重要的寄存器概述
      2. 强制触发 trap 的硬件操作
    2. Traps from user space
      1. uservec
      2. usertrap
      3. usertrapret
      4. userret
    3. Code: Calling system calls
    4. Code: System call arguments
      1. 指针参数
    5. Traps from kernel space
      1. kernelvec:进入
      2. kerneltrap:进入
        1. 定时器中断
      3. kerneltrap:返回
      4. kernelvec:返回
      5. usertrap:防止设备中断
    6. Real World
  2. Trap 机制
    1. Supervisor 寄存器
      1. 特权模式不特权
    2. 用户空间 trap
    3. 隔离性与透明
  3. Trap代码执行流程
  4. ECALL 之前的状态
    1. write
    2. 此时的页表
  5. ECALL指令之后的状态
    1. ecall
    2. 页表
    3. 接下来
      1. 为什么ecall不让硬件替我们完成这些事?
  6. uservec函数
    1. 保存用户寄存器
    2. 准备内核环境:栈和页表
  7. usertrap函数
  8. usertrapret函数
  9. userret函数
    1. 总结