Commit b8ed223bfe3b1af434adce07b2981ce8b5b9ecb4
1 parent
c970a162
big endian fixes
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@437 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
15 additions
and
19 deletions
hw/vga.c
... | ... | @@ -141,12 +141,24 @@ static const uint8_t gr_mask[16] = { |
141 | 141 | (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >> 8) | \ |
142 | 142 | (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )) |
143 | 143 | |
144 | -#ifdef WORD_BIGENDIAN | |
144 | +#ifdef WORDS_BIGENDIAN | |
145 | 145 | #define PAT(x) cbswap_32(x) |
146 | 146 | #else |
147 | 147 | #define PAT(x) (x) |
148 | 148 | #endif |
149 | 149 | |
150 | +#ifdef WORDS_BIGENDIAN | |
151 | +#define BIG 1 | |
152 | +#else | |
153 | +#define BIG 0 | |
154 | +#endif | |
155 | + | |
156 | +#ifdef WORDS_BIGENDIAN | |
157 | +#define GET_PLANE(data, p) (((data) >> (24 - (p) * 8)) & 0xff) | |
158 | +#else | |
159 | +#define GET_PLANE(data, p) (((data) >> ((p) * 8)) & 0xff) | |
160 | +#endif | |
161 | + | |
150 | 162 | static const uint32_t mask16[16] = { |
151 | 163 | PAT(0x00000000), |
152 | 164 | PAT(0x000000ff), |
... | ... | @@ -168,7 +180,7 @@ static const uint32_t mask16[16] = { |
168 | 180 | |
169 | 181 | #undef PAT |
170 | 182 | |
171 | -#ifdef WORD_BIGENDIAN | |
183 | +#ifdef WORDS_BIGENDIAN | |
172 | 184 | #define PAT(x) (x) |
173 | 185 | #else |
174 | 186 | #define PAT(x) cbswap_32(x) |
... | ... | @@ -465,11 +477,7 @@ static uint32_t vga_mem_readb(uint32_t addr) |
465 | 477 | if (!(s->gr[5] & 0x08)) { |
466 | 478 | /* read mode 0 */ |
467 | 479 | plane = s->gr[4]; |
468 | -#ifdef WORD_BIGENDIAN | |
469 | - ret = (s->latch >> (24 - (plane * 8))) & 0xff; | |
470 | -#else | |
471 | - ret = (s->latch >> (plane * 8)) & 0xff; | |
472 | -#endif | |
480 | + ret = GET_PLANE(s->latch, plane); | |
473 | 481 | } else { |
474 | 482 | /* read mode 1 */ |
475 | 483 | ret = (s->latch ^ mask16[s->gr[2]]) & mask16[s->gr[7]]; |
... | ... | @@ -641,18 +649,6 @@ void vga_mem_writel(uint32_t addr, uint32_t val) |
641 | 649 | vga_mem_writeb(addr + 3, (val >> 24) & 0xff); |
642 | 650 | } |
643 | 651 | |
644 | -#ifdef WORD_BIGENDIAN | |
645 | -#define BIG 1 | |
646 | -#else | |
647 | -#define BIG 0 | |
648 | -#endif | |
649 | - | |
650 | -#ifdef WORDS_BIGENDIAN | |
651 | -#define GET_PLANE(data, p) (((data) >> (24 - (p) * 8)) & 0xff) | |
652 | -#else | |
653 | -#define GET_PLANE(data, p) (((data) >> ((p) * 8)) & 0xff) | |
654 | -#endif | |
655 | - | |
656 | 652 | typedef void vga_draw_glyph8_func(uint8_t *d, int linesize, |
657 | 653 | const uint8_t *font_ptr, int h, |
658 | 654 | uint32_t fgcol, uint32_t bgcol); | ... | ... |