I386_VM86(2)

名称
i386_vm86 - vm86 に関連する関数を制御する

ライブラリ
libc

書式
<sys/types.h> <machine/sysarch.h> <machine/vm86.h> int i386_vm86(int function, void *data)

解説
i386_vm86() は vm86 に関連するさまざまな関数を呼び出すのに使用します。 function は次の値の内の 1 つにできます。

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 モードに入るには、vm86 用に正しく設定したマシンコンテキスト、そして PSL_VM ビットを設定して sigreturn(2) を呼び出します。 シグナルの配信時に制御がプロセスに戻ります。

戻り値

エラー
i386_vm86() は次の場合に失敗します:

[EINVAL]
    カーネルに vm86 サポートがないか、または無効な関数が指定されました。

[ENOMEM]
    カーネルデータ構造体を初期化するのに十分なメモリがありません。

作者
このマニュアルページは Jonathan Lemon が作成しました。