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