/[gxemul]/trunk/src/include/misc.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/misc.h

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

revision 22 by dpavlin, Mon Oct 8 16:19:37 2007 UTC revision 36 by dpavlin, Mon Oct 8 16:21:34 2007 UTC
# Line 2  Line 2 
2  #define MISC_H  #define MISC_H
3    
4  /*  /*
5   *  Copyright (C) 2003-2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2003-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: misc.h,v 1.236 2005/12/03 04:14:16 debug Exp $   *  $Id: misc.h,v 1.251 2007/03/16 14:45:30 debug Exp $
32   *   *
33   *  Misc. definitions for gxemul.   *  Misc. definitions for gxemul.
34   */   */
# Line 45  Line 45 
45    
46  #include "../../config.h"  #include "../../config.h"
47    
48  /*    
49   *  ENABLE_INSTRUCTION_DELAYS should be defined on the cc commandline using  #ifdef NO_C99_PRINTF_DEFINES
50   *  -D if you want it. (This is done by ./configure --delays)  /*
51   *   *  This is a SUPER-UGLY HACK which happens to work on some machines.
52   *  ALWAYS_SIGNEXTEND_32 is enabled by ./configure --always32   *  The correct solution is to upgrade your compiler to C99.
53   */   */
54  #define USE_TINY_CACHE  #ifdef NO_C99_64BIT_LONGLONG
55  /*  #define HALT_IF_PC_ZERO  */  #define PRIi8           "i"
56    #define PRIi16          "i"
57    #define PRIi32          "i"
58    #define PRIi64          "lli"
59    #define PRIx8           "x"
60    #define PRIx16          "x"
61    #define PRIx32          "x"
62    #define PRIx64          "llx"
63    #else
64    #define PRIi8           "i"
65    #define PRIi16          "i"
66    #define PRIi32          "i"
67    #define PRIi64          "li"
68    #define PRIx8           "x"
69    #define PRIx16          "x"
70    #define PRIx32          "x"
71    #define PRIx64          "lx"
72    #endif
73    #endif
74    
75    
76  #ifdef NO_MAP_ANON  #ifdef NO_MAP_ANON
# Line 93  struct machine; Line 111  struct machine;
111  struct memory;  struct memory;
112    
113    
114  #define NO_BYTE_ORDER_OVERRIDE          -1  #define NO_BYTE_ORDER_OVERRIDE          -1
115  #define EMUL_LITTLE_ENDIAN              0  #define EMUL_UNDEFINED_ENDIAN           0
116  #define EMUL_BIG_ENDIAN                 1  #define EMUL_LITTLE_ENDIAN              1
117    #define EMUL_BIG_ENDIAN                 2
118    
119    #ifdef HOST_LITTLE_ENDIAN
120    #define LE16_TO_HOST(x)     (x)
121    #define BE16_TO_HOST(x)     ((((x) & 0xff00) >> 8) | (((x)&0xff) << 8))
122    #else
123    #define LE16_TO_HOST(x)     ((((x) & 0xff00) >> 8) | (((x)&0xff) << 8))
124    #define BE16_TO_HOST(x)     (x)
125    #endif
126    
127  #ifdef HOST_LITTLE_ENDIAN  #ifdef HOST_LITTLE_ENDIAN
128  #define LE32_TO_HOST(x)     (x)  #define LE32_TO_HOST(x)     (x)
129  #define BE32_TO_HOST(x)     ((((x) & 0xff000000) >> 24) | ((x) << 24) | \  #define BE32_TO_HOST(x)     ((((x) & 0xff000000) >> 24) | (((x)&0xff) << 24) | \
130                               (((x) & 0xff0000) >> 8) | (((x) & 0xff00) << 8))                               (((x) & 0xff0000) >> 8) | (((x) & 0xff00) << 8))
131  #else  #else
132  #define LE32_TO_HOST(x)     ((((x) & 0xff000000) >> 24) | ((x) << 24) | \  #define LE32_TO_HOST(x)     ((((x) & 0xff000000) >> 24) | (((x)&0xff) << 24) | \
133                               (((x) & 0xff0000) >> 8) | (((x) & 0xff00) << 8))                               (((x) & 0xff0000) >> 8) | (((x) & 0xff00) << 8))
134  #define BE32_TO_HOST(x)     (x)  #define BE32_TO_HOST(x)     (x)
135  #endif  #endif
136    
137    #ifdef HOST_LITTLE_ENDIAN
138    #define LE64_TO_HOST(x)     (x)
139    #define BE64_TO_HOST(x)     (   (((x) >> 56) & 0xff) +                  \
140                                    ((((x) >> 48) & 0xff) << 8) +           \
141                                    ((((x) >> 40) & 0xff) << 16) +          \
142                                    ((((x) >> 32) & 0xff) << 24) +          \
143                                    ((((x) >> 24) & 0xff) << 32) +          \
144                                    ((((x) >> 16) & 0xff) << 40) +          \
145                                    ((((x) >> 8) & 0xff) << 48) +           \
146                                    (((x) & 0xff) << 56)  )
147    #else
148    #define BE64_TO_HOST(x)     (x)
149    #define LE64_TO_HOST(x)     (   (((x) >> 56) & 0xff) +                  \
150                                    ((((x) >> 48) & 0xff) << 8) +           \
151                                    ((((x) >> 40) & 0xff) << 16) +          \
152                                    ((((x) >> 32) & 0xff) << 24) +          \
153                                    ((((x) >> 24) & 0xff) << 32) +          \
154                                    ((((x) >> 16) & 0xff) << 40) +          \
155                                    ((((x) >> 8) & 0xff) << 48) +           \
156                                    (((x) & 0xff) << 56)  )
157    #endif
158    
159    
160  /*  Debug stuff:  */  /*  Debug stuff:  */
161  #define DEBUG_BUFSIZE           1024  #define DEBUG_BUFSIZE           1024
162  #define DEBUG_INDENTATION       4  #define DEBUG_INDENTATION       4
163  #ifndef DEFAULT_BINTRANS_SIZE_IN_MB  
164  #define DEFAULT_BINTRANS_SIZE_IN_MB     16  
165  #endif  /*  bootblock.c:  */
166    int load_bootblock(struct machine *m, struct cpu *cpu,
167            int *n_loadp, char ***load_namesp);
168    
169    
170    /*  bootblock_apple.c:  */
171    int apple_load_bootblock(struct machine *m, struct cpu *cpu,
172            int disk_id, int disk_type, int *n_loadp, char ***load_namesp);
173    
174    
175    /*  bootblock_iso9660.c:  */
176    int iso_load_bootblock(struct machine *m, struct cpu *cpu,
177            int disk_id, int disk_type, int iso_type, unsigned char *buf,
178            int *n_loadp, char ***load_namesp);
179    
180    
181  /*  dec_prom.c:  */  /*  dec_prom.c:  */
182  int decstation_prom_emul(struct cpu *cpu);  int decstation_prom_emul(struct cpu *cpu);
183    
184    
185    /*  dreamcast.c:  */
186    void dreamcast_machine_setup(struct machine *);
187    int dreamcast_emul(struct cpu *cpu);
188    
189    
190    /*  dreamcast_scramble.c:  */
191    void dreamcast_descramble(char *from, char *to);
192    
193    
194  /*  file.c:  */  /*  file.c:  */
195  int file_n_executables_loaded(void);  int file_n_executables_loaded(void);
196  void file_load(struct machine *machine, struct memory *mem,  void file_load(struct machine *machine, struct memory *mem,
# Line 151  int pc_bios_emul(struct cpu *cpu); Line 223  int pc_bios_emul(struct cpu *cpu);
223  int playstation2_sifbios_emul(struct cpu *cpu);  int playstation2_sifbios_emul(struct cpu *cpu);
224    
225    
226    /*  sh_ipl_g.c:  */
227    void sh_ipl_g_emul_init(struct machine *machine);
228    int sh_ipl_g_emul(struct cpu *);
229    
230    
231  /*  useremul.c:  */  /*  useremul.c:  */
232  void useremul_setup(struct cpu *, int, char **);  void useremul_setup(struct cpu *, int, char **);
233  void useremul_syscall(struct cpu *cpu, uint32_t code);  void useremul_syscall(struct cpu *cpu, uint32_t code);
# Line 161  void useremul_init(void); Line 238  void useremul_init(void);
238    
239    
240  /*  yamon.c:  */  /*  yamon.c:  */
241  int yamon_emul(struct cpu *cpu);  void yamon_machine_setup(struct machine *machine, uint64_t env);
242    int yamon_emul(struct cpu *);
243    
244    
245  #endif  /*  MISC_H  */  #endif  /*  MISC_H  */

Legend:
Removed from v.22  
changed lines
  Added in v.36

  ViewVC Help
Powered by ViewVC 1.1.26