/[gxemul]/trunk/src/include/machine.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/src/include/machine.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 20 - (show annotations)
Mon Oct 8 16:19:23 2007 UTC (16 years, 5 months ago) by dpavlin
File MIME type: text/plain
File size: 12942 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1055 2005/11/25 22:48:36 debug Exp $
20051031	Adding disassembly support for more ARM instructions (clz,
		smul* etc), and adding a hack to support "new tiny" pages
		for StrongARM.
20051101	Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD
		3.7 -> 3.8, and lots of testing).
		Changing from 1-sector PIO mode 0 transfers to 128-sector PIO
		mode 3 (in dev_wdc).
		Various minor ARM dyntrans updates (pc-relative loads from
		within the same page as the instruction are now treated as
		constant "mov").
20051102	Re-enabling instruction combinations (they were accidentally
		disabled).
		Dyntrans TLB entries are now overwritten using a round-robin
		scheme instead of randomly. This increases performance.
		Fixing a typo in file.c (thanks to Chuan-Hua Chang for
		noticing it).
		Experimenting with adding ATAPI support to dev_wdc (to make
		emulated *BSD detect cdroms as cdroms, not harddisks).
20051104	Various minor updates.
20051105	Continuing on the ATAPI emulation. Seems to work well enough
		for a NetBSD/cats installation, but not OpenBSD/cats.
		Various other updates.
20051106	Modifying the -Y command line option to allow scaleup with
		certain graphic controllers (only dev_vga so far), not just
		scaledown.
		Some minor dyntrans cleanups.
20051107	Beginning a cleanup up the PCI subsystem (removing the
		read_register hack, etc).
20051108	Continuing the cleanup; splitting up some pci devices into a
		normal autodev device and some separate pci glue code.
20051109	Continuing on the PCI bus stuff; all old pci_*.c have been
		incorporated into normal devices and/or rewritten as glue code
		only, adding a dummy Intel 82371AB PIIX4 for Malta (not really
		tested yet).
		Minor pckbc fix so that Linux doesn't complain.
		Working on the DEC 21143 NIC (ethernet mac rom stuff mostly).
		Various other minor fixes.
20051110	Some more ARM dyntrans fine-tuning (e.g. some instruction
		combinations (cmps followed by conditional branch within the
		same page) and special cases for DPIs with regform when the
		shifter isn't used).
20051111	ARM dyntrans updates: O(n)->O(1) for just-mark-as-non-
		writable in the generic pc_to_pointers function, and some other
		minor hacks.
		Merging Cobalt and evbmips (Malta) ISA interrupt handling,
		and some minor fixes to allow Linux to accept harddisk irqs.
20051112	Minor device updates (pckbc, dec21143, lpt, ...), most
		importantly fixing the ALI M1543/M5229 so that harddisk irqs
		work with Linux/CATS.
20051113	Some more generalizations of the PCI subsystem.
		Finally took the time to add a hack for SCSI CDROM TOCs; this
		enables OpenBSD to use partition 'a' (as needed by the OpenBSD
		installer), and Windows NT's installer to get a bit further.
		Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs.
		Continuing on the DEC 21143.
20051114	Minor ARM dyntrans tweaks; ARM cmps+branch optimization when
		comparing with 0, and generalizing the xchg instr. comb.
		Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}.
20051115	Continuing on various PPC things (BATs, other address trans-
		lation things, various loads/stores, BeBox emulation, etc.).
		Beginning to work on PPC interrupt/exception support.
20051116	Factoring out some code which initializes legacy ISA devices
		from those machines that use them (bus_isa).
		Continuing on PPC interrupt/exception support.
20051117	Minor Malta fixes: RTC year offset = 80, disabling a speed hack
		which caused NetBSD to detect a too fast cpu, and adding a new
		hack to make Linux detect a faster cpu.
		Continuing on the Artesyn PM/PPC emulation mode.
		Adding an Algor emulation skeleton (P4032 and P5064);
		implementing some of the basics.
		Continuing on PPC emulation in general; usage of unimplemented
		SPRs is now easier to track, continuing on memory/exception
		related issues, etc.
20051118	More work on PPC emulation (tgpr0..3, exception handling,
		memory stuff, syscalls, etc.).
