Revision 8da3ff18 hw/jazz_led.c
b/hw/jazz_led.c | ||
---|---|---|
34 | 34 |
} screen_state_t; |
35 | 35 |
|
36 | 36 |
typedef struct LedState { |
37 |
target_phys_addr_t base; |
|
38 | 37 |
uint8_t segments; |
39 | 38 |
DisplayState *ds; |
40 | 39 |
QEMUConsole *console; |
... | ... | |
44 | 43 |
static uint32_t led_readb(void *opaque, target_phys_addr_t addr) |
45 | 44 |
{ |
46 | 45 |
LedState *s = opaque; |
47 |
int relative_addr = addr - s->base; |
|
48 | 46 |
uint32_t val; |
49 | 47 |
|
50 |
switch (relative_addr) {
|
|
48 |
switch (addr) { |
|
51 | 49 |
case 0: |
52 | 50 |
val = s->segments; |
53 | 51 |
break; |
... | ... | |
94 | 92 |
static void led_writeb(void *opaque, target_phys_addr_t addr, uint32_t val) |
95 | 93 |
{ |
96 | 94 |
LedState *s = opaque; |
97 |
int relative_addr = addr - s->base; |
|
98 | 95 |
|
99 |
switch (relative_addr) {
|
|
96 |
switch (addr) { |
|
100 | 97 |
case 0: |
101 | 98 |
s->segments = val; |
102 | 99 |
s->state |= REDRAW_SEGMENTS; |
... | ... | |
311 | 308 |
if (!s) |
312 | 309 |
return; |
313 | 310 |
|
314 |
s->base = base; |
|
315 | 311 |
s->ds = ds; |
316 | 312 |
s->state = REDRAW_SEGMENTS | REDRAW_BACKGROUND; |
317 | 313 |
|
318 | 314 |
io = cpu_register_io_memory(0, led_read, led_write, s); |
319 |
cpu_register_physical_memory(s->base, 1, io);
|
|
315 |
cpu_register_physical_memory(base, 1, io); |
|
320 | 316 |
|
321 | 317 |
s->console = graphic_console_init(ds, jazz_led_update_display, |
322 | 318 |
jazz_led_invalidate_display, |
Also available in: Unified diff