Manpages

名 前

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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。