Revision cff0cfbe hw/omap.h

b/hw/omap.h
998 998
#define OMAP_GPIOSW_OUTPUT	0x0002
999 999

  
1000 1000
# define TCMI_VERBOSE			1
1001
//# define MEM_VERBOSE			1
1002 1001

  
1003 1002
# ifdef TCMI_VERBOSE
1004 1003
#  define OMAP_8B_REG(paddr)		\
......
1018 1017

  
1019 1018
# define OMAP_MPUI_REG_MASK		0x000007ff
1020 1019

  
1021
# ifdef MEM_VERBOSE
1022
struct io_fn {
1023
    CPUReadMemoryFunc * const *mem_read;
1024
    CPUWriteMemoryFunc * const *mem_write;
1025
    void *opaque;
1026
    int in;
1027
};
1028

  
1029
static uint32_t io_readb(void *opaque, target_phys_addr_t addr)
1030
{
1031
    struct io_fn *s = opaque;
1032
    uint32_t ret;
1033

  
1034
    s->in ++;
1035
    ret = s->mem_read[0](s->opaque, addr);
1036
    s->in --;
1037
    if (!s->in)
1038
        fprintf(stderr, "%08x ---> %02x\n", (uint32_t) addr, ret);
1039
    return ret;
1040
}
1041
static uint32_t io_readh(void *opaque, target_phys_addr_t addr)
1042
{
1043
    struct io_fn *s = opaque;
1044
    uint32_t ret;
1045

  
1046
    s->in ++;
1047
    ret = s->mem_read[1](s->opaque, addr);
1048
    s->in --;
1049
    if (!s->in)
1050
        fprintf(stderr, "%08x ---> %04x\n", (uint32_t) addr, ret);
1051
    return ret;
1052
}
1053
static uint32_t io_readw(void *opaque, target_phys_addr_t addr)
1054
{
1055
    struct io_fn *s = opaque;
1056
    uint32_t ret;
1057

  
1058
    s->in ++;
1059
    ret = s->mem_read[2](s->opaque, addr);
1060
    s->in --;
1061
    if (!s->in)
1062
        fprintf(stderr, "%08x ---> %08x\n", (uint32_t) addr, ret);
1063
    return ret;
1064
}
1065
static void io_writeb(void *opaque, target_phys_addr_t addr, uint32_t value)
1066
{
1067
    struct io_fn *s = opaque;
1068

  
1069
    if (!s->in)
1070
        fprintf(stderr, "%08x <--- %02x\n", (uint32_t) addr, value);
1071
    s->in ++;
1072
    s->mem_write[0](s->opaque, addr, value);
1073
    s->in --;
1074
}
1075
static void io_writeh(void *opaque, target_phys_addr_t addr, uint32_t value)
1076
{
1077
    struct io_fn *s = opaque;
1078

  
1079
    if (!s->in)
1080
        fprintf(stderr, "%08x <--- %04x\n", (uint32_t) addr, value);
1081
    s->in ++;
1082
    s->mem_write[1](s->opaque, addr, value);
1083
    s->in --;
1084
}
1085
static void io_writew(void *opaque, target_phys_addr_t addr, uint32_t value)
1086
{
1087
    struct io_fn *s = opaque;
1088

  
1089
    if (!s->in)
1090
        fprintf(stderr, "%08x <--- %08x\n", (uint32_t) addr, value);
1091
    s->in ++;
1092
    s->mem_write[2](s->opaque, addr, value);
1093
    s->in --;
1094
}
1095

  
1096
static CPUReadMemoryFunc * const io_readfn[] = { io_readb, io_readh, io_readw, };
1097
static CPUWriteMemoryFunc * const io_writefn[] = { io_writeb, io_writeh, io_writew, };
1098

  
1099
inline static int debug_register_io_memory(CPUReadMemoryFunc * const *mem_read,
1100
                                           CPUWriteMemoryFunc * const *mem_write,
1101
                                           void *opaque)
1102
{
1103
    struct io_fn *s = g_malloc(sizeof(struct io_fn));
1104

  
1105
    s->mem_read = mem_read;
1106
    s->mem_write = mem_write;
1107
    s->opaque = opaque;
1108
    s->in = 0;
1109
    return cpu_register_io_memory(io_readfn, io_writefn, s,
1110
                                  DEVICE_NATIVE_ENDIAN);
1111
}
1112
#  define cpu_register_io_memory	debug_register_io_memory
1113
# endif
1114

  
1115 1020
#endif /* hw_omap_h */

Also available in: Unified diff