/[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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 8 by dpavlin, Mon Oct 8 16:18:19 2007 UTC revision 28 by dpavlin, Mon Oct 8 16:20:26 2007 UTC
# Line 2  Line 2 
2  #define MACHINE_H  #define MACHINE_H
3    
4  /*  /*
5   *  Copyright (C) 2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2005-2006  Anders Gavare.  All rights reserved.
6   *   *
7   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
8   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: machine.h,v 1.54 2005/06/12 12:31:55 debug Exp $   *  $Id: machine.h,v 1.126 2006/07/21 16:55:41 debug Exp $
32   */   */
33    
34  #include <sys/types.h>  #include <sys/types.h>
35  #include <sys/time.h>  #include <sys/time.h>
36    
37    #include "debugger_gdb.h"
38  #include "symbol.h"  #include "symbol.h"
39    
40  #include "arcbios.h"  #include "machine_arc.h"
41    #include "machine_pmax.h"
42  #include "machine_x86.h"  #include "machine_x86.h"
43    
44    
45  #define MAX_BREAKPOINTS         8  #define MAX_BREAKPOINTS         8
46  #define BREAKPOINT_FLAG_R       1  #define BREAKPOINT_FLAG_R       1
47    
48  #define MAX_TICK_FUNCTIONS      14  #define MAX_TICK_FUNCTIONS      16
49    
50    #define MAX_STATISTICS_FIELDS   8
51    
52  struct cpu_family;  struct cpu_family;
53  struct diskimage;  struct diskimage;
54  struct emul;  struct emul;
55  struct fb_window;  struct fb_window;
56  struct memory;  struct memory;
57    struct of_data;
58    
59  /*  Ugly:  */  /*  Ugly:  */
60  struct kn230_csr;  struct kn230_csr;
61  struct kn02_csr;  struct kn02_csr;
62  struct dec_ioasic_data;  struct dec_ioasic_data;
63  struct ps2_data;  struct ps2_data;
64    struct footbridge_data;
65  struct dec5800_data;  struct dec5800_data;
66  struct au1x00_ic_data;  struct au1x00_ic_data;
67    struct malta_data;
68  struct vr41xx_data;  struct vr41xx_data;
69  struct jazz_data;  struct jazz_data;
70  struct crime_data;  struct crime_data;
# Line 64  struct mace_data; Line 72  struct mace_data;
72  struct sgi_ip20_data;  struct sgi_ip20_data;
73  struct sgi_ip22_data;  struct sgi_ip22_data;
74  struct sgi_ip30_data;  struct sgi_ip30_data;
75    struct isa_pic_data {
76            struct pic8259_data     *pic1;
77            struct pic8259_data     *pic2;
78            int                     last_int;
79            int                     native_irq;
80    };
81    
82    
83    struct machine_bus {
84            struct machine_bus *next;
85    
86            char            *name;
87    
88            void            (*debug_dump)(void *);
89            void            *extra;
90    };
91    
92    
93  struct machine {  struct machine {
94          /*  Pointer back to the emul struct we are in:  */          /*  Pointer back to the emul struct we are in:  */
# Line 73  struct machine { Line 98  struct machine {
98          char    *name;          char    *name;
99    
100          int     arch;                   /*  ARCH_MIPS, ARCH_PPC, ..  */          int     arch;                   /*  ARCH_MIPS, ARCH_PPC, ..  */
101          int     machine_type;           /*  MACHINE_DEC, ..  */          int     machine_type;           /*  MACHINE_PMAX, ..  */
102          int     machine_subtype;        /*  MACHINE_DEC_3MAX_5000, ..  */          int     machine_subtype;        /*  MACHINE_DEC_3MAX_5000, ..  */
103    
104            int     cycle_accurate;         /*  Set to non-zero for cycle
105                                                accurate (slow) emulation.  */
106    
107            /*  Name set by code in src/machines/machine_*.c:  */
108          char    *machine_name;          char    *machine_name;
109    
110            int     stable;                 /*  startup warning for non-stable
111                                                emulation modes.  */
112    
113          /*  The serial number is mostly used when emulating multiple machines          /*  The serial number is mostly used when emulating multiple machines
114              in a network. nr_of_nics is the current nr of network cards, which              in a network. nr_of_nics is the current nr of network cards, which
115              is useful when emulating multiple cards in one machine:  */              is useful when emulating multiple cards in one machine:  */
116          int     serial_nr;          int     serial_nr;
117          int     nr_of_nics;          int     nr_of_nics;
118    
119            /*  TODO: How about multiple cpu familys in one machine?  */
120          struct cpu_family *cpu_family;          struct cpu_family *cpu_family;
121    
122          /*          /*
# Line 104  struct machine { Line 137  struct machine {
137          int     ticks_reset_value[MAX_TICK_FUNCTIONS];          int     ticks_reset_value[MAX_TICK_FUNCTIONS];
138          void    (*tick_func[MAX_TICK_FUNCTIONS])(struct cpu *, void *);          void    (*tick_func[MAX_TICK_FUNCTIONS])(struct cpu *, void *);
139          void    *tick_extra[MAX_TICK_FUNCTIONS];          void    *tick_extra[MAX_TICK_FUNCTIONS];
140            double  tick_hz[MAX_TICK_FUNCTIONS];
141    
142          void    (*md_interrupt)(struct machine *m, struct cpu *cpu,          void    (*md_interrupt)(struct machine *m, struct cpu *cpu,
143                      int irq_nr, int assert);                      int irq_nr, int assert);
# Line 117  struct machine { Line 151  struct machine {
151          int     ncpus;          int     ncpus;
152          struct cpu **cpus;          struct cpu **cpus;
153    
154            /*  Registered busses:  */
155            struct machine_bus *first_bus;
156            int     n_busses;
157    
158          /*  These are used by stuff in cpu.c, mostly:  */          /*  These are used by stuff in cpu.c, mostly:  */
159            int64_t ninstrs;
160            int64_t ninstrs_show;
161            int64_t ninstrs_flush;
162            int64_t ninstrs_since_gettimeofday;
163          struct timeval starttime;          struct timeval starttime;
         int64_t ncycles;  
         int64_t ncycles_show;  
         int64_t ncycles_flush;  
         int     a_few_cycles;  
         int     a_few_instrs;  
164    
165          struct diskimage *first_diskimage;          struct diskimage *first_diskimage;
166    
# Line 134  struct machine { Line 171  struct machine {
171          int     memory_offset_in_mb;          int     memory_offset_in_mb;
172          int     prom_emulation;          int     prom_emulation;
173          int     register_dump;          int     register_dump;
174            int     arch_pagesize;
175    
176            int     bootdev_type;
177            int     bootdev_id;
178            char    *bootstr;
179            char    *bootarg;
180    
181            struct debugger_gdb gdb;
182    
183            /*  Breakpoints:  */
184          int     n_breakpoints;          int     n_breakpoints;
185          char    *breakpoint_string[MAX_BREAKPOINTS];          char    *breakpoint_string[MAX_BREAKPOINTS];
186          uint64_t breakpoint_addr[MAX_BREAKPOINTS];          uint64_t breakpoint_addr[MAX_BREAKPOINTS];
# Line 150  struct machine { Line 196  struct machine {
196          int     cache_secondary_linesize;          int     cache_secondary_linesize;
197    
198          int     dbe_on_nonexistant_memaccess;          int     dbe_on_nonexistant_memaccess;
         int     bintrans_enable;  
         int     old_bintrans_enable;  
         int     bintrans_enabled_from_start;  
         int     bintrans_size;  
199          int     instruction_trace;          int     instruction_trace;
         int     single_step_on_bad_addr;  
200          int     show_nr_of_instructions;          int     show_nr_of_instructions;
201            int     show_trace_tree;
202          int     show_symbolic_register_names;          int     show_symbolic_register_names;
         int64_t max_instructions;  
203          int     emulated_hz;          int     emulated_hz;
204          int     max_random_cycles_per_chunk;          int     allow_instruction_combinations;
         int     speed_tricks;  
205          char    *userland_emul;         /*  NULL for no userland emulation  */          char    *userland_emul;         /*  NULL for no userland emulation  */
206          int     force_netboot;          int     force_netboot;
207          int     slow_serial_interrupts_hack_for_linux;          int     slow_serial_interrupts_hack_for_linux;
208          uint64_t file_loaded_end_addr;          uint64_t file_loaded_end_addr;
209          char    *boot_kernel_filename;          char    *boot_kernel_filename;
210          char    *boot_string_argument;          char    *boot_string_argument;
   
211          int     automatic_clock_adjustment;          int     automatic_clock_adjustment;
212          int     exit_without_entering_debugger;          int     exit_without_entering_debugger;
         int     show_trace_tree;  
   
213          int     n_gfx_cards;          int     n_gfx_cards;
214    
215            /*  Instruction statistics:  */
216            char    *statistics_filename;
217            FILE    *statistics_file;
218            int     statistics_enabled;
219            char    *statistics_fields;     /*  "vpi" etc.  */
220    
221          /*  Machine-dependent: (PROM stuff, etc.)  */          /*  Machine-dependent: (PROM stuff, etc.)  */
222          union {          union {
223                  struct machine_arcbios  arc;                  struct machine_arcbios  arc;
224                    struct machine_pmax     pmax;
225                  struct machine_pc       pc;                  struct machine_pc       pc;
226          } md;          } md;
227    
228            /*  OpenFirmware:  */
229            struct of_data *of_data;
230    
231            /*  Bus-specific interrupt data:  */
232            struct isa_pic_data isa_pic_data;
233    
234          /*  Machine-dependent interrupt specific structs:  */          /*  Machine-dependent interrupt specific structs:  */
235          union {          union {
236                  struct kn230_csr *kn230_csr;                  struct kn230_csr *kn230_csr;
# Line 191  struct machine { Line 241  struct machine {
241                  struct au1x00_ic_data *au1x00_ic_data;                  struct au1x00_ic_data *au1x00_ic_data;
242                  struct vr41xx_data *vr41xx_data;                        struct vr41xx_data *vr41xx_data;      
243                  struct jazz_data *jazz_data;                  struct jazz_data *jazz_data;
244                    struct malta_data *malta_data;
245                  struct sgi_ip20_data *sgi_ip20_data;                  struct sgi_ip20_data *sgi_ip20_data;
246                  struct sgi_ip22_data *sgi_ip22_data;                  struct sgi_ip22_data *sgi_ip22_data;
247                  struct sgi_ip30_data *sgi_ip30_data;                  struct sgi_ip30_data *sgi_ip30_data;
# Line 198  struct machine { Line 249  struct machine {
249                          struct crime_data *crime_data;                          struct crime_data *crime_data;
250                          struct mace_data *mace_data;                          struct mace_data *mace_data;
251                  } ip32;                  } ip32;
252                    struct footbridge_data *footbridge_data;
253                    struct bebox_data *bebox_data;
254                    struct prep_data *prep_data;
255                    struct cpc700_data *cpc700_data;
256                    struct gc_data *gc_data;
257                    struct v3_data *v3_data;
258          } md_int;          } md_int;
259    
260          /*  X11/framebuffer stuff:  */          /*  X11/framebuffer stuff:  */
261          int     use_x11;          int     use_x11;
262          int     x11_scaledown;          int     x11_scaledown;
263            int     x11_scaleup;
264          int     x11_n_display_names;          int     x11_n_display_names;
265          char    **x11_display_names;          char    **x11_display_names;
266          int     x11_current_display_name_nr;    /*  updated by x11.c  */          int     x11_current_display_name_nr;    /*  updated by x11.c  */
# Line 212  struct machine { Line 270  struct machine {
270  };  };
271    
272    
273    /*  Tick function "prototype":  */
274    #define DEVICE_TICK(x)  void dev_ ## x ## _tick(struct cpu *cpu, void *extra)
275    
276    
277  /*  /*
278   *  Machine emulation types:   *  Machine emulation types:
279   */   */
# Line 220  struct machine { Line 282  struct machine {
282  #define ARCH_MIPS               1  #define ARCH_MIPS               1
283  #define ARCH_PPC                2  #define ARCH_PPC                2
284  #define ARCH_SPARC              3  #define ARCH_SPARC              3
285  #define ARCH_URISC              4  #define ARCH_ALPHA              4
286  #define ARCH_HPPA               5  #define ARCH_X86                5
287  #define ARCH_ALPHA              6  #define ARCH_ARM                6
288  #define ARCH_X86                7  #define ARCH_IA64               7
289  #define ARCH_ARM                8  #define ARCH_M68K               8
290    #define ARCH_SH                 9
291    #define ARCH_HPPA               10
292    #define ARCH_I960               11
293    #define ARCH_AVR                12
294    #define ARCH_TRANSPUTER         13
295    
296  /*  MIPS:  */  /*  MIPS:  */
297  #define MACHINE_BAREMIPS        1000  #define MACHINE_BAREMIPS        1000
298  #define MACHINE_TESTMIPS        1001  #define MACHINE_TESTMIPS        1001
299  #define MACHINE_DEC             1002  #define MACHINE_PMAX            1002
300  #define MACHINE_COBALT          1003  #define MACHINE_COBALT          1003
301  #define MACHINE_HPCMIPS         1004  #define MACHINE_HPCMIPS         1004
302  #define MACHINE_PS2             1005  #define MACHINE_PS2             1005
303  #define MACHINE_SGI             1006  #define MACHINE_SGI             1006
304  #define MACHINE_ARC             1007  #define MACHINE_ARC             1007
305  #define MACHINE_MESHCUBE        1008  #define MACHINE_NETGEAR         1008
306  #define MACHINE_NETGEAR         1009  #define MACHINE_SONYNEWS        1009
307  #define MACHINE_SONYNEWS        1010  #define MACHINE_EVBMIPS         1010
308  #define MACHINE_EVBMIPS         1011  #define MACHINE_PSP             1011
309    #define MACHINE_ALGOR           1012
310    #define MACHINE_QEMU_MIPS       1013
311    
312  /*  PPC:  */  /*  PPC:  */
313  #define MACHINE_BAREPPC         2000  #define MACHINE_BAREPPC         2000
# Line 250  struct machine { Line 319  struct machine {
319  #define MACHINE_PREP            2006  #define MACHINE_PREP            2006
320  #define MACHINE_MACPPC          2007  #define MACHINE_MACPPC          2007
321  #define MACHINE_DB64360         2008  #define MACHINE_DB64360         2008
322    #define MACHINE_MVMEPPC         2009
323    
324  /*  SPARC:  */  /*  SPARC:  */
325  #define MACHINE_BARESPARC       3000  #define MACHINE_BARESPARC       3000
326  #define MACHINE_ULTRA1          3001  #define MACHINE_TESTSPARC       3001
327    #define MACHINE_SPARC           3002
 /*  URISC:  */  
 #define MACHINE_BAREURISC       4000  
 #define MACHINE_TESTURISC       4001  
   
 /*  HPPA:  */  
 #define MACHINE_BAREHPPA        5000  
 #define MACHINE_TESTHPPA        5001  
