VM86(2)

名前
vm86old, vm86 - 仮想 8086 モードへ移行する

書式
#include <sys/vm86.h>

int vm86old(struct vm86_struct *info);

int vm86(unsigned long fn, struct vm86plus_struct *v86);

説明
vm86() システムコールは Linux 0.97p2 で導入された。 これは Linux 2.1.15 と 2.0.28 で vm86old() に名前が変更され、 新しい vm86() が導入された。 struct vm86_struct の定義は 1.1.8 と 1.1.9 で変更された。

これらのコールによってプロセスは VM86 モード (Intel の文書では仮想 8086 モード) へと移行する。 これらのコールは dosemu で使用される。

VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションである。

返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。

エラー

EFAULT
    この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題があったことを示す。

ENOSYS
    この返り値は、このコールが現在のアーキテクチャーで実装されていないことを示す。

EPERM
    保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態であるかをチェックしている。保存されたスタックは vm86 モードで しか存在しない。)

準拠
この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 移植を意図したプログラムでは使用すべきでない。

この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。