doc/documentation/manual-pages/ja/man2/i386_vm86.2
Sergio Carlavilla Delgado 989d921f5d Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of
our new website and documentation using
the new toolchain with Hugo and AsciiDoctor.

To get more information about the new toolchain
please read the FreeBSD Documentation Project Primer[1],
Hugo docs[2] and AsciiDoctor docs[3].

Acknowledgment:
Benedict Reuschling <bcr@>
Glen Barber <gjb@>
Hiroki Sato <hrs@>
Li-Wen Hsu <lwhsu@>
Sean Chittenden <seanc@>
The FreeBSD Foundation

[1] https://docs.FreeBSD.org/en/books/fdp-primer/
[2] https://gohugo.io/documentation/
[3] https://docs.asciidoctor.org/home/

Approved by:    doceng, core
2021-01-26 00:31:29 +01:00

129 lines
4 KiB
Groff

.\" 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.15 2003/05/22 13:02:27 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 27, 1998
.Os
.Dt I386_VM86 2
.Sh 名称
.Nm i386_vm86
.Nd vm86 に関連する関数を制御する
.Sh ライブラリ
.Lb libc
.Sh 書式
.In sys/types.h
.In machine/sysarch.h
.In machine/vm86.h
.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_INTCALL
プロセスが vm86 割り込みハンドラを呼び出せるようにします。
これは効果的に INT 命令をシミュレートします。
.Fa data
は下記の構造体を指し示しているべきです:
.Bd -literal
struct vm86_intcall_args {
int intnum;
struct vm86frame vmf;
};
.Ed
.Pp
.Fa intnum
はシミュレートされた呼び出しのための INT のオペランドを指定します。
例えば、値 0x10 は VGA BIOS への呼び出しのためによく使用されます。
.Fa vmf
は割り込みハンドラのための呼び出し規約に従って、CPU のレジスタを
初期化するために使用されます。
.It Dv VM86_GET_VME
Pentium(r) プロセッサの VME (仮想 8086 モード拡張) フラグ
である CR4 の ビット 0 の現在の状態を取り出すために使用されます。
.Fa data
は下記を指し示すように初期化されるべきです:
.Bd -literal
struct vm86_vme_args {
int state; /* 状態 */
};
.Ed
.Pp
.Fa state
は戻る時に VME フラグの状態が入ります。
.\" .It Dv VM86_SET_VME
.El
.Pp
vm86 モードに入るには、vm86 用に正しく設定したマシンコンテキスト、そして
.Dv PSL_VM
ビットを設定して
.Xr sigreturn 2
を呼び出します。
シグナルの配信時に制御がプロセスに戻ります。
.Sh 戻り値
.Rv -std i386_vm86
.Sh エラー
.Fn i386_vm86
システムコールは次の場合に失敗します:
.Bl -tag -width Er
.It Bq Er EINVAL
カーネルに vm86 サポートがないか、または無効な関数が指定されました。
.It Bq Er ENOMEM
カーネルデータ構造体を初期化するのに十分なメモリがありません。
.El
.Sh 作者
.An -nosplit
このマニュアルページは
.An Jonathan Lemon
が書き、
.An Bruce M Simpson
が更新しました。