NT4/private/ntos/nthals/haltyne/mips/x86bios.h
2020-09-30 17:12:29 +02:00

76 lines
1.7 KiB
C

/*++ BUILD Version: 0011 // Increment this if a change has global effects
Copyright (c) 1994 Microsoft Corporation
Module Name:
x86bios.h
Abstract:
This header file defines the interfaces to the x86 bios emulator.
Author:
David N. Cutler (davec) 23-Jun-1994
Revision History:
--*/
#ifndef _X86BIOS_
#define _X86BIOS_
#if !defined(_X86_)
//
// Define x86 bios emulator status codes.
//
typedef enum _X86BIOS_STATUS {
x86BiosSuccess, // X86 Emulator successfully executed adapter initialization or INT call.
x86BiosNoVideoBios, // Adapter can not be initialized because a BIOS signature was not found.
x86BiosInvalidChecksum, // Bad checksum for Video BIOS.
x86BiosInvalidInstruction, // X86 Emulator attempted to execute an invalid instruction.
x86BiosHaltInstruction, // X86 Emulator attempted to execute a HALT instruction.
x86BiosWaitInstruction, // X86 emulator attempted to execute a WAIT instruction.
x86BiosTrapFlagAsserted, // Trap flag became set. An INT 1 handler does not exist.
x86BiosDivideByZero // DIV or IDIV instruction attempted to divide by zero.
} X86BIOS_STATUS;
//
// Define x86 bios emulator context structure.
//
typedef struct _X86BIOS_CONTEXT {
ULONG Eax;
ULONG Ebx;
ULONG Ecx;
ULONG Edx;
ULONG Esi;
ULONG Edi;
ULONG Ebp;
} X86BIOS_CONTEXT, *PX86BIOS_CONTEXT;
X86BIOS_STATUS
X86BiosInitializeAdapter(
ULONG Address
);
X86BIOS_STATUS
X86BiosExecuteInt(
USHORT Type,
PX86BIOS_CONTEXT Arguments
);
VOID
X86BiosInitialize(
ULONG IsaIoVirtualBase,
ULONG IsaMemoryVirtualBase
);
#endif
#endif // _x86BIOS_