[Mona] DLLサポート機能実装
以前からご要望のありました、DLLのサポート機能を実装しました。
具体的なポイントは以下の通り。
・各プロセスのリニアアドレス0x30000000-0x40000000(256MB)をDLL共有領域としました。
・通常のプロセスから共有領域は読み込みのみ可能です。
・syscall_set_dll_segment_writable()を呼んだプロセスは共有メモリに書き込み可能となります。(プロセスサーバなどの一部のプロセスが使用することを想定しています。)
・DLL共有領域に含まれる各4KBのページは、ページ単位に「共有しない」設定にすることができます。syscall_set_dll_segment_notshared(ページ番号)。これを利用することによりDLLに含まれるセグメントでプロセス間で共有したくないものを制御できます。
※Mona/sample/non-gui/helloに簡単な使用例のコードがあります。
なおこの実装は仕様がFixしているものではないことにご注意ください。
ご要望いただいている機能を満たすよう実装しましたが、お使いいただいた後のフィードバックで仕様変更となる可能性があります。
さて、DLLサポート機能の実装が一区切りついたので来週は、ソースツリー分割がんばりますヽ(´ー`)ノ。