Mercurial > hg > Papers > 2019 > mitsuki-master
changeset 36:68f10de82b87
update
author | mir3636 |
---|---|
date | Thu, 07 Feb 2019 11:03:10 +0900 |
parents | 52521f53f29d |
children | ae5601060567 |
files | paper/generate_code.tex paper/master_paper.pdf paper/xv6.tex |
diffstat | 3 files changed, 8 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/generate_code.tex Thu Feb 07 10:45:28 2019 +0900 +++ b/paper/generate_code.tex Thu Feb 07 11:03:10 2019 +0900 @@ -95,7 +95,12 @@ \section{Context の生成} generate\_context は Context を生成する Perl スクリプトである。 Context は生成する際に Code Gear のリストとアドレスの対応、 -引数格納用の Data Gear の生成、 +引数格納用の Data Gear の生成を行う。 + +このため Gears OS で新たに Code Gear、Data Gear を定義した際には、 +Code Gear、Data Gear の enum のリストの更新、引数格納用の Data Gear の Allocation を行うコードの記述を行わなければならなかった。 + +generate\_context を用いることでこれらの煩雑な記述を自動生成で行えるようにした。 \begin{figure}[ht] \begin{center} @@ -105,9 +110,7 @@ \label{fig:gc} \end{figure} -Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。 - -generate\_context は context.h を読み宣言されている Data Gear を取得する。 +generate\_context は Context の定義が記述されている context.h を読み、宣言されている Data Gear を取得する。 Code Gear の取得は指定された generate\_stub で生成されたコードから \_\_code 型を見て行う。 取得した Code Gear、Data Gear の enum の定義は enumCode.h、enumData.h に生成される。
--- a/paper/xv6.tex Thu Feb 07 10:45:28 2019 +0900 +++ b/paper/xv6.tex Thu Feb 07 11:03:10 2019 +0900 @@ -90,6 +90,7 @@ GCC 上で実装した CbC コンパイラを ARM 向けに build し xv6-rpi をコンパイルした。 これにより、 xv6-rpi を CbC で書き換えることができるようになった。 +\section{システムコールの書き換え} ソースコード \ref{syscall} は syscall() におけるシステムコールの呼び出しを行うコードである。 システムコールはソースコード \ref{syscall_list} の関数のリストから呼び出される。 CbC でも同様に num で指定された番号の cbccodes のリストの Code Gear へ goto する。 @@ -114,11 +115,3 @@ } \end{lstlisting} - - - - - - -\section{システムコールの書き換え} -