diff options
Diffstat (limited to 'qemu/roms/u-boot/drivers/bios_emulator/include/biosemu.h')
-rw-r--r-- | qemu/roms/u-boot/drivers/bios_emulator/include/biosemu.h | 392 |
1 files changed, 0 insertions, 392 deletions
diff --git a/qemu/roms/u-boot/drivers/bios_emulator/include/biosemu.h b/qemu/roms/u-boot/drivers/bios_emulator/include/biosemu.h deleted file mode 100644 index e92e96e82..000000000 --- a/qemu/roms/u-boot/drivers/bios_emulator/include/biosemu.h +++ /dev/null @@ -1,392 +0,0 @@ -/**************************************************************************** -* -* BIOS emulator and interface -* to Realmode X86 Emulator Library -* -* Copyright (C) 1996-1999 SciTech Software, Inc. -* -* ======================================================================== -* -* Permission to use, copy, modify, distribute, and sell this software and -* its documentation for any purpose is hereby granted without fee, -* provided that the above copyright notice appear in all copies and that -* both that copyright notice and this permission notice appear in -* supporting documentation, and that the name of the authors not be used -* in advertising or publicity pertaining to distribution of the software -* without specific, written prior permission. The authors makes no -* representations about the suitability of this software for any purpose. -* It is provided "as is" without express or implied warranty. -* -* THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -* EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR -* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF -* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -* PERFORMANCE OF THIS SOFTWARE. -* -* ======================================================================== -* -* Language: ANSI C -* Environment: Any -* Developer: Kendall Bennett -* -* Description: Header file for the real mode x86 BIOS emulator, which is -* used to warmboot any number of VGA compatible PCI/AGP -* controllers under any OS, on any processor family that -* supports PCI. We also allow the user application to call -* real mode BIOS functions and Int 10h functions (including -* the VESA BIOS). -* -****************************************************************************/ - -#ifndef __BIOSEMU_H -#define __BIOSEMU_H - -#ifdef __KERNEL__ -#include "x86emu.h" -#else -#include "x86emu.h" -#include "pmapi.h" -#include "pcilib.h" -#endif - -/*---------------------- Macros and type definitions ----------------------*/ - -#pragma pack(1) - -#ifndef __KERNEL__ -/**************************************************************************** -REMARKS: -Data structure used to describe the details specific to a particular VGA -controller. This information is used to allow the VGA controller to be -swapped on the fly within the BIOS emulator. - -HEADER: -biosemu.h - -MEMBERS: -pciInfo - PCI device information block for the controller -BIOSImage - Pointer to a read/write copy of the BIOS image -BIOSImageLen - Length of the BIOS image -LowMem - Copy of key low memory areas -****************************************************************************/ -typedef struct { - PCIDeviceInfo *pciInfo; - void *BIOSImage; - ulong BIOSImageLen; - uchar LowMem[1536]; -} BE_VGAInfo; -#else -/**************************************************************************** -REMARKS: -Data structure used to describe the details for the BIOS emulator system -environment as used by the X86 emulator library. - -HEADER: -biosemu.h - -MEMBERS: -vgaInfo - VGA BIOS information structure -biosmem_base - Base of the BIOS image -biosmem_limit - Limit of the BIOS image -busmem_base - Base of the VGA bus memory -****************************************************************************/ -typedef struct { - int function; - int device; - int bus; - u32 VendorID; - u32 DeviceID; - pci_dev_t pcidev; - void *BIOSImage; - u32 BIOSImageLen; - u8 LowMem[1536]; -} BE_VGAInfo; - -#endif /* __KERNEL__ */ - -#define CRT_C 24 /* 24 CRT Controller Registers */ -#define ATT_C 21 /* 21 Attribute Controller Registers */ -#define GRA_C 9 /* 9 Graphics Controller Registers */ -#define SEQ_C 5 /* 5 Sequencer Registers */ -#define PAL_C 768 /* 768 Palette Registers */ - -/**************************************************************************** -REMARKS: -Data structure used to describe the details for the BIOS emulator system -environment as used by the X86 emulator library. - -HEADER: -biosemu.h - -MEMBERS: -vgaInfo - VGA BIOS information structure -biosmem_base - Base of the BIOS image -biosmem_limit - Limit of the BIOS image -busmem_base - Base of the VGA bus memory -timer - Timer used to emulate PC timer ports -timer0 - Latched value for timer 0 -timer0Latched - true if timer 0 value was just latched -timer2 - Current value for timer 2 -emulateVGA - true to emulate VGA I/O and memory accesses -****************************************************************************/ - -typedef struct { - BE_VGAInfo vgaInfo; - ulong biosmem_base; - ulong biosmem_limit; - ulong busmem_base; - - u32 timer0; - int timer0Latched; - u32 timer1; - int timer1Latched; - u32 timer2; - int timer2Latched; - - int emulateVGA; - u8 emu61; - u8 emu70; - int flipFlop3C0; - u32 configAddress; - u8 emu3C0; - u8 emu3C1[ATT_C]; - u8 emu3C2; - u8 emu3C4; - u8 emu3C5[SEQ_C]; - u8 emu3C6; - uint emu3C7; - uint emu3C8; - u8 emu3C9[PAL_C]; - u8 emu3CE; - u8 emu3CF[GRA_C]; - u8 emu3D4; - u8 emu3D5[CRT_C]; - u8 emu3DA; - -} BE_sysEnv; - -#ifdef __KERNEL__ - -/* Define some types when compiling for the Linux kernel that normally - * come from the SciTech PM library. - */ - -/**************************************************************************** -REMARKS: -Structure describing the 32-bit extended x86 CPU registers - -HEADER: -pmapi.h - -MEMBERS: -eax - Value of the EAX register -ebx - Value of the EBX register -ecx - Value of the ECX register -edx - Value of the EDX register -esi - Value of the ESI register -edi - Value of the EDI register -cflag - Value of the carry flag -****************************************************************************/ -typedef struct { - u32 eax; - u32 ebx; - u32 ecx; - u32 edx; - u32 esi; - u32 edi; - u32 cflag; -} RMDWORDREGS; - -/**************************************************************************** -REMARKS: -Structure describing the 16-bit x86 CPU registers - -HEADER: -pmapi.h - -MEMBERS: -ax - Value of the AX register -bx - Value of the BX register -cx - Value of the CX register -dx - Value of the DX register -si - Value of the SI register -di - Value of the DI register -cflag - Value of the carry flag -****************************************************************************/ -#ifdef __BIG_ENDIAN__ -typedef struct { - u16 ax_hi, ax; - u16 bx_hi, bx; - u16 cx_hi, cx; - u16 dx_hi, dx; - u16 si_hi, si; - u16 di_hi, di; - u16 cflag_hi, cflag; -} RMWORDREGS; -#else -typedef struct { - u16 ax, ax_hi; - u16 bx, bx_hi; - u16 cx, cx_hi; - u16 dx, dx_hi; - u16 si, si_hi; - u16 di, di_hi; - u16 cflag, cflag_hi; -} RMWORDREGS; -#endif - -/**************************************************************************** -REMARKS: -Structure describing the 8-bit x86 CPU registers - -HEADER: -pmapi.h - -MEMBERS: -al - Value of the AL register -ah - Value of the AH register -bl - Value of the BL register -bh - Value of the BH register -cl - Value of the CL register -ch - Value of the CH register -dl - Value of the DL register -dh - Value of the DH register -****************************************************************************/ -#ifdef __BIG_ENDIAN__ -typedef struct { - u16 ax_hi; - u8 ah, al; - u16 bx_hi; - u8 bh, bl; - u16 cx_hi; - u8 ch, cl; - u16 dx_hi; - u8 dh, dl; -} RMBYTEREGS; -#else -typedef struct { - u8 al; - u8 ah; - u16 ax_hi; - u8 bl; - u8 bh; - u16 bx_hi; - u8 cl; - u8 ch; - u16 cx_hi; - u8 dl; - u8 dh; - u16 dx_hi; -} RMBYTEREGS; -#endif - -/**************************************************************************** -REMARKS: -Structure describing all the x86 CPU registers - -HEADER: -pmapi.h - -MEMBERS: -e - Member to access registers as 32-bit values -x - Member to access registers as 16-bit values -h - Member to access registers as 8-bit values -****************************************************************************/ -typedef union { - RMDWORDREGS e; - RMWORDREGS x; - RMBYTEREGS h; -} RMREGS; - -/**************************************************************************** -REMARKS: -Structure describing all the x86 segment registers - -HEADER: -pmapi.h - -MEMBERS: -es - ES segment register -cs - CS segment register -ss - SS segment register -ds - DS segment register -fs - FS segment register -gs - GS segment register -****************************************************************************/ -typedef struct { - u16 es; - u16 cs; - u16 ss; - u16 ds; - u16 fs; - u16 gs; -} RMSREGS; - -#endif /* __KERNEL__ */ - -#ifndef __KERNEL__ - -/**************************************************************************** -REMARKS: -Structure defining all the BIOS Emulator API functions as exported from -the Binary Portable DLL. -{secret} -****************************************************************************/ -typedef struct { - ulong dwSize; - ibool(PMAPIP BE_init) (u32 debugFlags, int memSize, BE_VGAInfo * info); - void (PMAPIP BE_setVGA) (BE_VGAInfo * info); - void (PMAPIP BE_getVGA) (BE_VGAInfo * info); - void *(PMAPIP BE_mapRealPointer) (uint r_seg, uint r_off); - void *(PMAPIP BE_getVESABuf) (uint * len, uint * rseg, uint * roff); - void (PMAPIP BE_callRealMode) (uint seg, uint off, RMREGS * regs, - RMSREGS * sregs); - int (PMAPIP BE_int86) (int intno, RMREGS * in, RMREGS * out); - int (PMAPIP BE_int86x) (int intno, RMREGS * in, RMREGS * out, - RMSREGS * sregs); - void *reserved1; - void (PMAPIP BE_exit) (void); -} BE_exports; - -/**************************************************************************** -REMARKS: -Function pointer type for the Binary Portable DLL initialisation entry point. -{secret} -****************************************************************************/ -typedef BE_exports *(PMAPIP BE_initLibrary_t) (PM_imports * PMImp); -#endif - -#pragma pack() - -/*---------------------------- Global variables ---------------------------*/ - -#ifdef __cplusplus -extern "C" { /* Use "C" linkage when in C++ mode */ -#endif - -/* {secret} Global BIOS emulator system environment */ - extern BE_sysEnv _BE_env; - -/*-------------------------- Function Prototypes --------------------------*/ - -/* BIOS emulator library entry points */ - int X86API BE_init(u32 debugFlags, int memSize, BE_VGAInfo * info, - int shared); - void X86API BE_setVGA(BE_VGAInfo * info); - void X86API BE_getVGA(BE_VGAInfo * info); - void X86API BE_setDebugFlags(u32 debugFlags); - void *X86API BE_mapRealPointer(uint r_seg, uint r_off); - void *X86API BE_getVESABuf(uint * len, uint * rseg, uint * roff); - void X86API BE_callRealMode(uint seg, uint off, RMREGS * regs, - RMSREGS * sregs); - int X86API BE_int86(int intno, RMREGS * in, RMREGS * out); - int X86API BE_int86x(int intno, RMREGS * in, RMREGS * out, - RMSREGS * sregs); - void X86API BE_exit(void); - -#ifdef __cplusplus -} /* End of "C" linkage for C++ */ -#endif -#endif /* __BIOSEMU_H */ |