20051119	Changing the ARM dyntrans code to mostly use cpu->pc, and not
		necessarily use arm reg 15. Seems to work.
		Various PPC updates; continuing on the PReP emulation mode.
20051120	Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep
		to detect the clock.
20051121	More cleanup of the PCI bus (memory and I/O bases, etc).
		Continuing on various PPC things (decrementer and timebase,
		WDCs on obio (on PReP) use irq 13, not 14/15).
20051122	Continuing on the CPC700 controller (interrupts etc) for PMPPC,
		and on PPC stuff in general.
		Finally! After some bug fixes to the virtual to physical addr
		translation, NetBSD/{prep,pmppc} 2.1 reach userland and are
		stable enough to be interacted with.
		More PCI updates; reverse-endian device access for PowerPC etc.
20051123	Generalizing the IEEE floating point subsystem (moving it out
		from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c).
		Input via slave xterms was sometimes not really working; fixing
		this for ns16550, and a warning message is now displayed if
		multiple non-xterm consoles are active.
		Adding some PPC floating point support, etc.
		Various interrupt related updates (dev_wdc, _ns16550, _8259,
		and the isa32 common code in machine.c).
		NetBSD/prep can now be installed! :-) (Well, with some manual
		commands necessary before running sysinst.) Updating the
		documentation and various other things to reflect this.
20051124	Various minor documentation updates.
		Continuing the work on the DEC 21143 NIC.
20051125	LOTS of work on the 21143. Both OpenBSD and NetBSD work fine
		with it now, except that OpenBSD sometimes gives a time-out
		warning.
		Minor documentation updates.

==============  RELEASE 0.3.7  ==============


