mirror of
https://github.com/reactos/reactos.git
synced 2024-10-21 21:34:17 +00:00
9ea495ba33
svn path=/branches/header-work/; revision=45691
59 lines
1.1 KiB
C
59 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include "ketypes.h"
|
|
|
|
/* Emulate cli/sti instructions */
|
|
#define KV86M_EMULATE_CLI_STI (0x1)
|
|
/* Allow the v86 mode code to access i/o ports */
|
|
#define KV86M_ALLOW_IO_PORT_ACCESS (0x2)
|
|
|
|
typedef struct _KV86M_REGISTERS
|
|
{
|
|
/*
|
|
* General purpose registers
|
|
*/
|
|
ULONG Ebp;
|
|
ULONG Edi;
|
|
ULONG Esi;
|
|
ULONG Edx;
|
|
ULONG Ecx;
|
|
ULONG Ebx;
|
|
ULONG Eax;
|
|
ULONG Ds;
|
|
ULONG Es;
|
|
ULONG Fs;
|
|
ULONG Gs;
|
|
|
|
/*
|
|
* Control registers
|
|
*/
|
|
ULONG Eip;
|
|
ULONG Cs;
|
|
ULONG Eflags;
|
|
ULONG Esp;
|
|
ULONG Ss;
|
|
|
|
/*
|
|
* Control structures
|
|
*/
|
|
ULONG RecoveryAddress;
|
|
UCHAR RecoveryInstruction[4];
|
|
ULONG Vif;
|
|
ULONG Flags;
|
|
PNTSTATUS PStatus;
|
|
} KV86M_REGISTERS, *PKV86M_REGISTERS;
|
|
|
|
typedef struct _KV86M_TRAP_FRAME
|
|
{
|
|
KTRAP_FRAME Tf;
|
|
|
|
ULONG SavedExceptionStack;
|
|
|
|
/*
|
|
* These are put on the top of the stack by the routine that entered
|
|
* v86 mode so the exception handlers can find the control information
|
|
*/
|
|
struct _KV86M_REGISTERS* regs;
|
|
ULONG orig_ebp;
|
|
} KV86M_TRAP_FRAME, *PKV86M_TRAP_FRAME;
|