Revision 968d683c hw/isa_mmio.c

b/hw/isa_mmio.c
31 31
    cpu_outb(addr & IOPORTS_MASK, val);
32 32
}
33 33

  
34
static void isa_mmio_writew_be(void *opaque, target_phys_addr_t addr,
34
static void isa_mmio_writew(void *opaque, target_phys_addr_t addr,
35 35
                               uint32_t val)
36 36
{
37
    val = bswap16(val);
38 37
    cpu_outw(addr & IOPORTS_MASK, val);
39 38
}
40 39

  
41
static void isa_mmio_writew_le(void *opaque, target_phys_addr_t addr,
42
                               uint32_t val)
43
{
44
    cpu_outw(addr & IOPORTS_MASK, val);
45
}
46

  
47
static void isa_mmio_writel_be(void *opaque, target_phys_addr_t addr,
48
                               uint32_t val)
49
{
50
    val = bswap32(val);
51
    cpu_outl(addr & IOPORTS_MASK, val);
52
}
53

  
54
static void isa_mmio_writel_le(void *opaque, target_phys_addr_t addr,
40
static void isa_mmio_writel(void *opaque, target_phys_addr_t addr,
55 41
                               uint32_t val)
56 42
{
57 43
    cpu_outl(addr & IOPORTS_MASK, val);
......
59 45

  
60 46
static uint32_t isa_mmio_readb (void *opaque, target_phys_addr_t addr)
61 47
{
62
    uint32_t val;
63

  
64
    val = cpu_inb(addr & IOPORTS_MASK);
65
    return val;
48
    return cpu_inb(addr & IOPORTS_MASK);
66 49
}
67 50

  
68
static uint32_t isa_mmio_readw_be(void *opaque, target_phys_addr_t addr)
51
static uint32_t isa_mmio_readw(void *opaque, target_phys_addr_t addr)
69 52
{
70
    uint32_t val;
71

  
72
    val = cpu_inw(addr & IOPORTS_MASK);
73
    val = bswap16(val);
74
    return val;
53
    return cpu_inw(addr & IOPORTS_MASK);
75 54
}
76 55

  
77
static uint32_t isa_mmio_readw_le(void *opaque, target_phys_addr_t addr)
56
static uint32_t isa_mmio_readl(void *opaque, target_phys_addr_t addr)
78 57
{
79
    uint32_t val;
80

  
81
    val = cpu_inw(addr & IOPORTS_MASK);
82
    return val;
58
    return cpu_inl(addr & IOPORTS_MASK);
83 59
}
84 60

  
85
static uint32_t isa_mmio_readl_be(void *opaque, target_phys_addr_t addr)
86
{
87
    uint32_t val;
88

  
89
    val = cpu_inl(addr & IOPORTS_MASK);
90
    val = bswap32(val);
91
    return val;
92
}
93

  
94
static uint32_t isa_mmio_readl_le(void *opaque, target_phys_addr_t addr)
95
{
96
    uint32_t val;
97

  
98
    val = cpu_inl(addr & IOPORTS_MASK);
99
    return val;
100
}
101

  
102
static CPUWriteMemoryFunc * const isa_mmio_write_be[] = {
103
    &isa_mmio_writeb,
104
    &isa_mmio_writew_be,
105
    &isa_mmio_writel_be,
106
};
107

  
108
static CPUReadMemoryFunc * const isa_mmio_read_be[] = {
109
    &isa_mmio_readb,
110
    &isa_mmio_readw_be,
111
    &isa_mmio_readl_be,
112
};
113

  
114
static CPUWriteMemoryFunc * const isa_mmio_write_le[] = {
61
static CPUWriteMemoryFunc * const isa_mmio_write[] = {
115 62
    &isa_mmio_writeb,
116
    &isa_mmio_writew_le,
117
    &isa_mmio_writel_le,
63
    &isa_mmio_writew,
64
    &isa_mmio_writel,
118 65
};
119 66

  
120
static CPUReadMemoryFunc * const isa_mmio_read_le[] = {
67
static CPUReadMemoryFunc * const isa_mmio_read[] = {
121 68
    &isa_mmio_readb,
122
    &isa_mmio_readw_le,
123
    &isa_mmio_readl_le,
69
    &isa_mmio_readw,
70
    &isa_mmio_readl,
124 71
};
125 72

  
126
static int isa_mmio_iomemtype = 0;
127

  
128
void isa_mmio_init(target_phys_addr_t base, target_phys_addr_t size, int be)
73
void isa_mmio_init(target_phys_addr_t base, target_phys_addr_t size)
129 74
{
130
    if (!isa_mmio_iomemtype) {
131
        if (be) {
132
            isa_mmio_iomemtype = cpu_register_io_memory(isa_mmio_read_be,
133
                                                        isa_mmio_write_be,
134
                                                        NULL,
135
                                                        DEVICE_NATIVE_ENDIAN);
136
        } else {
137
            isa_mmio_iomemtype = cpu_register_io_memory(isa_mmio_read_le,
138
                                                        isa_mmio_write_le,
139
                                                        NULL,
140
                                                        DEVICE_NATIVE_ENDIAN);
141
        }
142
    }
75
    int isa_mmio_iomemtype;
76

  
77
    isa_mmio_iomemtype = cpu_register_io_memory(isa_mmio_read,
78
                                                isa_mmio_write,
79
                                                NULL,
80
                                                DEVICE_LITTLE_ENDIAN);
143 81
    cpu_register_physical_memory(base, size, isa_mmio_iomemtype);
144 82
}

Also available in: Unified diff