diff paper/chapter/02-cbc.tex @ 150:4c0d2a58f6e5

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 16 Feb 2021 14:23:37 +0900
parents 911bf1a2c6fa
children c9fb8f47a921
line wrap: on
line diff
--- a/paper/chapter/02-cbc.tex	Mon Feb 15 15:20:40 2021 +0900
+++ b/paper/chapter/02-cbc.tex	Tue Feb 16 14:23:37 2021 +0900
@@ -70,8 +70,10 @@
 CbCを利用したシステムコールのディスパッチ部分をソースコード\ref{src:cbc_syscall_example}に示す。
 この例題では特定のシステムコールの場合、 CbCで実装された処理に\texttt{goto}文をつかって継続する。
 例題ではCodeGearへのアドレスが配列\texttt{cbccodes}に格納されている。
-引数として渡している\texttt{cbc\_ret}は、 システムコールの返り値の数値をレジスタに代入するCodeGearである。
+引数として渡している\texttt{cbc\_ret}は、 システムコールの返り値の数値をレジスタに代入するCodeGearのアドレスである。
 実際に\texttt{cbc\_ret}に継続が行われるのは、 \texttt{read}などのシステムコールの一連の処理の継続が終わったタイミングである。
+この例題はGearsOSにあるStubCodeGearの仕組みを導入していない為、 直接CodeGearのアドレスを利用し継続している。
+GearsOSでは直接CodeGearのアドレスを利用するのはメタ計算のみであり、 ノーマルレベルではアドレスを扱うことはない。
 
 \lstinputlisting[label=src:cbc_syscall_example, caption=CbCを利用したシステムコールのディスパッチ]{src/xv6_syscall.cbc}