| 総合手引 | セクション 2 | オプション |
#include <sys/types.h>
#include <machine/sysarch.h>
#include <machine/vm86.h>
| VM86_INIT |
カーネルのプロセス用 vm86 パラメータ領域を初期化し、プロセスが vm86 呼び出しを
できるようにします。
data
引数は次の構造体を指します。
struct vm86_init_args {
int debug;
int cpu_type;
u_char int_map[32];
};
debug 引数はデバッグコードをオンにするために使用されます。 cpu_type 引数はエミュレート中のタイプの CPU を制御するものですが、 現時点では実装されていません。 int_map 引数は、vm86 割り込みを vm86 モードで処理する必要があるか、またはプロセスに 反映して戻される必要があるかどうかを決定するビットマップです。 N 番め のビットが設定されている場合、割り込みはプロセスに反映されます。 そうでない場合、 vm86 割り込みテーブルによってディスパッチされます。 |
| VM86_INTCALL |
プロセスが vm86 割り込みハンドラを呼び出せるようにします。
これは効果的に INT 命令をシミュレートします。
data
は下記の構造体を指し示しているべきです:
struct vm86_intcall_args {
int intnum;
struct vm86frame vmf;
};
intnum はシミュレートされた呼び出しのための INT のオペランドを指定します。 例えば、値 0x10 は VGA BIOS への呼び出しのためによく使用されます。 vmf は割り込みハンドラのための呼び出し規約に従って、CPU のレジスタを 初期化するために使用されます。 |
| VM86_GET_VME |
Pentium(r) プロセッサの VME (仮想 8086 モード拡張) フラグ
である CR4 の ビット 0 の現在の状態を取り出すために使用されます。
data
は下記を指し示すように初期化されるべきです:
struct vm86_vme_args {
int state; /* 状態 */
};
state は戻る時に VME フラグの状態が入ります。 |
vm86 モードに入るには、vm86 用に正しく設定したマシンコンテキスト、そして PSL_VM ビットを設定して sigreturn(2) を呼び出します。 シグナルの配信時に制御がプロセスに戻ります。
| [EINVAL] | |
| カーネルに vm86 サポートがないか、または無効な関数が指定されました。 | |
| [ENOMEM] | |
| カーネルデータ構造体を初期化するのに十分なメモリがありません。 | |
| I386_VM86 (2) | July 27, 1998 |
| 総合手引 | セクション 2 | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
