⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 biosemu.h

📁 BIOS emulator and interface to Realmode X86 Emulator Library Can emulate a PCI Graphic Controller V
💻 H
字号:
/******************************************************************************	     				 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#include "x86emu.h"#include "pmapi.h"#include "pcilib.h"/*---------------------- Macros and type definitions ----------------------*/#pragma	pack(1)/****************************************************************************REMARKS:Data structure used to describe the details specific to a particular VGAcontroller. This information is used to allow the VGA controller to beswapped on the fly within the BIOS emulator.HEADER:biosemu.hMEMBERS:pciInfo			- PCI device information block for the controllerBIOSImage		- Pointer to a read/write copy of the BIOS imageBIOSImageLen	- Length of the BIOS imageLowMem			- Copy of key low memory areas****************************************************************************/typedef struct {	PCIDeviceInfo	*pciInfo;	void			*BIOSImage;	ulong			BIOSImageLen;	uchar			LowMem[1536];	} BE_VGAInfo;/****************************************************************************REMARKS:Data structure used to describe the details for the BIOS emulator systemenvironment as used by the X86 emulator library.HEADER:biosemu.hMEMBERS:vgaInfo			- VGA BIOS information structurebiosmem_base    - Base of the BIOS imagebiosmem_limit	- Limit of the BIOS imagebusmem_base		- Base of the VGA bus memory****************************************************************************/typedef struct {	BE_VGAInfo		vgaInfo;	ulong			biosmem_base;	ulong			biosmem_limit;	ulong			busmem_base;	} BE_sysEnv;/****************************************************************************REMARKS:Structure defining all the BIOS Emulator API functions as exported fromthe Binary Portable DLL.{secret}****************************************************************************/typedef struct {	ulong	dwSize;	ibool	(PMAPIP BE_init)(ibool shared,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	(PMAPIP BE_mapShared)(void);	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)(ibool shared,PM_imports *PMImp);#pragma	pack()/*---------------------------- Global variables ---------------------------*/#ifdef  __cplusplusextern "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 */ibool	PMAPI BE_init(ibool shared,u32 debugFlags,int memSize,BE_VGAInfo *info);void	PMAPI BE_setVGA(BE_VGAInfo *info);void	PMAPI BE_getVGA(BE_VGAInfo *info);void *	PMAPI BE_mapRealPointer(uint r_seg,uint r_off);void *	PMAPI BE_getVESABuf(uint *len,uint *rseg,uint *roff);void 	PMAPI BE_callRealMode(uint seg,uint off,RMREGS *regs,RMSREGS *sregs);int 	PMAPI BE_int86(int intno,RMREGS *in,RMREGS *out);int 	PMAPI BE_int86x(int intno,RMREGS *in,RMREGS *out,RMSREGS *sregs);void	PMAPI BE_mapShared(void);void	PMAPI BE_exit(void);#ifdef  __cplusplus}                       			/* End of "C" linkage for C++   	*/#endif#endif /* __BIOSEMU_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -