.\" Copyright (c) 1998 Jonathan Lemon .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %FreeBSD: src/lib/libc/i386/sys/i386_vm86.2,v 1.3.2.5 2001/08/17 15:42:37 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man2/i386_vm86.2,v 1.4 2001/07/29 05:15:14 horikawa Exp $ .Dd July 27, 1998 .Os .Dt I386_VM86 2 .Sh 名称 .Nm i386_vm86 .Nd vm86 に関連する関数を制御する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .Ft int .Fn i386_vm86 "int function" "void *data" .Sh 解説 .Fn i386_vm86 は vm86 に関連するさまざまな関数を呼び出すのに使用します。 .Fa function は次の値の内の 1 つにできます。 .Bl -tag -offset indent -width VM86_SET_VME .It Dv VM86_INIT カーネルのプロセス用 vm86 パラメータ領域を初期化し、プロセスが vm86 呼び出しを できるようにします。 .Fa data は次の構造体を指します。 .Bd -literal struct vm86_init_args { int debug; int cpu_type; u_char int_map[32]; }; .Ed .Pp .Fa debug はデバッグコードをオンにするために使用されます。 .Fa cpu_type はエミュレート中のタイプの CPU を制御するものですが、 現時点では実装されていません。 .Fa int_map は、vm86 割り込みを vm86 モードで処理する必要があるか、またはプロセスに 反映して戻される必要があるかどうかを決定するビットマップです。 .Em N 番め のビットが設定されている場合、 割り込みはプロセスに反映されます。そうでない場合、 vm86 割り込みテーブルによってディスパッチされます。 .\" .It Dv VM86_SET_VME .\" .It Dv VM86_GET_VME .\" .It Dv VM86_INTCALL .El .Pp vm86 モードに入るには、vm86 用に正しく設定したマシンコンテキスト、そして .Em PSL_VM ビットを設定して .Xr sigreturn 2 を呼び出します。 シグナルの配信時に制御がプロセスに戻ります。 .Sh 戻り値 処理が正常に完了すると .Fn i386_vm86 は値 0 を返します。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn i386_vm86 は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EINVAL カーネルに vm86 サポートがないか、または無効な関数が指定されました。 .It Bq Er ENOMEM カーネルデータ構造体を初期化するのに十分なメモリがありません。 .El .Sh 作者 このマニュアルページは .An Jonathan Lemon が作成しました。