mirror of
https://github.com/reactos/reactos.git
synced 2024-10-28 00:58:20 +00:00
29fa274d6d
- TSVN choked repeatedly when attempting to merge ~9000 revs into the branch (tried 3 times on 2 different computers) - If someone wants to delete aicom-network-fixes, they are welcome to - Lesson learned: Letting a branch get thousands of revs out of date is a horrible idea svn path=/branches/aicom-network-branch/; revision=44353
62 lines
1.1 KiB
C
62 lines
1.1 KiB
C
#ifndef __V86M_
|
|
#define __V86M_
|
|
|
|
#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;
|
|
|
|
#endif
|