Windows2000/private/ntos/inc/v86emul.h

121 lines
2.2 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1989 Microsoft Corporation
Module Name:
v86emul.h
Abstract:
This module contains the V86 instruction emulator interface definitions
used by kernel device drivers.
Author:
Andre Vachon (andreva) 8-Jan-1992
Revision History:
*/
#ifndef _V86EMUL_
#define _V86EMUL_
// begin_ntminiport
// Structures used by the kernel drivers to describe which ports must be
// hooked out directly from the V86 emulator to the driver.
typedef enum _EMULATOR_PORT_ACCESS_TYPE {
Uchar,
Ushort,
Ulong
} EMULATOR_PORT_ACCESS_TYPE, *PEMULATOR_PORT_ACCESS_TYPE;
// Access Modes
#define EMULATOR_READ_ACCESS 0x01
#define EMULATOR_WRITE_ACCESS 0x02
typedef struct _EMULATOR_ACCESS_ENTRY {
ULONG BasePort;
ULONG NumConsecutivePorts;
EMULATOR_PORT_ACCESS_TYPE AccessType;
UCHAR AccessMode;
UCHAR StringSupport;
PVOID Routine;
} EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY;
// end_ntminiport
// These are the various function prototypes of the routines that are
// provided by the kernel driver to hook out access to io ports.
typedef
NTSTATUS
(*PDRIVER_IO_PORT_UCHAR ) (
IN ULONG_PTR Context,
IN ULONG Port,
IN UCHAR AccessMode,
IN OUT PUCHAR Data
);
typedef
NTSTATUS
(*PDRIVER_IO_PORT_UCHAR_STRING ) (
IN ULONG_PTR Context,
IN ULONG Port,
IN UCHAR AccessMode,
IN OUT PUCHAR Data,
IN ULONG DataLength
);
typedef
NTSTATUS
(*PDRIVER_IO_PORT_USHORT ) (
IN ULONG_PTR Context,
IN ULONG Port,
IN UCHAR AccessMode,
IN OUT PUSHORT Data
);
typedef
NTSTATUS
(*PDRIVER_IO_PORT_USHORT_STRING ) (
IN ULONG_PTR Context,
IN ULONG Port,
IN UCHAR AccessMode,
IN OUT PUSHORT Data,
IN ULONG DataLength // number of words
);
typedef
NTSTATUS
(*PDRIVER_IO_PORT_ULONG ) (
IN ULONG_PTR Context,
IN ULONG Port,
IN UCHAR AccessMode,
IN OUT PULONG Data
);
typedef
NTSTATUS
(*PDRIVER_IO_PORT_ULONG_STRING ) (
IN ULONG_PTR Context,
IN ULONG Port,
IN UCHAR AccessMode,
IN OUT PULONG Data,
IN ULONG DataLength // number of dwords
);
#endif // _V86EMUL_