i386_vm86(2) FreeBSD 一般コマンドマニュアル

i386_vm86

前のページ 上に戻る 次のページ

i386_vm86




書式

     #include <sys/types.h>
     #include <machine/sysarch.h>
     #include <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() は、処理が成功すると値 0 を返します。そうでない場合、値
     -1 が返され、グローバル変数 errno が設定されてエラーを示します。


エラー

     i386_vm86() は次の場合に失敗します。

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

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


作者

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

ABELNET VPSサービス