]>
git.ipfire.org Git - people/trikolon/ipfire-2.x.git/blob - src/hwinfo/src/int10/v86bios.h
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