328    
329  /*  Alpha:  */  /*  Alpha:  */
330  #define MACHINE_BAREALPHA       6000  #define MACHINE_BAREALPHA       4000
331  #define MACHINE_TESTALPHA       6001  #define MACHINE_TESTALPHA       4001
332    #define MACHINE_ALPHA           4002
333    
334  /*  X86:  */  /*  X86:  */
335  #define MACHINE_BAREX86         7000  #define MACHINE_BAREX86         5000
336  #define MACHINE_X86             7001  #define MACHINE_X86             5001
337    
338  /*  ARM:  */  /*  ARM:  */
339  #define MACHINE_BAREARM         8000  #define MACHINE_BAREARM         6000
340  #define MACHINE_TESTARM         8001  #define MACHINE_TESTARM         6001
341    #define MACHINE_CATS            6002
342    #define MACHINE_HPCARM          6003
343    #define MACHINE_ZAURUS          6004
344    #define MACHINE_NETWINDER       6005
345    #define MACHINE_SHARK           6006
346    #define MACHINE_IQ80321         6007
347    #define MACHINE_IYONIX          6008
348    #define MACHINE_TS7200          6009
349    
350    /*  IA64:  */
351    #define MACHINE_BAREIA64        7000
352    #define MACHINE_TESTIA64        7001
353    
354    /*  M68K:  */
355    #define MACHINE_BAREM68K        8000
356    #define MACHINE_TESTM68K        8001
357    
358    /*  SH:  */
359    #define MACHINE_BARESH          9000
360    #define MACHINE_TESTSH          9001
361    #define MACHINE_HPCSH           9002
362    
363    /*  HPPA:  */
364    #define MACHINE_BAREHPPA        10000
365    #define MACHINE_TESTHPPA        10001
366    
367    /*  I960:  */
368    #define MACHINE_BAREI960        11000
369    #define MACHINE_TESTI960        11001
370    
371    /*  AVR:  */
372    #define MACHINE_BAREAVR         12000
373    #define MACHINE_AVR_PAL         12001
374    #define MACHINE_AVR_MAHPONG     12002
375    
376    /*  TRANSPUTER:  */
377    #define MACHINE_BARETRANSPUTER  13000
378    
379  /*  Other "pseudo"-machines:  */  /*  Other "pseudo"-machines:  */
380  #define MACHINE_NONE            0  #define MACHINE_NONE            0
# Line 307  struct machine { Line 408  struct machine {
408  #define MACHINE_HPCMIPS_AGENDA_VR3              7  #define MACHINE_HPCMIPS_AGENDA_VR3              7
409  #define MACHINE_HPCMIPS_IBM_WORKPAD_Z50         8  #define MACHINE_HPCMIPS_IBM_WORKPAD_Z50         8
410    
411  /*  Playstation 2:  */  /*  HPCarm:  */
412  #define PLAYSTATION2_BDA        0xffffffffa0001000ULL  #define MACHINE_HPCARM_IPAQ                     1
413  #define PLAYSTATION2_OPTARGS    0xffffffff81fff100ULL  #define MACHINE_HPCARM_JORNADA720               2
414  #define PLAYSTATION2_SIFBIOS    0xffffffffbfc10000ULL  
415    /*  HPCsh:  */
416    #define MACHINE_HPCSH_JORNADA680                1
417    #define MACHINE_HPCSH_JORNADA690                2
418    
419  /*  SGI and ARC:  */  /*  SGI and ARC:  */
420  #define MACHINE_ARC_NEC_RD94            1  #define MACHINE_ARC_NEC_RD94            1
# Line 322  struct machine { Line 426  struct machine {
426  #define MACHINE_ARC_JAZZ_M700           7  #define MACHINE_ARC_JAZZ_M700           7
427  #define MACHINE_ARC_NEC_R96             8  #define MACHINE_ARC_NEC_R96             8
428    
429    /*  Algor:  */
430    #define MACHINE_ALGOR_P4032             4
431    #define MACHINE_ALGOR_P5064             5
432    
433  /*  EVBMIPS:  */  /*  EVBMIPS:  */
434  #define MACHINE_EVBMIPS_MALTA           1  #define MACHINE_EVBMIPS_MALTA           1
435  #define MACHINE_EVBMIPS_PB1000          2  #define MACHINE_EVBMIPS_MALTA_BE        2
436    #define MACHINE_EVBMIPS_MESHCUBE        3
437    #define MACHINE_EVBMIPS_PB1000          4
438    
439    /*  PReP:  */
440    #define MACHINE_PREP_IBM6050            1
441    #define MACHINE_PREP_MVME2400           2
442    
443    /*  Sun SPARC:  */
444    #define MACHINE_SPARC_SS5               1
445    #define MACHINE_SPARC_SS20              2
446    #define MACHINE_SPARC_ULTRA1            3
447    #define MACHINE_SPARC_ULTRA60           4
448    
449  /*  MacPPC:  TODO: Real model names  */  /*  MacPPC:  TODO: Real model names  */
450  #define MACHINE_MACPPC_G4               1  #define MACHINE_MACPPC_G3               1
451  #define MACHINE_MACPPC_G5               2  #define MACHINE_MACPPC_G4               2
452    #define MACHINE_MACPPC_G5               3
453    
454    /*  MVMEPPC  */
455    #define MACHINE_MVMEPPC_1600            1
456    #define MACHINE_MVMEPPC_2100            2
457    #define MACHINE_MVMEPPC_5500            3
458    
459  /*  X86:  */  /*  X86:  */
460  #define MACHINE_X86_GENERIC             1  #define MACHINE_X86_GENERIC             1
461  #define MACHINE_X86_XT                  2  #define MACHINE_X86_XT                  2
462    
463    
464  /*  /*  For the automachine system:  */
465   *  Problem: kernels seem to be loaded at low addresses in RAM, so  struct machine_entry_subtype {
466   *  storing environment strings and memory descriptors there is a bad          int                     machine_subtype;/*  Old-style subtype  */
467   *  idea. They are stored at 0xbfc..... instead.  The ARC SPB must          const char              *name;          /*  Official name  */
468   *  be at physical address 0x1000 though.          int                     n_aliases;
469   */          char                    **aliases;      /*  Aliases  */
470  #define SGI_SPB_ADDR            0xffffffff80001000ULL  };
471  /*  0xbfc10000 is firmware callback vector stuff  */  
472  #define ARC_FIRMWARE_VECTORS    0xffffffffbfc80000ULL  struct machine_entry {
473  #define ARC_FIRMWARE_ENTRIES    0xffffffffbfc88000ULL          struct machine_entry    *next;
474  #define ARC_ARGV_START          0xffffffffbfc90000ULL  
475  #define ARC_ENV_STRINGS         0xffffffffbfc98000ULL          /*  Machine type:  */
476  #define ARC_ENV_POINTERS        0xffffffffbfc9d000ULL          int                     arch;
477  #define SGI_SYSID_ADDR          0xffffffffbfca1800ULL          int                     machine_type;   /*  Old-style type  */
478  #define ARC_DSPSTAT_ADDR        0xffffffffbfca1c00ULL          const char              *name;          /*  Official name  */
479  #define ARC_MEMDESC_ADDR        0xffffffffbfca1c80ULL          int                     n_aliases;
480  #define ARC_CONFIG_DATA_ADDR    0xffffffffbfca2000ULL          char                    **aliases;      /*  Aliases  */
481  #define FIRST_ARC_COMPONENT     0xffffffffbfca8000ULL  
482  #define ARC_PRIVATE_VECTORS     0xffffffffbfcb0000ULL          void                    (*setup)(struct machine *, struct cpu *);
483  #define ARC_PRIVATE_ENTRIES     0xffffffffbfcb8000ULL          void                    (*set_default_cpu)(struct machine *);
484            void                    (*set_default_ram)(struct machine *);
485    
486            /*  Machine subtypes:  */
487            int                     n_subtypes;
488            struct machine_entry_subtype **subtype;
489    };
490    
491    #define MACHINE_SETUP_TYPE(n)   void (*n)(struct machine *, struct cpu *)
492    #define MACHINE_SETUP(x)        void machine_setup_ ## x(struct machine *machine, \
493                                        struct cpu *cpu)
494    #define MACHINE_DEFAULT_CPU(x)  void machine_default_cpu_ ## x(struct machine *machine)
495    #define MACHINE_DEFAULT_RAM(x)  void machine_default_ram_ ## x(struct machine *machine)
496    #define MACHINE_REGISTER(x)     void machine_register_ ## x(void)
497    #define MR_DEFAULT(x,name,arch,type) struct machine_entry               \
498                *me = machine_entry_new(name,arch,type);                    \
499            me->setup = machine_setup_ ## x;                                \
500            me->set_default_cpu = machine_default_cpu_ ## x;                \
501            machine_entry_register(me, arch);
502    void automachine_init(void);
503    
504    
505  /*  machine.c:  */  /*  machine.c:  */
# Line 362  struct machine *machine_new(char *name, Line 507  struct machine *machine_new(char *name,
507  int machine_name_to_type(char *stype, char *ssubtype,  int machine_name_to_type(char *stype, char *ssubtype,
508          int *type, int *subtype, int *arch);          int *type, int *subtype, int *arch);
509  void machine_add_tickfunction(struct machine *machine,  void machine_add_tickfunction(struct machine *machine,
510          void (*func)(struct cpu *, void *), void *extra, int clockshift);          void (*func)(struct cpu *, void *), void *extra,
511            int clockshift, double hz);
512    void machine_statistics_init(struct machine *, char *fname);
513    void machine_register(char *name, MACHINE_SETUP_TYPE(setup));
514  void dump_mem_string(struct cpu *cpu, uint64_t addr);  void dump_mem_string(struct cpu *cpu, uint64_t addr);
515  void store_string(struct cpu *cpu, uint64_t addr, char *s);  void store_string(struct cpu *cpu, uint64_t addr, char *s);
516  int store_64bit_word(struct cpu *cpu, uint64_t addr, uint64_t data64);  int store_64bit_word(struct cpu *cpu, uint64_t addr, uint64_t data64);
# Line 378  void store_16bit_word_in_host(struct cpu Line 526  void store_16bit_word_in_host(struct cpu
526  uint32_t load_32bit_word(struct cpu *cpu, uint64_t addr);  uint32_t load_32bit_word(struct cpu *cpu, uint64_t addr);
527  uint16_t load_16bit_word(struct cpu *cpu, uint64_t addr);  uint16_t load_16bit_word(struct cpu *cpu, uint64_t addr);
528  void store_buf(struct cpu *cpu, uint64_t addr, char *s, size_t len);  void store_buf(struct cpu *cpu, uint64_t addr, char *s, size_t len);
529    void add_environment_string(struct cpu *cpu, char *s, uint64_t *addr);
530    void add_environment_string_dual(struct cpu *cpu,
531            uint64_t *ptrp, uint64_t *addrp, char *s1, char *s2);
532    void store_pointer_and_advance(struct cpu *cpu, uint64_t *addrp,
533            uint64_t data, int flag64);
534  void machine_setup(struct machine *);  void machine_setup(struct machine *);
535  void machine_memsize_fix(struct machine *);  void machine_memsize_fix(struct machine *);
536  void machine_default_cputype(struct machine *);  void machine_default_cputype(struct machine *);
537  void machine_dumpinfo(struct machine *);  void machine_dumpinfo(struct machine *);
538    void machine_bus_register(struct machine *, char *busname,
539            void (*debug_dump)(void *), void *extra);
540    int machine_run(struct machine *machine);
541  void machine_list_available_types_and_cpus(void);  void machine_list_available_types_and_cpus(void);
542    struct machine_entry *machine_entry_new(const char *name,
543            int arch, int oldstyle_type);
544    void machine_entry_add_alias(struct machine_entry *me, const char *name);
545    void machine_entry_add_subtype(struct machine_entry *me, const char *name,
546            int oldstyle_subtype, ...);
547    void machine_entry_register(struct machine_entry *me, int arch);
548  void machine_init(void);  void machine_init(void);
549    
550    

Legend:
Removed from v.8  
changed lines
  Added in v.28

  ViewVC Help
Powered by ViewVC 1.1.26