• A
    arm/arm64: KVM: split GICv2 specific emulation code from vgic.c · 1d916229
    Andre Przywara 提交于
    vgic.c is currently a mixture of generic vGIC emulation code and
    functions specific to emulating a GICv2. To ease the addition of
    GICv3, split off strictly v2 specific parts into a new file
    vgic-v2-emul.c.
    Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
    Acked-by: NChristoffer Dall <christoffer.dall@linaro.org>
    
    -------
    As the diff isn't always obvious here (and to aid eventual rebases),
    here is a list of high-level changes done to the code:
    * added new file to respective arm/arm64 Makefiles
    * moved GICv2 specific functions to vgic-v2-emul.c:
      - handle_mmio_misc()
      - handle_mmio_set_enable_reg()
      - handle_mmio_clear_enable_reg()
      - handle_mmio_set_pending_reg()
      - handle_mmio_clear_pending_reg()
      - handle_mmio_priority_reg()
      - vgic_get_target_reg()
      - vgic_set_target_reg()
      - handle_mmio_target_reg()
      - handle_mmio_cfg_reg()
      - handle_mmio_sgi_reg()
      - vgic_v2_unqueue_sgi()
      - read_set_clear_sgi_pend_reg()
      - write_set_clear_sgi_pend_reg()
      - handle_mmio_sgi_set()
      - handle_mmio_sgi_clear()
      - vgic_v2_handle_mmio()
      - vgic_get_sgi_sources()
      - vgic_dispatch_sgi()
      - vgic_v2_queue_sgi()
      - vgic_v2_map_resources()
      - vgic_v2_init()
      - vgic_v2_add_sgi_source()
      - vgic_v2_init_model()
      - vgic_v2_init_emulation()
      - handle_cpu_mmio_misc()
      - handle_mmio_abpr()
      - handle_cpu_mmio_ident()
      - vgic_attr_regs_access()
      - vgic_create() (renamed to vgic_v2_create())
      - vgic_destroy() (renamed to vgic_v2_destroy())
      - vgic_has_attr() (renamed to vgic_v2_has_attr())
      - vgic_set_attr() (renamed to vgic_v2_set_attr())
      - vgic_get_attr() (renamed to vgic_v2_get_attr())
      - struct kvm_mmio_range vgic_dist_ranges[]
      - struct kvm_mmio_range vgic_cpu_ranges[]
      - struct kvm_device_ops kvm_arm_vgic_v2_ops {}
    Signed-off-by: NChristoffer Dall <christoffer.dall@linaro.org>
    1d916229
vgic.c 46.9 KB