Revision 8da3ff18 hw/parallel.c
b/hw/parallel.c | ||
---|---|---|
75 | 75 |
int epp_timeout; |
76 | 76 |
uint32_t last_read_offset; /* For debugging */ |
77 | 77 |
/* Memory-mapped interface */ |
78 |
target_phys_addr_t base; |
|
79 | 78 |
int it_shift; |
80 | 79 |
}; |
81 | 80 |
|
... | ... | |
477 | 476 |
{ |
478 | 477 |
ParallelState *s = opaque; |
479 | 478 |
|
480 |
return parallel_ioport_read_sw(s, (addr - s->base) >> s->it_shift) & 0xFF;
|
|
479 |
return parallel_ioport_read_sw(s, addr >> s->it_shift) & 0xFF;
|
|
481 | 480 |
} |
482 | 481 |
|
483 | 482 |
static void parallel_mm_writeb (void *opaque, |
... | ... | |
485 | 484 |
{ |
486 | 485 |
ParallelState *s = opaque; |
487 | 486 |
|
488 |
parallel_ioport_write_sw(s, (addr - s->base) >> s->it_shift, value & 0xFF);
|
|
487 |
parallel_ioport_write_sw(s, addr >> s->it_shift, value & 0xFF);
|
|
489 | 488 |
} |
490 | 489 |
|
491 | 490 |
static uint32_t parallel_mm_readw (void *opaque, target_phys_addr_t addr) |
492 | 491 |
{ |
493 | 492 |
ParallelState *s = opaque; |
494 | 493 |
|
495 |
return parallel_ioport_read_sw(s, (addr - s->base) >> s->it_shift) & 0xFFFF;
|
|
494 |
return parallel_ioport_read_sw(s, addr >> s->it_shift) & 0xFFFF;
|
|
496 | 495 |
} |
497 | 496 |
|
498 | 497 |
static void parallel_mm_writew (void *opaque, |
... | ... | |
500 | 499 |
{ |
501 | 500 |
ParallelState *s = opaque; |
502 | 501 |
|
503 |
parallel_ioport_write_sw(s, (addr - s->base) >> s->it_shift, value & 0xFFFF);
|
|
502 |
parallel_ioport_write_sw(s, addr >> s->it_shift, value & 0xFFFF);
|
|
504 | 503 |
} |
505 | 504 |
|
506 | 505 |
static uint32_t parallel_mm_readl (void *opaque, target_phys_addr_t addr) |
507 | 506 |
{ |
508 | 507 |
ParallelState *s = opaque; |
509 | 508 |
|
510 |
return parallel_ioport_read_sw(s, (addr - s->base) >> s->it_shift);
|
|
509 |
return parallel_ioport_read_sw(s, addr >> s->it_shift);
|
|
511 | 510 |
} |
512 | 511 |
|
513 | 512 |
static void parallel_mm_writel (void *opaque, |
... | ... | |
515 | 514 |
{ |
516 | 515 |
ParallelState *s = opaque; |
517 | 516 |
|
518 |
parallel_ioport_write_sw(s, (addr - s->base) >> s->it_shift, value);
|
|
517 |
parallel_ioport_write_sw(s, addr >> s->it_shift, value);
|
|
519 | 518 |
} |
520 | 519 |
|
521 | 520 |
static CPUReadMemoryFunc *parallel_mm_read_sw[] = { |
... | ... | |
540 | 539 |
if (!s) |
541 | 540 |
return NULL; |
542 | 541 |
parallel_reset(s, irq, chr); |
543 |
s->base = base; |
|
544 | 542 |
s->it_shift = it_shift; |
545 | 543 |
|
546 | 544 |
io_sw = cpu_register_io_memory(0, parallel_mm_read_sw, parallel_mm_write_sw, s); |
Also available in: Unified diff