ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/uae_cpu/memory.h
(Generate patch)

Comparing BasiliskII/src/uae_cpu/memory.h (file contents):
Revision 1.5 by cebix, 2001-07-14T15:02:49Z vs.
Revision 1.8 by asvitkine, 2009-03-03T08:01:48Z

# Line 23 | Line 23
23   typedef uae_u32 (REGPARAM2 *mem_get_func)(uaecptr) REGPARAM;
24   typedef void (REGPARAM2 *mem_put_func)(uaecptr, uae_u32) REGPARAM;
25   typedef uae_u8 *(REGPARAM2 *xlate_func)(uaecptr) REGPARAM;
26 typedef int (REGPARAM2 *check_func)(uaecptr, uae_u32) REGPARAM;
26  
27   #undef DIRECT_MEMFUNCS_SUCCESSFUL
28  
# Line 44 | Line 43 | typedef struct {
43       * This doesn't work for all memory banks, so this function may call
44       * abort(). */
45      xlate_func xlateaddr;
47    /* To prevent calls to abort(), use check before calling xlateaddr.
48     * It checks not only that the memory bank can do xlateaddr, but also
49     * that the pointer points to an area of at least the specified size.
50     * This is used for example to translate bitplane pointers in custom.c */
51    check_func check;
46   } addrbank;
47  
48   extern uae_u8 filesysory[65536];
# Line 59 | Line 53 | extern addrbank frame_bank;    // Frame buf
53  
54   /* Default memory access functions */
55  
62 extern int REGPARAM2 default_check(uaecptr addr, uae_u32 size) REGPARAM;
56   extern uae_u8 *REGPARAM2 default_xlate(uaecptr addr) REGPARAM;
57  
58   #define bankindex(addr) (((uaecptr)(addr)) >> 16)
# Line 88 | Line 81 | extern void map_banks(addrbank *bank, in
81  
82   #else
83  
91 extern uae_u32 alongget(uaecptr addr);
92 extern uae_u32 awordget(uaecptr addr);
84   extern uae_u32 longget(uaecptr addr);
85   extern uae_u32 wordget(uaecptr addr);
86   extern uae_u32 byteget(uaecptr addr);
# Line 114 | Line 105 | extern void byteput(uaecptr addr, uae_u3
105  
106   #if REAL_ADDRESSING
107   const uintptr MEMBaseDiff = 0;
108 < #endif
118 < #if DIRECT_ADDRESSING
108 > #elif DIRECT_ADDRESSING
109   extern uintptr MEMBaseDiff;
110   #endif
111  
# Line 166 | Line 156 | static __inline__ uae_u32 get_virtual_ad
156   {
157          return do_get_virtual_address(addr);
158   }
169 static __inline__ int valid_address(uaecptr addr, uae_u32 size)
170 {
171    return 1;
172 }
159   #else
160   static __inline__ uae_u32 get_long(uaecptr addr)
161   {
# Line 201 | Line 187 | static __inline__ uae_u8 *get_real_addre
187   }
188   /* gb-- deliberately not implemented since it shall not be used... */
189   extern uae_u32 get_virtual_address(uae_u8 *addr);
204 static __inline__ int valid_address(uaecptr addr, uae_u32 size)
205 {
206    return get_mem_bank(addr).check(addr, size);
207 }
190   #endif /* DIRECT_ADDRESSING || REAL_ADDRESSING */
191  
192   #endif /* MEMORY_H */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines