We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mikanos/kernel/terminal.cpp
Lines 135 to 136 in 88b352c
SetCR3 の直後にタスクスイッチしてしまうと、戻ってきたときに current_task.Context().cr3 = 0 となっていて、 先ほど生成した PML4 ではなく、デフォルトの PML4 が CR3 に設定されてしまうのではないか?
current_task.Context().cr3
The text was updated successfully, but these errors were encountered:
Lines 142 to 143 in 88b352c
Sorry, something went wrong.
@alpha-netzilla 問題無いと思います。 タスクスイッチ(SwitchContext)の中で、そのとき CR3 に設定されていた値が Context 構造体の cr3 フィールドに保存されるからです。
mikanos/kernel/asmfunc.asm
Lines 132 to 133 in d4048a3
同様に、私が書いた 2 行の処理も問題無い気がします。
ご意見ください。
@uchan-nos ご指摘ありがとうございます。SwitchContext のコードを読み、私も問題ないと判断しました。 "その時の CR3 レジスタの値が"、"Context 構造体の cr3 フィールドに"、ここがポイントですね。
No branches or pull requests
mikanos/kernel/terminal.cpp
Lines 135 to 136 in 88b352c
SetCR3 の直後にタスクスイッチしてしまうと、戻ってきたときに
current_task.Context().cr3
= 0 となっていて、先ほど生成した PML4 ではなく、デフォルトの PML4 が CR3 に設定されてしまうのではないか?
The text was updated successfully, but these errors were encountered: