/*++ BUILD Version: 0000 // Increment this if a change has global effects Copyright (c) 1994 Microsoft Corporation Module Name: x86new.h Abstract: This module contains the public header file that describes the HAL interfaces to the 386/486 BIOS emulation. Author: David N. Cutler (davec) 13-Nov-1994 Revision History: --*/ #ifndef _X86NEW_ #define _X86NEW_ // // PCI Bios function code defintitions. // // AH: // #define PCI_FUNCTION_ID 0xb1 // // AL: // #define PCI_BIOS_PRESENT 0x01 #define PCI_FIND_DEVICE 0x02 #define PCI_FIND_CLASS_CODE 0x03 #define PCI_GENERATE_CYCLE 0x06 #define PCI_READ_CONFIG_BYTE 0x08 #define PCI_READ_CONFIG_WORD 0x09 #define PCI_READ_CONFIG_DWORD 0x0a #define PCI_WRITE_CONFIG_BYTE 0x0b #define PCI_WRITE_CONFIG_WORD 0x0c #define PCI_WRITE_CONFIG_DWORD 0x0d #define PCI_GET_IRQ_ROUTING 0x0e #define PCI_SET_IRQ 0x0f // // PCI Bios function return code values. // #define PCI_SUCCESS 0x00 #define PCI_NOT_SUPPORTED 0x81 #define PCI_BAD_VENDOR_ID 0x83 #define PCI_DEVICE_NOT_FOUND 0x86 #define PCI_BAD_REGISTER 0x87 #define PCI_SET_FAILED 0x88 #define PCI_BUFFER_TOO_SMALL 0x89 // // Miscellaneous PCI codes. // #define PCI_CONFIG_MECHANISM_2 0x02 #define PCI_ILLEGAL_VENDOR_ID 0xffff // // Define PCI get/set function type. // typedef ULONG (*PGETSETPCIBUSDATA)( IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); // // Define BIOS emulation interfaces. // VOID x86BiosInitializeBios ( IN PVOID BiosIoSpace, IN PVOID BiosIoMemory ); VOID x86BiosInitializeBiosEx ( IN PVOID BiosIoSpace, IN PVOID BiosIoMemory, IN PVOID BiosTransferMemory, IN ULONG TransferLength ); VOID x86BiosInitializeBiosShadowed ( IN PVOID BiosIoSpace, IN PVOID BiosIoMemory, IN PVOID BiosFrameBuffer ); VOID x86BiosInitializeBiosShadowedPci ( IN PVOID BiosIoSpace, IN PVOID BiosIoMemory, IN PVOID BiosFrameBuffer, IN UCHAR NumberPciBusses, IN PGETSETPCIBUSDATA GetPciData, IN PGETSETPCIBUSDATA SetPciData ); XM_STATUS x86BiosExecuteInterrupt ( IN UCHAR Number, IN OUT PXM86_CONTEXT Context, IN PVOID BiosIoSpace OPTIONAL, IN PVOID BiosIoMemory OPTIONAL ); XM_STATUS x86BiosExecuteInterruptShadowed ( IN UCHAR Number, IN OUT PXM86_CONTEXT Context, IN PVOID BiosIoSpace OPTIONAL, IN PVOID BiosIoMemory OPTIONAL, IN PVOID BiosFrameBuffer OPTIONAL ); XM_STATUS x86BiosExecuteInterruptShadowedPci ( IN UCHAR Number, IN OUT PXM86_CONTEXT Context, IN PVOID BiosIoSpace OPTIONAL, IN PVOID BiosIoMemory OPTIONAL, IN PVOID BiosFrameBuffer OPTIONAL, IN UCHAR NumberPciBusses, IN PGETSETPCIBUSDATA GetPciData, IN PGETSETPCIBUSDATA SetPciData ); XM_STATUS x86BiosInitializeAdapter ( IN ULONG Adapter, IN OUT PXM86_CONTEXT Context OPTIONAL, IN PVOID BiosIoSpace OPTIONAL, IN PVOID BiosIoMemory OPTIONAL ); XM_STATUS x86BiosInitializeAdapterShadowed ( IN ULONG Adapter, IN OUT PXM86_CONTEXT Context OPTIONAL, IN PVOID BiosIoSpace OPTIONAL, IN PVOID BiosIoMemory OPTIONAL, IN PVOID BiosFrameBuffer OPTIONAL ); XM_STATUS x86BiosInitializeAdapterShadowedPci( IN ULONG Adapter, IN OUT PXM86_CONTEXT Context OPTIONAL, IN PVOID BiosIoSpace OPTIONAL, IN PVOID BiosIoMemory OPTIONAL, IN PVOID BiosFrameBuffer OPTIONAL, IN UCHAR NumberPciBusses, IN PGETSETPCIBUSDATA GetPciData, IN PGETSETPCIBUSDATA SetPciData ); #endif // _X86NEW_