28 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
29 |
* |
* |
30 |
* |
* |
31 |
* $Id: machine.h,v 1.58 2005/06/24 19:15:08 debug Exp $ |
* $Id: machine.h,v 1.86 2005/11/22 02:07:40 debug Exp $ |
32 |
*/ |
*/ |
33 |
|
|
34 |
#include <sys/types.h> |
#include <sys/types.h> |
36 |
|
|
37 |
#include "symbol.h" |
#include "symbol.h" |
38 |
|
|
39 |
#include "arcbios.h" |
#include "machine_arc.h" |
40 |
#include "machine_x86.h" |
#include "machine_x86.h" |
41 |
|
|
42 |
|
|
43 |
#define MAX_BREAKPOINTS 8 |
#define MAX_BREAKPOINTS 8 |
44 |
#define BREAKPOINT_FLAG_R 1 |
#define BREAKPOINT_FLAG_R 1 |
45 |
|
|
56 |
struct kn02_csr; |
struct kn02_csr; |
57 |
struct dec_ioasic_data; |
struct dec_ioasic_data; |
58 |
struct ps2_data; |
struct ps2_data; |
59 |
|
struct footbridge_data; |
60 |
struct dec5800_data; |
struct dec5800_data; |
61 |
struct au1x00_ic_data; |
struct au1x00_ic_data; |
62 |
struct malta_data; |
struct malta_data; |
67 |
struct sgi_ip20_data; |
struct sgi_ip20_data; |
68 |
struct sgi_ip22_data; |
struct sgi_ip22_data; |
69 |
struct sgi_ip30_data; |
struct sgi_ip30_data; |
70 |
|
struct isa_pic_data { |
71 |
|
struct pic8259_data *pic1; |
72 |
|
struct pic8259_data *pic2; |
73 |
|
int last_int; |
74 |
|
int native_irq; |
75 |
|
}; |
76 |
|
|
77 |
|
|
78 |
#define MACHINE_NAME_MAXBUF 200 |
#define MACHINE_NAME_MAXBUF 150 |
79 |
|
|
80 |
struct machine { |
struct machine { |
81 |
/* Pointer back to the emul struct we are in: */ |
/* Pointer back to the emul struct we are in: */ |
147 |
int memory_offset_in_mb; |
int memory_offset_in_mb; |
148 |
int prom_emulation; |
int prom_emulation; |
149 |
int register_dump; |
int register_dump; |
150 |
|
int arch_pagesize; |
151 |
|
|
152 |
int n_breakpoints; |
int n_breakpoints; |
153 |
char *breakpoint_string[MAX_BREAKPOINTS]; |
char *breakpoint_string[MAX_BREAKPOINTS]; |
164 |
int cache_secondary_linesize; |
int cache_secondary_linesize; |
165 |
|
|
166 |
int dbe_on_nonexistant_memaccess; |
int dbe_on_nonexistant_memaccess; |
167 |
|
int dyntrans_alignment_check; |
168 |
int bintrans_enable; |
int bintrans_enable; |
169 |
int old_bintrans_enable; |
int old_bintrans_enable; |
170 |
int bintrans_enabled_from_start; |
int bintrans_enabled_from_start; |
196 |
struct machine_pc pc; |
struct machine_pc pc; |
197 |
} md; |
} md; |
198 |
|
|
199 |
|
/* Bus-specific interrupt data: */ |
200 |
|
struct isa_pic_data isa_pic_data; |
201 |
|
|
202 |
/* Machine-dependent interrupt specific structs: */ |
/* Machine-dependent interrupt specific structs: */ |
203 |
union { |
union { |
204 |
struct kn230_csr *kn230_csr; |
struct kn230_csr *kn230_csr; |
217 |
struct crime_data *crime_data; |
struct crime_data *crime_data; |
218 |
struct mace_data *mace_data; |
struct mace_data *mace_data; |
219 |
} ip32; |
} ip32; |
220 |
|
struct footbridge_data *footbridge_data; |
221 |
|
struct bebox_data *bebox_data; |
222 |
|
struct prep_data *prep_data; |
223 |
|
struct cpc700_data *cpc700_data; |
224 |
} md_int; |
} md_int; |
225 |
|
|
226 |
/* X11/framebuffer stuff: */ |
/* X11/framebuffer stuff: */ |
227 |
int use_x11; |
int use_x11; |
228 |
int x11_scaledown; |
int x11_scaledown; |
229 |
|
int x11_scaleup; |
230 |
int x11_n_display_names; |
int x11_n_display_names; |
231 |
char **x11_display_names; |
char **x11_display_names; |
232 |
int x11_current_display_name_nr; /* updated by x11.c */ |
int x11_current_display_name_nr; /* updated by x11.c */ |
244 |
#define ARCH_MIPS 1 |
#define ARCH_MIPS 1 |
245 |
#define ARCH_PPC 2 |
#define ARCH_PPC 2 |
246 |
#define ARCH_SPARC 3 |
#define ARCH_SPARC 3 |
247 |
#define ARCH_URISC 4 |
#define ARCH_ALPHA 4 |
248 |
#define ARCH_HPPA 5 |
#define ARCH_X86 5 |
249 |
#define ARCH_ALPHA 6 |
#define ARCH_ARM 6 |
250 |
#define ARCH_X86 7 |
#define ARCH_IA64 7 |
251 |
#define ARCH_ARM 8 |
#define ARCH_M68K 8 |
252 |
|
#define ARCH_SH 9 |
253 |
|
#define ARCH_HPPA 10 |
254 |
|
#define ARCH_I960 11 |
255 |
|
#define ARCH_AVR 12 |
256 |
|
#define ARCH_NEWMIPS 13 |
257 |
|
|
258 |
/* MIPS: */ |
/* MIPS: */ |
259 |
#define MACHINE_BAREMIPS 1000 |
#define MACHINE_BAREMIPS 1000 |
269 |
#define MACHINE_SONYNEWS 1010 |
#define MACHINE_SONYNEWS 1010 |
270 |
#define MACHINE_EVBMIPS 1011 |
#define MACHINE_EVBMIPS 1011 |
271 |
#define MACHINE_PSP 1012 |
#define MACHINE_PSP 1012 |
272 |
|
#define MACHINE_ALGOR 1013 |
273 |
|
|
274 |
/* PPC: */ |
/* PPC: */ |
275 |
#define MACHINE_BAREPPC 2000 |
#define MACHINE_BAREPPC 2000 |
284 |
|
|
285 |
/* SPARC: */ |
/* SPARC: */ |
286 |
#define MACHINE_BARESPARC 3000 |
#define MACHINE_BARESPARC 3000 |
287 |
#define MACHINE_ULTRA1 3001 |
#define MACHINE_TESTSPARC 3001 |
288 |
|
#define MACHINE_ULTRA1 3002 |
|
/* URISC: */ |
|
|
#define MACHINE_BAREURISC 4000 |
|
|
#define MACHINE_TESTURISC 4001 |
|
|
|
|
|
/* HPPA: */ |
|
|
#define MACHINE_BAREHPPA 5000 |
|
|
#define MACHINE_TESTHPPA 5001 |
|
289 |
|
|
290 |
/* Alpha: */ |
/* Alpha: */ |
291 |
#define MACHINE_BAREALPHA 6000 |
#define MACHINE_BAREALPHA 4000 |
292 |
#define MACHINE_TESTALPHA 6001 |
#define MACHINE_TESTALPHA 4001 |
293 |
|
#define MACHINE_ALPHA 4002 |
294 |
|
|
295 |
/* X86: */ |
/* X86: */ |
296 |
#define MACHINE_BAREX86 7000 |
#define MACHINE_BAREX86 5000 |
297 |
#define MACHINE_X86 7001 |
#define MACHINE_X86 5001 |
298 |
|
|
299 |
/* ARM: */ |
/* ARM: */ |
300 |
#define MACHINE_BAREARM 8000 |
#define MACHINE_BAREARM 6000 |
301 |
#define MACHINE_TESTARM 8001 |
#define MACHINE_TESTARM 6001 |
302 |
|
#define MACHINE_CATS 6002 |
303 |
|
#define MACHINE_HPCARM 6003 |
304 |
|
#define MACHINE_ZAURUS 6004 |
305 |
|
#define MACHINE_NETWINDER 6005 |
306 |
|
#define MACHINE_SHARK 6006 |
307 |
|
#define MACHINE_IQ80321 6007 |
308 |
|
#define MACHINE_IYONIX 6008 |
309 |
|
|
310 |
|
/* IA64: */ |
311 |
|
#define MACHINE_BAREIA64 7000 |
312 |
|
#define MACHINE_TESTIA64 7001 |
313 |
|
|
314 |
|
/* M68K: */ |
315 |
|
#define MACHINE_BAREM68K 8000 |
316 |
|
#define MACHINE_TESTM68K 8001 |
317 |
|
|
318 |
|
/* SH: */ |
319 |
|
#define MACHINE_BARESH 9000 |
320 |
|
#define MACHINE_TESTSH 9001 |
321 |
|
#define MACHINE_HPCSH 9002 |
322 |
|
|
323 |
|
/* HPPA: */ |
324 |
|
#define MACHINE_BAREHPPA 10000 |
325 |
|
#define MACHINE_TESTHPPA 10001 |
326 |
|
|
327 |
|
/* I960: */ |
328 |
|
#define MACHINE_BAREI960 11000 |
329 |
|
#define MACHINE_TESTI960 11001 |
330 |
|
|
331 |
|
/* AVR: */ |
332 |
|
#define MACHINE_BAREAVR 12000 |
333 |
|
|
334 |
|
/* NEWMIPS: */ |
335 |
|
#define MACHINE_BARENEWMIPS 13000 |
336 |
|
#define MACHINE_TESTNEWMIPS 13001 |
337 |
|
|
338 |
/* Other "pseudo"-machines: */ |
/* Other "pseudo"-machines: */ |
339 |
#define MACHINE_NONE 0 |
#define MACHINE_NONE 0 |
367 |
#define MACHINE_HPCMIPS_AGENDA_VR3 7 |
#define MACHINE_HPCMIPS_AGENDA_VR3 7 |
368 |
#define MACHINE_HPCMIPS_IBM_WORKPAD_Z50 8 |
#define MACHINE_HPCMIPS_IBM_WORKPAD_Z50 8 |
369 |
|
|
370 |
|
/* HPCarm: */ |
371 |
|
#define MACHINE_HPCARM_IPAQ 1 |
372 |
|
#define MACHINE_HPCARM_JORNADA720 2 |
373 |
|
|
374 |
|
/* HPCsh: */ |
375 |
|
#define MACHINE_HPCSH_JORNADA680 1 |
376 |
|
#define MACHINE_HPCSH_JORNADA690 2 |
377 |
|
|
378 |
/* Playstation 2: */ |
/* Playstation 2: */ |
379 |
#define PLAYSTATION2_BDA 0xffffffffa0001000ULL |
#define PLAYSTATION2_BDA 0xffffffffa0001000ULL |
380 |
#define PLAYSTATION2_OPTARGS 0xffffffff81fff100ULL |
#define PLAYSTATION2_OPTARGS 0xffffffff81fff100ULL |
390 |
#define MACHINE_ARC_JAZZ_M700 7 |
#define MACHINE_ARC_JAZZ_M700 7 |
391 |
#define MACHINE_ARC_NEC_R96 8 |
#define MACHINE_ARC_NEC_R96 8 |
392 |
|
|
393 |
|
/* Algor: */ |
394 |
|
#define MACHINE_ALGOR_P4032 4 |
395 |
|
#define MACHINE_ALGOR_P5064 5 |
396 |
|
|
397 |
/* EVBMIPS: */ |
/* EVBMIPS: */ |
398 |
#define MACHINE_EVBMIPS_MALTA 1 |
#define MACHINE_EVBMIPS_MALTA 1 |
399 |
#define MACHINE_EVBMIPS_PB1000 2 |
#define MACHINE_EVBMIPS_MALTA_BE 2 |
400 |
|
#define MACHINE_EVBMIPS_PB1000 3 |
401 |
|
|
402 |
/* MacPPC: TODO: Real model names */ |
/* MacPPC: TODO: Real model names */ |
403 |
#define MACHINE_MACPPC_G4 1 |
#define MACHINE_MACPPC_G4 1 |