Revision a4193c8a hw/vga.c

b/hw/vga.c
656 656
#endif
657 657

  
658 658
/* called for accesses between 0xa0000 and 0xc0000 */
659
static uint32_t vga_mem_readb(target_phys_addr_t addr)
659
static uint32_t vga_mem_readb(void *opaque, target_phys_addr_t addr)
660 660
{
661
    VGAState *s = &vga_state;
661
    VGAState *s = opaque;
662 662
    int memory_map_mode, plane;
663 663
    uint32_t ret;
664 664
    
......
712 712
    return ret;
713 713
}
714 714

  
715
static uint32_t vga_mem_readw(target_phys_addr_t addr)
715
static uint32_t vga_mem_readw(void *opaque, target_phys_addr_t addr)
716 716
{
717 717
    uint32_t v;
718 718
#ifdef TARGET_WORDS_BIGENDIAN
719
    v = vga_mem_readb(addr) << 8;
720
    v |= vga_mem_readb(addr + 1);
719
    v = vga_mem_readb(opaque, addr) << 8;
720
    v |= vga_mem_readb(opaque, addr + 1);
721 721
#else
722
    v = vga_mem_readb(addr);
723
    v |= vga_mem_readb(addr + 1) << 8;
722
    v = vga_mem_readb(opaque, addr);
723
    v |= vga_mem_readb(opaque, addr + 1) << 8;
724 724
#endif
725 725
    return v;
726 726
}
727 727

  
728
static uint32_t vga_mem_readl(target_phys_addr_t addr)
728
static uint32_t vga_mem_readl(void *opaque, target_phys_addr_t addr)
729 729
{
730 730
    uint32_t v;
731 731
#ifdef TARGET_WORDS_BIGENDIAN
732
    v = vga_mem_readb(addr) << 24;
733
    v |= vga_mem_readb(addr + 1) << 16;
734
    v |= vga_mem_readb(addr + 2) << 8;
735
    v |= vga_mem_readb(addr + 3);
732
    v = vga_mem_readb(opaque, addr) << 24;
733
    v |= vga_mem_readb(opaque, addr + 1) << 16;
734
    v |= vga_mem_readb(opaque, addr + 2) << 8;
735
    v |= vga_mem_readb(opaque, addr + 3);
736 736
#else
737
    v = vga_mem_readb(addr);
738
    v |= vga_mem_readb(addr + 1) << 8;
739
    v |= vga_mem_readb(addr + 2) << 16;
740
    v |= vga_mem_readb(addr + 3) << 24;
737
    v = vga_mem_readb(opaque, addr);
738
    v |= vga_mem_readb(opaque, addr + 1) << 8;
739
    v |= vga_mem_readb(opaque, addr + 2) << 16;
740
    v |= vga_mem_readb(opaque, addr + 3) << 24;
741 741
#endif
742 742
    return v;
743 743
}
744 744

  
745 745
/* called for accesses between 0xa0000 and 0xc0000 */
746
static void vga_mem_writeb(target_phys_addr_t addr, uint32_t val)
746
static void vga_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
747 747
{
748
    VGAState *s = &vga_state;
748
    VGAState *s = opaque;
749 749
    int memory_map_mode, plane, write_mode, b, func_select;
750 750
    uint32_t write_mask, bit_mask, set_mask;
751 751

  
......
871 871
    }
872 872
}
873 873

  
874
static void vga_mem_writew(target_phys_addr_t addr, uint32_t val)
874
static void vga_mem_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
875 875
{
876 876
#ifdef TARGET_WORDS_BIGENDIAN
877
    vga_mem_writeb(addr, (val >> 8) & 0xff);
878
    vga_mem_writeb(addr + 1, val & 0xff);
877
    vga_mem_writeb(opaque, addr, (val >> 8) & 0xff);
878
    vga_mem_writeb(opaque, addr + 1, val & 0xff);
879 879
#else
880
    vga_mem_writeb(addr, val & 0xff);
881
    vga_mem_writeb(addr + 1, (val >> 8) & 0xff);
880
    vga_mem_writeb(opaque, addr, val & 0xff);
881
    vga_mem_writeb(opaque, addr + 1, (val >> 8) & 0xff);
882 882
#endif
883 883
}
884 884

  
885
static void vga_mem_writel(target_phys_addr_t addr, uint32_t val)
885
static void vga_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
886 886
{
887 887
#ifdef TARGET_WORDS_BIGENDIAN
888
    vga_mem_writeb(addr, (val >> 24) & 0xff);
889
    vga_mem_writeb(addr + 1, (val >> 16) & 0xff);
890
    vga_mem_writeb(addr + 2, (val >> 8) & 0xff);
891
    vga_mem_writeb(addr + 3, val & 0xff);
888
    vga_mem_writeb(opaque, addr, (val >> 24) & 0xff);
889
    vga_mem_writeb(opaque, addr + 1, (val >> 16) & 0xff);
890
    vga_mem_writeb(opaque, addr + 2, (val >> 8) & 0xff);
891
    vga_mem_writeb(opaque, addr + 3, val & 0xff);
892 892
#else
893
    vga_mem_writeb(addr, val & 0xff);
894
    vga_mem_writeb(addr + 1, (val >> 8) & 0xff);
895
    vga_mem_writeb(addr + 2, (val >> 16) & 0xff);
896
    vga_mem_writeb(addr + 3, (val >> 24) & 0xff);
893
    vga_mem_writeb(opaque, addr, val & 0xff);
894
    vga_mem_writeb(opaque, addr + 1, (val >> 8) & 0xff);
895
    vga_mem_writeb(opaque, addr + 2, (val >> 16) & 0xff);
896
    vga_mem_writeb(opaque, addr + 3, (val >> 24) & 0xff);
897 897
#endif
898 898
}
899 899

  
......
1826 1826
#endif
1827 1827
#endif /* CONFIG_BOCHS_VBE */
1828 1828

  
1829
    vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write);
1829
    vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write, s);
1830 1830
    cpu_register_physical_memory(isa_mem_base + 0x000a0000, 0x20000, 
1831 1831
                                 vga_io_memory);
1832 1832

  

Also available in: Unified diff