VM86(2)

名前
vm86 - 仮想 8086 モードへ入る

書式
#include <sys/vm86.h>

int vm86(struct vm86_struct * info);

説明
info で指定される情報を持ってVM86 モード(仮想86モード)へ入る。 infoは次の通り。
    struct vm86_struct {
            struct vm86_regs regs;
            unsigned long flags;
            unsigned long screen_bitmap;
    };
    struct vm86_regs {
    /*
     * normal regs, with special meaning for the segment descriptors..
     */
            long ebx;
            long ecx;
            long edx;
            long esi;
            long edi;
            long ebp;
            long eax;
            long __null_ds;
            long __null_es;
            long __null_fs;
            long __null_gs;
            long orig_eax;
            long eip;
            long cs;
            long eflags;
            long esp;
            long ss;
    /*
     * these are specific to v86 mode:
     */
            long es;
            long ds;
            long fs;
            long gs;
    };

返り値.
成功した場合 0 が返る。失敗した場合 -1 が返り、 errno がエラーの内容に従って設定される。

エラー

EPERM
    保存されたカーネルスタックが既に存在している。(これはカーネルが健全で あることをチェックする。保存されたスタックは vm86 モード内でしか存在で きない。)

準拠
この関数は Intel プロセッサ上の Linux 特有の関数であり、移植性を持たせ たいプログラムには使用すべきでない。