ip of xv6: 10.0.2.15
ip of host: 10.0.2.2
這個 lab 要我們完成 e1000_transmit() 和 e1000_recv()
trace code
檔案介紹:
kernel/e1000.c: init, transmiting, receving
kernel/e1000_dev.h: registers and flag by E1000 manual
kernel/proc.c: yeild()
yeild() 讓 myproc() 的 state 變成 RUNNABLE
並且呼叫 sched(),sched() 可以讓其他 function 也有機會可以被執行到
yeild() 想要做的事情是:
"我用 CPU 用夠久了,可以換其他人使用了"
所謂的 "換其他人使用" 也就是呼叫 sched(),它會幫我們處理
// Give up the CPU for one scheduling round.
void
yield(void)