2
* Copyright 1999 Egbert Eich
4
* Permission to use, copy, modify, distribute, and sell this software and its
5
* documentation for any purpose is hereby granted without fee, provided that
6
* the above copyright notice appear in all copies and that both that
7
* copyright notice and this permission notice appear in supporting
8
* documentation, and that the name of the authors not be used in
9
* advertising or publicity pertaining to distribution of the software without
10
* specific, written prior permission. The authors makes no representations
11
* about the suitability of this software for any purpose. It is provided
12
* "as is" without express or implied warranty.
14
* THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16
* EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
* PERFORMANCE OF THIS SOFTWARE.
25
#if defined (__i386__) || defined (__i486__) || defined (__i586__) || defined (__i686__) || defined (__k6__)
33
#define p_printf(f,a...) do {if (Config.PrintPort) lprintf(f,##a);} \
35
#define i_printf(f,a...) do {if (Config.PrintIrq) lprintf(f,##a);} \
37
#define P_printf(f,a...) do {if (Config.PrintPci) lprintf(f,##a);} \
40
typedef unsigned char CARD8;
41
typedef unsigned short CARD16;
42
typedef unsigned int CARD32;
43
#if defined (__alpha__) || defined (__ia64__)
44
typedef unsigned long memType;
46
typedef unsigned int memType;
63
Bool ConfigActiveOnly;
64
Bool ConfigActiveDevice;
75
CARD16 (*inw)(CARD16);
76
CARD32 (*inl)(CARD16);
77
void (*outb)(CARD16,CARD8);
78
void (*outw)(CARD16,CARD16);
79
void (*outl)(CARD16,CARD32);
111
} i86biosRegs, *i86biosRegsPtr;
123
enum dev_type { NONE, ISA, PCI };
137
extern struct device Device;
140
unsigned long _bus_base(void);
141
extern void* vram_map;
142
extern int sparse_shift;
146
extern struct config Config;
147
#define IOPERM_BITS 1024
148
extern int ioperm_list[IOPERM_BITS];
150
extern void setup_io(void);
151
extern void do_x86(unsigned long bios_start,i86biosRegsPtr regs, int cpuemu);
152
extern int run_bios_int(int num, struct regs86 *regs);
153
extern CARD32 getIntVect(int num);
156
extern void call_boot(struct device *dev);
157
extern void runINT(int num,i86biosRegsPtr Regs);
158
extern void add_hlt(unsigned long addr);
159
extern void del_hlt(int addr);
160
extern void list_hlt();
162
extern int port_rep_inb(CARD16 port, CARD8 *base, int d_f, CARD32 count);
163
extern int port_rep_inw(CARD16 port, CARD16 *base, int d_f, CARD32 count);
164
extern int port_rep_inl(CARD16 port, CARD32 *base, int d_f, CARD32 count);
165
extern int port_rep_outb(CARD16 port, CARD8 *base, int d_f, CARD32 count);
166
extern int port_rep_outw(CARD16 port, CARD16 *base, int d_f, CARD32 count);
167
extern int port_rep_outl(CARD16 port, CARD32 *base, int d_f, CARD32 count);
168
extern CARD8 p_inb(CARD16 port);
169
extern CARD16 p_inw(CARD16 port);
170
extern CARD32 p_inl(CARD16 port);
171
extern void p_outb(CARD16 port, CARD8 val);
172
extern void p_outw(CARD16 port, CARD16 val);
173
extern void p_outl(CARD16 port, CARD32 val);
175
extern CARD8 a_inb(CARD16 port);
176
extern CARD16 a_inw(CARD16 port);
177
extern void a_outb(CARD16 port, CARD8 val);
178
extern void a_outw(CARD16 port, CARD16 val);
181
CARD8 mem_rb(CARD32 addr);
182
CARD16 mem_rw(CARD32 addr);
183
CARD32 mem_rl(CARD32 addr);
184
void mem_wb(CARD32 addr, CARD8 val);
185
void mem_ww(CARD32 addr, CARD16 val);
186
void mem_wl(CARD32 addr, CARD32 val);
188
extern void io_statistics(void);
189
extern void clear_stat(void);
190
extern int int_handler(int num, struct regs86 *regs);
192
extern console open_console(void);
193
extern void close_console(console);
195
extern void dprint(unsigned long start, unsigned long size);
198
extern Bool nostdout;
199
extern char* logfile;
200
extern void logon(void* ptr);
201
extern void logoff();
202
extern void lprintf(const char *f, ...);
204
#define MEM_FILE "/dev/mem"
205
#define DEFAULT_V_BIOS 0xc0000
207
#define V_BIOS DEFAULT_V_BIOS