1.1 --- a/src/mmio.h Tue Jan 13 11:56:28 2009 +0000
1.2 +++ b/src/mmio.h Fri Jun 26 05:47:04 2009 +0000
1.4 #undef MMIO_REGION_LIST_BEGIN
1.6 #undef MMIO_REGION_LIST_END
1.7 -#define MMIO_REGION_BEGIN(b,id,d) struct mmio_region mmio_region_##id = { #id, d, b, {mmio_region_##id##_read, mmio_region_##id##_write,mmio_region_##id##_read, mmio_region_##id##_write,mmio_region_##id##_read, mmio_region_##id##_write,NULL, NULL, unmapped_prefetch}, 0, 0, {
1.8 +#define MMIO_REGION_BEGIN(b,id,d) struct mmio_region mmio_region_##id = { #id, d, b, {mmio_region_##id##_read, mmio_region_##id##_write,mmio_region_##id##_read_word, mmio_region_##id##_write,mmio_region_##id##_read_byte, mmio_region_##id##_write,NULL, NULL, unmapped_prefetch, mmio_region_##id##_read_byte}, 0, 0, {
1.9 #define LONG_PORT( o,id,f,def,d ) { #id, d, 32, o, def, f },
1.10 #define WORD_PORT( o,id,f,def,d ) { #id, d, 16, o, def, f },
1.11 #define BYTE_PORT( o,id,f,def,d ) { #id, d, 8, o, def, f },
1.13 #define MMIO_REGION_DEFFNS( id ) \
1.14 MMIO_REGION_READ_DEFFN( id ) \
1.15 MMIO_REGION_WRITE_DEFFN( id )
1.21 #define MMIO_REGION_BEGIN(b,id,d) \
1.22 extern struct mmio_region mmio_region_##id; \
1.23 int32_t FASTCALL mmio_region_##id##_read(uint32_t); \
1.24 +int32_t FASTCALL mmio_region_##id##_read_word(uint32_t); \
1.25 +int32_t FASTCALL mmio_region_##id##_read_byte(uint32_t); \
1.26 void FASTCALL mmio_region_##id##_write(uint32_t, uint32_t); \
1.27 enum mmio_region_##id##_port_t {
1.28 #define LONG_PORT( o,id,f,def,d ) id = o,
1.29 @@ -179,6 +182,10 @@
1.30 #define MMIO_REGION_READ_FN( id, reg ) \
1.31 int32_t FASTCALL mmio_region_##id##_read( uint32_t reg )
1.33 +#define MMIO_REGION_READ_DEFSUBFNS( id ) \
1.34 +int32_t FASTCALL mmio_region_##id##_read_word( uint32_t reg ) { return SIGNEXT16(mmio_region_##id##_read(reg)); } \
1.35 +int32_t FASTCALL mmio_region_##id##_read_byte( uint32_t reg ) { return SIGNEXT8(mmio_region_##id##_read(reg)); }