1 #ifndef MACHINE_H
2 #define MACHINE_H
3
4 /*
5 * Copyright (C) 2005 Anders Gavare. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. The name of the author may not be used to endorse or promote products
16 * derived from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 *
31 * $Id: machine.h,v 1.86 2005/11/22 02:07:40 debug Exp $
32 */
33
34 #include <sys/types.h>
35 #include <sys/time.h>
36
37 #include "symbol.h"
38
39 #include "machine_arc.h"
40 #include "machine_x86.h"
41
42
43 #define MAX_BREAKPOINTS 8
44 #define BREAKPOINT_FLAG_R 1
45
46 #define MAX_TICK_FUNCTIONS 14
47
48 struct cpu_family;
49 struct diskimage;
50 struct emul;
51 struct fb_window;
52 struct memory;
53
54 /* Ugly: */
55 struct kn230_csr;
56 struct kn02_csr;
57 struct dec_ioasic_data;
58 struct ps2_data;
59 struct footbridge_data;
60 struct dec5800_data;
61 struct au1x00_ic_data;
62 struct malta_data;
63 struct vr41xx_data;
64 struct jazz_data;
65 struct crime_data;
66 struct mace_data;
67 struct sgi_ip20_data;
68 struct sgi_ip22_data;
69 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 150
79
80 struct machine {
81 /* Pointer back to the emul struct we are in: */
82 struct emul *emul;
83
84 /* Name as choosen by the user: */
85 char *name;
86
87 int arch; /* ARCH_MIPS, ARCH_PPC, .. */
88 int machine_type; /* MACHINE_DEC, .. */
89 int machine_subtype; /* MACHINE_DEC_3MAX_5000, .. */
90
91 char *machine_name;
92
93 /* The serial number is mostly used when emulating multiple machines
94 in a network. nr_of_nics is the current nr of network cards, which
95 is useful when emulating multiple cards in one machine: */
96 int serial_nr;
97 int nr_of_nics;
98
99 struct cpu_family *cpu_family;
100
101 /*
102 * The "mainbus":
103 *
104 * o) memory
105 * o) devices
106 * o) CPUs
107 */
108
109 struct memory *memory;
110
111 int main_console_handle;
112
113 /* Hardware devices, run every x clock cycles. */
114 int n_tick_entries;
115 int ticks_till_next[MAX_TICK_FUNCTIONS];
116 int ticks_reset_value[MAX_TICK_FUNCTIONS];
117 void (*tick_func[MAX_TICK_FUNCTIONS])(struct cpu *, void *);
118 void *tick_extra[MAX_TICK_FUNCTIONS];
119
120 void (*md_interrupt)(struct machine *m, struct cpu *cpu,
121 int irq_nr, int assert);
122
123 char *cpu_name; /* TODO: remove this, there could be several
124 cpus with different names in a machine */
125 int byte_order_override;
126 int bootstrap_cpu;
127 int use_random_bootstrap_cpu;
128 int start_paused;
129 int ncpus;
130 struct cpu **cpus;
131
132 /* These are used by stuff in cpu.c, mostly: */
133 int64_t ncycles;
134 int64_t ncycles_show;
135 int64_t ncycles_flush;
136 int64_t ncycles_since_gettimeofday;
137 struct timeval starttime;
138 int a_few_cycles;
139 int a_few_instrs;
140
141 struct diskimage *first_diskimage;
142
143 struct symbol_context symbol_context;
144
145 int random_mem_contents;
146 int physical_ram_in_mb;
147 int memory_offset_in_mb;
148 int prom_emulation;
149 int register_dump;
150 int arch_pagesize;
151
152 int n_breakpoints;
153 char *breakpoint_string[MAX_BREAKPOINTS];
154 uint64_t breakpoint_addr[MAX_BREAKPOINTS];
155 int breakpoint_flags[MAX_BREAKPOINTS];
156
157 /* Cache sizes: (1 << x) x=0 for default values */
158 /* TODO: these are _PER CPU_! */
159 int cache_picache;
160 int cache_pdcache;
161 int cache_secondary;
162 int cache_picache_linesize;
163 int cache_pdcache_linesize;
164 int cache_secondary_linesize;
165
166 int dbe_on_nonexistant_memaccess;
167 int dyntrans_alignment_check;
168 int bintrans_enable;
169 int old_bintrans_enable;
170 int bintrans_enabled_from_start;
171 int bintrans_size;
172 int instruction_trace;
173 int single_step_on_bad_addr;
174 int show_nr_of_instructions;
175 int show_symbolic_register_names;
176 int64_t max_instructions;
177 int emulated_hz;
178 int max_random_cycles_per_chunk;
179 int speed_tricks;
180 char *userland_emul; /* NULL for no userland emulation */
181 int force_netboot;
182 int slow_serial_interrupts_hack_for_linux;
183 uint64_t file_loaded_end_addr;
184 char *boot_kernel_filename;
185 char *boot_string_argument;
186
187 int automatic_clock_adjustment;
188 int exit_without_entering_debugger;
189 int show_trace_tree;
190
191 int n_gfx_cards;
192
193 /* Machine-dependent: (PROM stuff, etc.) */
194 union {
195 struct machine_arcbios arc;
196 struct machine_pc pc;
197 } md;
198
199 /* Bus-specific interrupt data: */
200 struct isa_pic_data isa_pic_data;
201
202 /* Machine-dependent interrupt specific structs: */
203 union {
204 struct kn230_csr *kn230_csr;
205 struct kn02_csr *kn02_csr;
206 struct dec_ioasic_data *dec_ioasic_data;
207 struct ps2_data *ps2_data;
208 struct dec5800_data *dec5800_csr;
209 struct au1x00_ic_data *au1x00_ic_data;
210 struct vr41xx_data *vr41xx_data;
211 struct jazz_data *jazz_data;
212 struct malta_data *malta_data;
213 struct sgi_ip20_data *sgi_ip20_data;
214 struct sgi_ip22_data *sgi_ip22_data;
215 struct sgi_ip30_data *sgi_ip30_data;
216 struct {
217 struct crime_data *crime_data;
218 struct mace_data *mace_data;
219 } 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;
225
226 /* X11/framebuffer stuff: */
227 int use_x11;
228 int x11_scaledown;
229 int x11_scaleup;
230 int x11_n_display_names;
231 char **x11_display_names;
232 int x11_current_display_name_nr; /* updated by x11.c */
233
234 int n_fb_windows;
235 struct fb_window **fb_windows;
236 };
237
238
239 /*
240 * Machine emulation types:
241 */
242
243 #define ARCH_NOARCH 0
244 #define ARCH_MIPS 1
245 #define ARCH_PPC 2
246 #define ARCH_SPARC 3
247 #define ARCH_ALPHA 4
248 #define ARCH_X86 5
249 #define ARCH_ARM 6
250 #define ARCH_IA64 7
251 #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: */
259 #define MACHINE_BAREMIPS 1000
260 #define MACHINE_TESTMIPS 1001
261 #define MACHINE_DEC 1002
262 #define MACHINE_COBALT 1003
263 #define MACHINE_HPCMIPS 1004
264 #define MACHINE_PS2 1005
265 #define MACHINE_SGI 1006
266 #define MACHINE_ARC 1007
267 #define MACHINE_MESHCUBE 1008
268 #define MACHINE_NETGEAR 1009
269 #define MACHINE_SONYNEWS 1010
270 #define MACHINE_EVBMIPS 1011
271 #define MACHINE_PSP 1012
272 #define MACHINE_ALGOR 1013
273
274 /* PPC: */
275 #define MACHINE_BAREPPC 2000
276 #define MACHINE_TESTPPC 2001
277 #define MACHINE_WALNUT 2002
278 #define MACHINE_PMPPC 2003
279 #define MACHINE_SANDPOINT 2004
280 #define MACHINE_BEBOX 2005
281 #define MACHINE_PREP 2006
282 #define MACHINE_MACPPC 2007
283 #define MACHINE_DB64360 2008
284
285 /* SPARC: */
286 #define MACHINE_BARESPARC 3000
287 #define MACHINE_TESTSPARC 3001
288 #define MACHINE_ULTRA1 3002
289
290 /* Alpha: */
291 #define MACHINE_BAREALPHA 4000
292 #define MACHINE_TESTALPHA 4001
293 #define MACHINE_ALPHA 4002
294
295 /* X86: */
296 #define MACHINE_BAREX86 5000
297 #define MACHINE_X86 5001
298
299 /* ARM: */
300 #define MACHINE_BAREARM 6000
301 #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: */
339 #define MACHINE_NONE 0
340 #define MACHINE_USERLAND 100000
341
342 /* DEC: */
343 #define MACHINE_DEC_PMAX_3100 1
344 #define MACHINE_DEC_3MAX_5000 2
345 #define MACHINE_DEC_3MIN_5000 3
346 #define MACHINE_DEC_3MAXPLUS_5000 4
347 #define MACHINE_DEC_5800 5
348 #define MACHINE_DEC_5400 6
349 #define MACHINE_DEC_MAXINE_5000 7
350 #define MACHINE_DEC_5500 11
351 #define MACHINE_DEC_MIPSMATE_5100 12
352
353 #define DEC_PROM_CALLBACK_STRUCT 0xffffffffbfc04000ULL
354 #define DEC_PROM_EMULATION 0xffffffffbfc08000ULL
355 #define DEC_PROM_INITIAL_ARGV (INITIAL_STACK_POINTER + 0x80)
356 #define DEC_PROM_STRINGS 0xffffffffbfc20000ULL
357 #define DEC_PROM_TCINFO 0xffffffffbfc2c000ULL
358 #define DEC_MEMMAP_ADDR 0xffffffffbfc30000ULL
359
360 /* HPCmips: */
361 #define MACHINE_HPCMIPS_CASIO_BE300 1
362 #define MACHINE_HPCMIPS_CASIO_E105 2
363 #define MACHINE_HPCMIPS_NEC_MOBILEPRO_770 3
364 #define MACHINE_HPCMIPS_NEC_MOBILEPRO_780 4
365 #define MACHINE_HPCMIPS_NEC_MOBILEPRO_800 5
366 #define MACHINE_HPCMIPS_NEC_MOBILEPRO_880 6
367 #define MACHINE_HPCMIPS_AGENDA_VR3 7
368 #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: */
379 #define PLAYSTATION2_BDA 0xffffffffa0001000ULL
380 #define PLAYSTATION2_OPTARGS 0xffffffff81fff100ULL
381 #define PLAYSTATION2_SIFBIOS 0xffffffffbfc10000ULL
382
383 /* SGI and ARC: */
384 #define MACHINE_ARC_NEC_RD94 1
385 #define MACHINE_ARC_JAZZ_PICA 2
386 #define MACHINE_ARC_NEC_R94 3
387 #define MACHINE_ARC_DESKTECH_TYNE 4
388 #define MACHINE_ARC_JAZZ_MAGNUM 5
389 #define MACHINE_ARC_NEC_R98 6
390 #define MACHINE_ARC_JAZZ_M700 7
391 #define MACHINE_ARC_NEC_R96 8
392
393 /* Algor: */
394 #define MACHINE_ALGOR_P4032 4
395 #define MACHINE_ALGOR_P5064 5
396
397 /* EVBMIPS: */
398 #define MACHINE_EVBMIPS_MALTA 1
399 #define MACHINE_EVBMIPS_MALTA_BE 2
400 #define MACHINE_EVBMIPS_PB1000 3
401
402 /* MacPPC: TODO: Real model names */
403 #define MACHINE_MACPPC_G4 1
404 #define MACHINE_MACPPC_G5 2
405
406 /* X86: */
407 #define MACHINE_X86_GENERIC 1
408 #define MACHINE_X86_XT 2
409
410
411 /*
412 * Problem: kernels seem to be loaded at low addresses in RAM, so
413 * storing environment strings and memory descriptors there is a bad
414 * idea. They are stored at 0xbfc..... instead. The ARC SPB must
415 * be at physical address 0x1000 though.
416 */
417 #define SGI_SPB_ADDR 0xffffffff80001000ULL
418 /* 0xbfc10000 is firmware callback vector stuff */
419 #define ARC_FIRMWARE_VECTORS 0xffffffffbfc80000ULL
420 #define ARC_FIRMWARE_ENTRIES 0xffffffffbfc88000ULL
421 #define ARC_ARGV_START 0xffffffffbfc90000ULL
422 #define ARC_ENV_STRINGS 0xffffffffbfc98000ULL
423 #define ARC_ENV_POINTERS 0xffffffffbfc9d000ULL
424 #define SGI_SYSID_ADDR 0xffffffffbfca1800ULL
425 #define ARC_DSPSTAT_ADDR 0xffffffffbfca1c00ULL
426 #define ARC_MEMDESC_ADDR 0xffffffffbfca1c80ULL
427 #define ARC_CONFIG_DATA_ADDR 0xffffffffbfca2000ULL
428 #define FIRST_ARC_COMPONENT 0xffffffffbfca8000ULL
429 #define ARC_PRIVATE_VECTORS 0xffffffffbfcb0000ULL
430 #define ARC_PRIVATE_ENTRIES 0xffffffffbfcb8000ULL
431
432
433 /* machine.c: */
434 struct machine *machine_new(char *name, struct emul *emul);
435 int machine_name_to_type(char *stype, char *ssubtype,
436 int *type, int *subtype, int *arch);
437 void machine_add_tickfunction(struct machine *machine,
438 void (*func)(struct cpu *, void *), void *extra, int clockshift);
439 void dump_mem_string(struct cpu *cpu, uint64_t addr);
440 void store_string(struct cpu *cpu, uint64_t addr, char *s);
441 int store_64bit_word(struct cpu *cpu, uint64_t addr, uint64_t data64);
442 int store_32bit_word(struct cpu *cpu, uint64_t addr, uint64_t data32);
443 int store_16bit_word(struct cpu *cpu, uint64_t addr, uint64_t data16);
444 void store_byte(struct cpu *cpu, uint64_t addr, uint8_t data);
445 void store_64bit_word_in_host(struct cpu *cpu, unsigned char *data,
446 uint64_t data32);
447 void store_32bit_word_in_host(struct cpu *cpu, unsigned char *data,
448 uint64_t data32);
449 void store_16bit_word_in_host(struct cpu *cpu, unsigned char *data,
450 uint16_t data16);
451 uint32_t load_32bit_word(struct cpu *cpu, uint64_t addr);
452 uint16_t load_16bit_word(struct cpu *cpu, uint64_t addr);
453 void store_buf(struct cpu *cpu, uint64_t addr, char *s, size_t len);
454 void machine_setup(struct machine *);
455 void machine_memsize_fix(struct machine *);
456 void machine_default_cputype(struct machine *);
457 void machine_dumpinfo(struct machine *);
458 void machine_list_available_types_and_cpus(void);
459 void machine_init(void);
460
461
462 #endif /* MACHINE_H */

  ViewVC Help
Powered by ViewVC 1.1.26