/[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 10 by dpavlin, Mon Oct 8 16:18:27 2007 UTC revision 49 by dpavlin, Wed Oct 10 23:31:09 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-2007  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.58 2005/06/24 19:15:08 debug Exp $   *  $Id: machine.h,v 1.182 2007/08/29 20:36:49 debug Exp $
32   */   */
33    
34  #include <sys/types.h>  #include <sys/types.h>
 #include <sys/time.h>  
35    
36  #include "symbol.h"  #include "symbol.h"
37    
 #include "arcbios.h"  
 #include "machine_x86.h"  
   
 #define MAX_BREAKPOINTS         8  
 #define BREAKPOINT_FLAG_R       1  
   
 #define MAX_TICK_FUNCTIONS      14  
   
38  struct cpu_family;  struct cpu_family;
39  struct diskimage;  struct diskimage;
40  struct emul;  struct emul;
41  struct fb_window;  struct fb_window;
42    struct machine_arcbios;
43    struct machine_pmax;
44  struct memory;  struct memory;
45    struct of_data;
46    struct settings;
47    
48    
49    /*  TODO: This should probably go away...  */
50    struct isa_pic_data {
51            struct pic8259_data     *pic1;
52            struct pic8259_data     *pic2;
53    
54            int                     *pending_timer_interrupts;
55            int                     last_int;
56    };
57    
58  /*  Ugly:  */  struct breakpoints {
59  struct kn230_csr;          int             n;
 struct kn02_csr;  
 struct dec_ioasic_data;  
 struct ps2_data;  
 struct dec5800_data;  
 struct au1x00_ic_data;  
 struct malta_data;  
 struct vr41xx_data;  
 struct jazz_data;  
 struct crime_data;  
 struct mace_data;  
 struct sgi_ip20_data;  
 struct sgi_ip22_data;  
 struct sgi_ip30_data;  
60    
61  #define MACHINE_NAME_MAXBUF             200          /*  Arrays, with one element for each entry:  */
62            char            **string;
63            uint64_t        *addr;
64    };
65    
66    struct statistics {
67            char    *filename;
68            FILE    *file;
69            int     enabled;
70            char    *fields;                /*  "vpi" etc.  */
71    };
72    
73    struct tick_functions {
74            int     n_entries;
75    
76            /*  Arrays, with one element for each entry:  */
77            int     *ticks_till_next;
78            int     *ticks_reset_value;
79            void    (*(*f))(struct cpu *, void *);
80            void    **extra;
81    };
82    
83    struct x11_md {
84            /*  X11/framebuffer stuff:  */
85            int     in_use;
86            int     scaledown;
87            int     scaleup;
88            int     n_display_names;
89            char    **display_names;
90            int     current_display_name_nr;        /*  updated by x11.c  */
91    
92            int     n_fb_windows;
93            struct fb_window **fb_windows;
94    };
95    
96    
97    /*
98     *  The machine struct:
99     */
100  struct machine {  struct machine {
101          /*  Pointer back to the emul struct we are in:  */          /*  Pointer back to the emul struct we are in:  */
102          struct emul *emul;          struct emul *emul;
103    
104            /*  Settings:  */
105            struct settings *settings;
106    
107          /*  Name as choosen by the user:  */          /*  Name as choosen by the user:  */
108          char    *name;          char    *name;
109    
110            /*  Full "path" to the machine, e.g. "machine[0]":  */
111            char    *path;
112    
113          int     arch;                   /*  ARCH_MIPS, ARCH_PPC, ..  */          int     arch;                   /*  ARCH_MIPS, ARCH_PPC, ..  */
114          int     machine_type;           /*  MACHINE_DEC, ..  */          int     machine_type;           /*  MACHINE_PMAX, ..  */
115          int     machine_subtype;        /*  MACHINE_DEC_3MAX_5000, ..  */          int     machine_subtype;        /*  MACHINE_DEC_3MAX_5000, ..  */
116    
117            /*  Name set by code in src/machines/machine_*.c:  */
118          char    *machine_name;          char    *machine_name;
119    
120          /*  The serial number is mostly used when emulating multiple machines          /*  The serial number is mostly used when emulating multiple machines
# Line 87  struct machine { Line 123  struct machine {
123          int     serial_nr;          int     serial_nr;
124          int     nr_of_nics;          int     nr_of_nics;
125    
126            /*  TODO: How about multiple cpu familys in one machine?  */
127          struct cpu_family *cpu_family;          struct cpu_family *cpu_family;
128    
         /*  
          *  The "mainbus":  
          *  
          *      o)  memory  
          *      o)  devices  
          *      o)  CPUs  
          */  
   
129          struct memory *memory;          struct memory *memory;
130    
131          int     main_console_handle;          int     main_console_handle;
132    
133          /*  Hardware devices, run every x clock cycles.  */          /*  Tick functions (e.g. hardware devices):  */
134          int     n_tick_entries;          struct tick_functions tick_functions;
         int     ticks_till_next[MAX_TICK_FUNCTIONS];  
         int     ticks_reset_value[MAX_TICK_FUNCTIONS];  
         void    (*tick_func[MAX_TICK_FUNCTIONS])(struct cpu *, void *);  
         void    *tick_extra[MAX_TICK_FUNCTIONS];  
   
         void    (*md_interrupt)(struct machine *m, struct cpu *cpu,  
                     int irq_nr, int assert);  
135    
136          char    *cpu_name;  /*  TODO: remove this, there could be several          char    *cpu_name;  /*  TODO: remove this, there could be several
137                                  cpus with different names in a machine  */                                  cpus with different names in a machine  */
# Line 120  struct machine { Line 142  struct machine {
142          int     ncpus;          int     ncpus;
143          struct cpu **cpus;          struct cpu **cpus;
144    
         /*  These are used by stuff in cpu.c, mostly:  */  
         int64_t ncycles;  
         int64_t ncycles_show;  
         int64_t ncycles_flush;  
         int64_t ncycles_since_gettimeofday;  
         struct timeval starttime;  
         int     a_few_cycles;  
         int     a_few_instrs;  
   
145          struct diskimage *first_diskimage;          struct diskimage *first_diskimage;
146    
147          struct symbol_context symbol_context;          struct symbol_context symbol_context;
# Line 138  struct machine { Line 151  struct machine {
151          int     memory_offset_in_mb;          int     memory_offset_in_mb;
152          int     prom_emulation;          int     prom_emulation;
153          int     register_dump;          int     register_dump;
154            int     arch_pagesize;
155    
156            int     bootdev_type;
157            int     bootdev_id;
158            char    *bootstr;
159            char    *bootarg;
160    
161          int     n_breakpoints;          /*  Breakpoints:  */
162          char    *breakpoint_string[MAX_BREAKPOINTS];          struct breakpoints breakpoints;
163          uint64_t breakpoint_addr[MAX_BREAKPOINTS];  
164          int     breakpoint_flags[MAX_BREAKPOINTS];          int     halt_on_nonexistant_memaccess;
   
         /*  Cache sizes: (1 << x) x=0 for default values  */  
         /*  TODO: these are _PER CPU_!  */  
         int     cache_picache;  
         int     cache_pdcache;  
         int     cache_secondary;  
         int     cache_picache_linesize;  
         int     cache_pdcache_linesize;  
         int     cache_secondary_linesize;  
   
         int     dbe_on_nonexistant_memaccess;  
         int     bintrans_enable;  
         int     old_bintrans_enable;  
         int     bintrans_enabled_from_start;  
         int     bintrans_size;  
165          int     instruction_trace;          int     instruction_trace;
         int     single_step_on_bad_addr;  
166          int     show_nr_of_instructions;          int     show_nr_of_instructions;
167          int     show_symbolic_register_names;          int     show_trace_tree;
         int64_t max_instructions;  
168          int     emulated_hz;          int     emulated_hz;
169          int     max_random_cycles_per_chunk;          int     allow_instruction_combinations;
         int     speed_tricks;  
170          char    *userland_emul;         /*  NULL for no userland emulation  */          char    *userland_emul;         /*  NULL for no userland emulation  */
171          int     force_netboot;          int     force_netboot;
172          int     slow_serial_interrupts_hack_for_linux;          int     slow_serial_interrupts_hack_for_linux;
173          uint64_t file_loaded_end_addr;          uint64_t file_loaded_end_addr;
174          char    *boot_kernel_filename;          char    *boot_kernel_filename;
175          char    *boot_string_argument;          char    *boot_string_argument;
   
         int     automatic_clock_adjustment;  
176          int     exit_without_entering_debugger;          int     exit_without_entering_debugger;
         int     show_trace_tree;  
   
177          int     n_gfx_cards;          int     n_gfx_cards;
178    
179            /*  Instruction statistics:  */
180            struct statistics statistics;
181    
182            /*  X11/framebuffer stuff (per machine):  */
183            struct x11_md x11_md;
184    
185          /*  Machine-dependent: (PROM stuff, etc.)  */          /*  Machine-dependent: (PROM stuff, etc.)  */
186          union {          union {
187                  struct machine_arcbios  arc;                  struct machine_arcbios  *arc;
188                  struct machine_pc       pc;                  struct machine_pmax     *pmax;
189                    struct of_data          *of_data;
190          } md;          } md;
191    
192          /*  Machine-dependent interrupt specific structs:  */          /*  Bus-specific interrupt data:  */
193          union {          /*  TODO: Remove!  */
194                  struct kn230_csr *kn230_csr;          struct isa_pic_data isa_pic_data;
195                  struct kn02_csr *kn02_csr;  };
                 struct dec_ioasic_data *dec_ioasic_data;  
                 struct ps2_data *ps2_data;  
                 struct dec5800_data *dec5800_csr;  
                 struct au1x00_ic_data *au1x00_ic_data;  
                 struct vr41xx_data *vr41xx_data;        
                 struct jazz_data *jazz_data;  
                 struct malta_data *malta_data;  
                 struct sgi_ip20_data *sgi_ip20_data;  
                 struct sgi_ip22_data *sgi_ip22_data;  
                 struct sgi_ip30_data *sgi_ip30_data;  
                 struct {  
                         struct crime_data *crime_data;  
                         struct mace_data *mace_data;  
                 } ip32;  
         } md_int;  
196    
         /*  X11/framebuffer stuff:  */  
         int     use_x11;  
         int     x11_scaledown;  
         int     x11_n_display_names;  
         char    **x11_display_names;  
         int     x11_current_display_name_nr;    /*  updated by x11.c  */  
197    
198          int     n_fb_windows;  /*  Tick function "prototype":  */
199          struct fb_window **fb_windows;  #define DEVICE_TICK(x)  void dev_ ## x ## _tick(struct cpu *cpu, void *extra)
 };  
200    
201    
202  /*  /*
# Line 225  struct machine { Line 207  struct machine {
207  #define ARCH_MIPS               1  #define ARCH_MIPS               1
208  #define ARCH_PPC                2  #define ARCH_PPC                2
209  #define ARCH_SPARC              3  #define ARCH_SPARC              3
210  #define ARCH_URISC              4  #define ARCH_ALPHA              4
211  #define ARCH_HPPA               5  #define ARCH_ARM                5
212  #define ARCH_ALPHA              6  #define ARCH_SH                 6
213  #define ARCH_X86                7  #define ARCH_M88K               7
214  #define ARCH_ARM                8  #define ARCH_M32R               8
215    
216  /*  MIPS:  */  /*  MIPS:  */
217  #define MACHINE_BAREMIPS        1000  #define MACHINE_BAREMIPS        1000
218  #define MACHINE_TESTMIPS        1001  #define MACHINE_TESTMIPS        1001
219  #define MACHINE_DEC             1002  #define MACHINE_PMAX            1002
220  #define MACHINE_COBALT          1003  #define MACHINE_COBALT          1003
221  #define MACHINE_HPCMIPS         1004  #define MACHINE_HPCMIPS         1004
222  #define MACHINE_PS2             1005  #define MACHINE_PS2             1005
223  #define MACHINE_SGI             1006  #define MACHINE_SGI             1006
224  #define MACHINE_ARC             1007  #define MACHINE_ARC             1007
225  #define MACHINE_MESHCUBE        1008  #define MACHINE_EVBMIPS         1008
226  #define MACHINE_NETGEAR         1009  #define MACHINE_ALGOR           1009
227  #define MACHINE_SONYNEWS        1010  #define MACHINE_QEMU_MIPS       1010
 #define MACHINE_EVBMIPS         1011  
 #define MACHINE_PSP             1012  
228    
229  /*  PPC:  */  /*  PPC:  */
230  #define MACHINE_BAREPPC         2000  #define MACHINE_BAREPPC         2000
231  #define MACHINE_TESTPPC         2001  #define MACHINE_TESTPPC         2001
232  #define MACHINE_WALNUT          2002  #define MACHINE_PMPPC           2002
233  #define MACHINE_PMPPC           2003  #define MACHINE_BEBOX           2003
234  #define MACHINE_SANDPOINT       2004  #define MACHINE_PREP            2004
235  #define MACHINE_BEBOX           2005  #define MACHINE_MACPPC          2005
236  #define MACHINE_PREP            2006  #define MACHINE_MVMEPPC         2006
237  #define MACHINE_MACPPC          2007  #define MACHINE_SANDPOINT       2007
 #define MACHINE_DB64360         2008  
238    
239  /*  SPARC:  */  /*  SPARC:  */
240  #define MACHINE_BARESPARC       3000  #define MACHINE_BARESPARC       3000
241  #define MACHINE_ULTRA1          3001  #define MACHINE_TESTSPARC       3001
242    #define MACHINE_SPARC           3002
 /*  URISC:  */  
 #define MACHINE_BAREURISC       4000  
 #define MACHINE_TESTURISC       4001  
   
 /*  HPPA:  */  
 #define MACHINE_BAREHPPA        5000  
 #define MACHINE_TESTHPPA        5001  
243    
244  /*  Alpha:  */  /*  Alpha:  */
245  #define MACHINE_BAREALPHA       6000  #define MACHINE_BAREALPHA       4000
246  #define MACHINE_TESTALPHA       6001  #define MACHINE_TESTALPHA       4001
247    #define MACHINE_ALPHA           4002
 /*  X86:  */  
 #define MACHINE_BAREX86         7000  
 #define MACHINE_X86             7001  
248    
249  /*  ARM:  */  /*  ARM:  */
250  #define MACHINE_BAREARM         8000  #define MACHINE_BAREARM         5000
251  #define MACHINE_TESTARM         8001  #define MACHINE_TESTARM         5001
252    #define MACHINE_CATS            5002
253    #define MACHINE_HPCARM          5003
254    #define MACHINE_NETWINDER       5004
255    #define MACHINE_IQ80321         5005
256    #define MACHINE_QEMU_ARM        5006
257    
258    /*  SH:  */
259    #define MACHINE_BARESH          6000
260    #define MACHINE_TESTSH          6001
261    #define MACHINE_HPCSH           6002
262    #define MACHINE_DREAMCAST       6003
263    #define MACHINE_LANDISK         6004
264    
265    /*  M88K:  */
266    #define MACHINE_BAREM88K        7000
267    #define MACHINE_TESTM88K        7001
268    #define MACHINE_MVME88K         7002
269    
270    /*  M32R:  */
271    #define MACHINE_BAREM32R        8000
272    #define MACHINE_TESTM32R        8001
273    
274  /*  Other "pseudo"-machines:  */  /*  Other "pseudo"-machines:  */
275  #define MACHINE_NONE            0  #define MACHINE_NONE            0
# Line 313  struct machine { Line 303  struct machine {
303  #define MACHINE_HPCMIPS_AGENDA_VR3              7  #define MACHINE_HPCMIPS_AGENDA_VR3              7
304  #define MACHINE_HPCMIPS_IBM_WORKPAD_Z50         8  #define MACHINE_HPCMIPS_IBM_WORKPAD_Z50         8
305    
306  /*  Playstation 2:  */  /*  HPCarm:  */
307  #define PLAYSTATION2_BDA        0xffffffffa0001000ULL  #define MACHINE_HPCARM_IPAQ                     1
308  #define PLAYSTATION2_OPTARGS    0xffffffff81fff100ULL  #define MACHINE_HPCARM_JORNADA720               2
309  #define PLAYSTATION2_SIFBIOS    0xffffffffbfc10000ULL  
310    /*  HPCsh:  */
311    #define MACHINE_HPCSH_JORNADA680                1
312    #define MACHINE_HPCSH_JORNADA690                2
313    
314  /*  SGI and ARC:  */  /*  SGI and ARC:  */
315  #define MACHINE_ARC_NEC_RD94            1  #define MACHINE_ARC_JAZZ_PICA           1
316  #define MACHINE_ARC_JAZZ_PICA           2  #define MACHINE_ARC_JAZZ_MAGNUM         2
317  #define MACHINE_ARC_NEC_R94             3  
318  #define MACHINE_ARC_DESKTECH_TYNE       4  /*  Algor:  */
319  #define MACHINE_ARC_JAZZ_MAGNUM         5  #define MACHINE_ALGOR_P4032             1
320  #define MACHINE_ARC_NEC_R98             6  #define MACHINE_ALGOR_P5064             2
 #define MACHINE_ARC_JAZZ_M700           7  
 #define MACHINE_ARC_NEC_R96             8  
321    
322  /*  EVBMIPS:  */  /*  EVBMIPS:  */
323  #define MACHINE_EVBMIPS_MALTA           1  #define MACHINE_EVBMIPS_MALTA           1
324  #define MACHINE_EVBMIPS_PB1000          2  #define MACHINE_EVBMIPS_MALTA_BE        2
325    
326    /*  PReP:  */
327    #define MACHINE_PREP_IBM6050            1
328    #define MACHINE_PREP_MVME2400           2
329    
330    /*  Sun SPARC:  */
331    #define MACHINE_SPARC_SS5               1
332    #define MACHINE_SPARC_SS20              2
333    #define MACHINE_SPARC_ULTRA1            3
334    #define MACHINE_SPARC_ULTRA60           4
335    #define MACHINE_SPARC_SUN4V             5
336    
337  /*  MacPPC:  TODO: Real model names  */  /*  MacPPC:  TODO: Real model names  */
338  #define MACHINE_MACPPC_G4               1  #define MACHINE_MACPPC_G3               1
339  #define MACHINE_MACPPC_G5               2  #define MACHINE_MACPPC_G4               2
340    #define MACHINE_MACPPC_G5               3
341    
342    /*  MVMEPPC  */
343    #define MACHINE_MVMEPPC_1600            1
344    #define MACHINE_MVMEPPC_2100            2
345    #define MACHINE_MVMEPPC_5500            3
346    
347    /*  MVME88K  */
348    #define MACHINE_MVME88K_187             1
349    #define MACHINE_MVME88K_188             2
350    #define MACHINE_MVME88K_197             3
351    
352    
353    /*  For the automachine system:  */
354    struct machine_entry_subtype {
355            int                     machine_subtype;/*  Old-style subtype  */
356            const char              *name;          /*  Official name  */
357            int                     n_aliases;
358            char                    **aliases;      /*  Aliases  */
359    };
360    
361  /*  X86:  */  struct machine_entry {
362  #define MACHINE_X86_GENERIC             1          struct machine_entry    *next;
 #define MACHINE_X86_XT                  2  
363    
364            /*  Machine type:  */
365            int                     arch;
366            int                     machine_type;   /*  Old-style type  */
367            const char              *name;          /*  Official name  */
368            int                     n_aliases;
369            char                    **aliases;      /*  Aliases  */
370    
371            void                    (*setup)(struct machine *, struct cpu *);
372            void                    (*set_default_cpu)(struct machine *);
373            void                    (*set_default_ram)(struct machine *);
374    
375            /*  Machine subtypes:  */
376            int                     n_subtypes;
377            struct machine_entry_subtype **subtype;
378    };
379    
380  /*  #define MACHINE_SETUP_TYPE(n)   void (*n)(struct machine *, struct cpu *)
381   *  Problem: kernels seem to be loaded at low addresses in RAM, so  #define MACHINE_SETUP(x)        void machine_setup_ ## x(struct machine *machine, \
382   *  storing environment strings and memory descriptors there is a bad                                      struct cpu *cpu)
383   *  idea. They are stored at 0xbfc..... instead.  The ARC SPB must  #define MACHINE_DEFAULT_CPU(x)  void machine_default_cpu_ ## x(struct machine *machine)
384   *  be at physical address 0x1000 though.  #define MACHINE_DEFAULT_RAM(x)  void machine_default_ram_ ## x(struct machine *machine)
385   */  #define MACHINE_REGISTER(x)     void machine_register_ ## x(void)
386  #define SGI_SPB_ADDR            0xffffffff80001000ULL  #define MR_DEFAULT(x,name,arch,type) struct machine_entry               \
387  /*  0xbfc10000 is firmware callback vector stuff  */              *me = machine_entry_new(name,arch,type);                    \
388  #define ARC_FIRMWARE_VECTORS    0xffffffffbfc80000ULL          me->setup = machine_setup_ ## x;                                \
389  #define ARC_FIRMWARE_ENTRIES    0xffffffffbfc88000ULL          me->set_default_cpu = machine_default_cpu_ ## x;                \
390  #define ARC_ARGV_START          0xffffffffbfc90000ULL          machine_entry_register(me, arch);
391  #define ARC_ENV_STRINGS         0xffffffffbfc98000ULL  void automachine_init(void);
 #define ARC_ENV_POINTERS        0xffffffffbfc9d000ULL  
 #define SGI_SYSID_ADDR          0xffffffffbfca1800ULL  
 #define ARC_DSPSTAT_ADDR        0xffffffffbfca1c00ULL  
 #define ARC_MEMDESC_ADDR        0xffffffffbfca1c80ULL  
 #define ARC_CONFIG_DATA_ADDR    0xffffffffbfca2000ULL  
 #define FIRST_ARC_COMPONENT     0xffffffffbfca8000ULL  
 #define ARC_PRIVATE_VECTORS     0xffffffffbfcb0000ULL  
 #define ARC_PRIVATE_ENTRIES     0xffffffffbfcb8000ULL  
392    
393    
394  /*  machine.c:  */  /*  machine.c:  */
395  struct machine *machine_new(char *name, struct emul *emul);  struct machine *machine_new(char *name, struct emul *emul, int id);
396    void machine_destroy(struct machine *machine);
397  int machine_name_to_type(char *stype, char *ssubtype,  int machine_name_to_type(char *stype, char *ssubtype,
398          int *type, int *subtype, int *arch);          int *type, int *subtype, int *arch);
399    void machine_add_breakpoint_string(struct machine *machine, char *str);
400  void machine_add_tickfunction(struct machine *machine,  void machine_add_tickfunction(struct machine *machine,
401          void (*func)(struct cpu *, void *), void *extra, int clockshift);          void (*func)(struct cpu *, void *), void *extra, int clockshift);
402  void dump_mem_string(struct cpu *cpu, uint64_t addr);  void machine_statistics_init(struct machine *, char *fname);
403  void store_string(struct cpu *cpu, uint64_t addr, char *s);  void machine_register(char *name, MACHINE_SETUP_TYPE(setup));
 int store_64bit_word(struct cpu *cpu, uint64_t addr, uint64_t data64);  
 int store_32bit_word(struct cpu *cpu, uint64_t addr, uint64_t data32);  
 int store_16bit_word(struct cpu *cpu, uint64_t addr, uint64_t data16);  
 void store_byte(struct cpu *cpu, uint64_t addr, uint8_t data);  
 void store_64bit_word_in_host(struct cpu *cpu, unsigned char *data,  
         uint64_t data32);  
 void store_32bit_word_in_host(struct cpu *cpu, unsigned char *data,  
         uint64_t data32);  
 void store_16bit_word_in_host(struct cpu *cpu, unsigned char *data,  
         uint16_t data16);  
 uint32_t load_32bit_word(struct cpu *cpu, uint64_t addr);  
 uint16_t load_16bit_word(struct cpu *cpu, uint64_t addr);  
 void store_buf(struct cpu *cpu, uint64_t addr, char *s, size_t len);  
404  void machine_setup(struct machine *);  void machine_setup(struct machine *);
405  void machine_memsize_fix(struct machine *);  void machine_memsize_fix(struct machine *);
406  void machine_default_cputype(struct machine *);  void machine_default_cputype(struct machine *);
407  void machine_dumpinfo(struct machine *);  void machine_dumpinfo(struct machine *);
408    int machine_run(struct machine *machine);
409  void machine_list_available_types_and_cpus(void);  void machine_list_available_types_and_cpus(void);
410    struct machine_entry *machine_entry_new(const char *name,
411            int arch, int oldstyle_type);
412    void machine_entry_add_alias(struct machine_entry *me, const char *name);
413    void machine_entry_add_subtype(struct machine_entry *me, const char *name,
414            int oldstyle_subtype, ...);
415    void machine_entry_register(struct machine_entry *me, int arch);
416  void machine_init(void);  void machine_init(void);
417    
418    

Legend:
Removed from v.10  
changed lines
  Added in v.49

  ViewVC Help
Powered by ViewVC 1.1.26