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

📄 v86bios.h

📁 uboot在arm处理器s3c2410的移植代码
💻 H
字号:
/* * Copyright 1999 Egbert Eich * * 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. */#ifndef V86_BIOS_H#define V86_BIOS_H#if defined (__i386__) || defined (__i486__) || defined (__i586__) || defined (__i686__) || defined (__k6__)# ifndef __ia32__#  define __ia32__# endif#endif#include <stdio.h>#define p_printf(f,a...) do {if (Config.PrintPort) lprintf(f,##a);} \			 while(0)#define i_printf(f,a...) do  {if (Config.PrintIrq) lprintf(f,##a);} \			  while(0)#define P_printf(f,a...) do {if (Config.PrintPci) lprintf(f,##a);} \			  while(0)typedef unsigned char CARD8;typedef unsigned short CARD16;typedef unsigned int CARD32;#if defined (__alpha__) || defined (__ia64__)typedef unsigned long memType;#elsetypedef unsigned int memType;#endiftypedef int Bool;#define FALSE 0#define TRUE 1struct config {    Bool PrintPort;    Bool IoStatistics;    Bool PrintIrq;    Bool PrintPci;    Bool ShowAllDev;    Bool PrintIp;    Bool SaveBios;    Bool Trace;    Bool ConfigActiveOnly;    Bool ConfigActiveDevice;    Bool MapSysBios;    Bool Resort;    Bool FixRom;    Bool NoConsole;    Bool BootOnly;    int  Verbose;};struct pio {    CARD8 (*inb)(CARD16);    CARD16 (*inw)(CARD16);    CARD32 (*inl)(CARD16);    void (*outb)(CARD16,CARD8);    void (*outw)(CARD16,CARD16);    void (*outl)(CARD16,CARD32);};struct regs86 {	long ebx;	long ecx;	long edx;	long esi;	long edi;	long ebp;	long eax;	long eip;	long esp;	unsigned short cs;	unsigned short ss;	unsigned short es;	unsigned short ds;	unsigned short fs;	unsigned short gs;    long eflags;};typedef struct {    CARD32 ax;    CARD32 bx;    CARD32 cx;    CARD32 dx;    CARD32 cs;    CARD32 es;    CARD32 ds;    CARD32 si;    CARD32 di;} i86biosRegs, *i86biosRegsPtr;typedef struct {    int fd;    int vt;} console;typedef struct {    void* address;    CARD8 orgval;} haltpoints;enum dev_type {  NONE, ISA, PCI };struct device {    Bool booted;    enum dev_type type;    union {      int none;      struct pci {	int bus;	int dev;	int func;      } pci;    } loc;};extern struct device Device;#ifdef __alpha__unsigned long _bus_base(void);extern void* vram_map;extern int sparse_shift;#endifextern struct pio P;extern struct config Config;#define IOPERM_BITS 1024extern int ioperm_list[IOPERM_BITS];extern void setup_io(void);extern void do_x86(unsigned long bios_start,i86biosRegsPtr regs);extern int run_bios_int(int num, struct regs86 *regs);extern CARD32 getIntVect(int num);CARD32 getIP(void);extern void call_boot(struct device *dev);extern void runINT(int num,i86biosRegsPtr Regs);extern void add_hlt(unsigned long addr);extern void del_hlt(int addr);extern void list_hlt();extern int port_rep_inb(CARD16 port, CARD8 *base, int d_f, CARD32 count);extern int port_rep_inw(CARD16 port, CARD16 *base, int d_f, CARD32 count);extern int port_rep_inl(CARD16 port, CARD32 *base, int d_f, CARD32 count);extern int port_rep_outb(CARD16 port, CARD8 *base, int d_f, CARD32 count);extern int port_rep_outw(CARD16 port, CARD16 *base, int d_f, CARD32 count);extern int port_rep_outl(CARD16 port, CARD32 *base, int d_f, CARD32 count);extern CARD8 p_inb(CARD16 port);extern CARD16 p_inw(CARD16 port);extern CARD32 p_inl(CARD16 port);extern void p_outb(CARD16 port, CARD8 val);extern void p_outw(CARD16 port, CARD16 val);extern void p_outl(CARD16 port, CARD32 val);#ifdef __alpha__extern CARD8 a_inb(CARD16 port);extern CARD16 a_inw(CARD16 port);extern void a_outb(CARD16 port, CARD8 val);extern void a_outw(CARD16 port, CARD16 val);#endif#ifdef __alpha__CARD8 mem_rb(CARD32 addr);CARD16 mem_rw(CARD32 addr);CARD32 mem_rl(CARD32 addr);void mem_wb(CARD32 addr, CARD8 val);void mem_ww(CARD32 addr, CARD16 val);void mem_wl(CARD32 addr, CARD32 val);#endifextern void io_statistics(void);extern void clear_stat(void);extern int int_handler(int num, struct regs86 *regs);extern console open_console(void);extern void close_console(console);extern void dprint(unsigned long start, unsigned long size);extern Bool logging;extern Bool nostdout;extern char* logfile;extern void logon(void* ptr);extern void logoff();extern void lprintf(const char *f, ...);#define MEM_FILE "/dev/mem"#define DEFAULT_V_BIOS 0xc0000#ifndef V_BIOS#define V_BIOS DEFAULT_V_BIOS#endif#ifdef __alpha__#define NEED_PCI_IO#endif#endif

⌨️ 快捷键说明

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