/virt/kvm/arm/ |
D | vgic-v3-emul.c | 53 struct kvm_exit_mmio *mmio, phys_addr_t offset) in handle_mmio_rao_wi() argument 57 vgic_reg_access(mmio, ®, offset, in handle_mmio_rao_wi() 64 struct kvm_exit_mmio *mmio, phys_addr_t offset) in handle_mmio_ctlr() argument 76 vgic_reg_access(mmio, ®, offset, in handle_mmio_ctlr() 78 if (mmio->is_write) { in handle_mmio_ctlr() 94 struct kvm_exit_mmio *mmio, phys_addr_t offset) in handle_mmio_typer() argument 102 vgic_reg_access(mmio, ®, offset, in handle_mmio_typer() 109 struct kvm_exit_mmio *mmio, phys_addr_t offset) in handle_mmio_iidr() argument 114 vgic_reg_access(mmio, ®, offset, in handle_mmio_iidr() 121 struct kvm_exit_mmio *mmio, in handle_mmio_set_enable_reg_dist() argument [all …]
|
D | vgic-v2-emul.c | 44 struct kvm_exit_mmio *mmio, phys_addr_t offset) in handle_mmio_misc() argument 52 vgic_reg_access(mmio, ®, word_offset, in handle_mmio_misc() 54 if (mmio->is_write) { in handle_mmio_misc() 64 vgic_reg_access(mmio, ®, word_offset, in handle_mmio_misc() 70 vgic_reg_access(mmio, ®, word_offset, in handle_mmio_misc() 79 struct kvm_exit_mmio *mmio, in handle_mmio_set_enable_reg() argument 82 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg() 87 struct kvm_exit_mmio *mmio, in handle_mmio_clear_enable_reg() argument 90 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg() 95 struct kvm_exit_mmio *mmio, in handle_mmio_set_pending_reg() argument [all …]
|
D | vgic.h | 70 void vgic_reg_access(struct kvm_exit_mmio *mmio, u32 *reg, 72 bool handle_mmio_raz_wi(struct kvm_vcpu *vcpu, struct kvm_exit_mmio *mmio, 76 u32 mmio_data_read(struct kvm_exit_mmio *mmio, u32 mask) in mmio_data_read() argument 78 return le32_to_cpu(*((u32 *)mmio->data)) & mask; in mmio_data_read() 82 void mmio_data_write(struct kvm_exit_mmio *mmio, u32 mask, u32 value) in mmio_data_write() argument 84 *((u32 *)mmio->data) = cpu_to_le32(value) & mask; in mmio_data_write() 91 bool (*handle_mmio)(struct kvm_vcpu *vcpu, struct kvm_exit_mmio *mmio, 110 bool vgic_handle_enable_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio, 113 bool vgic_handle_set_pending_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio, 116 bool vgic_handle_clear_pending_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio, [all …]
|
D | vgic.c | 427 void vgic_reg_access(struct kvm_exit_mmio *mmio, u32 *reg, in vgic_reg_access() argument 431 u32 mask = (1UL << (mmio->len * 8)) - 1; in vgic_reg_access() 446 if (mmio->is_write) { in vgic_reg_access() 447 u32 data = mmio_data_read(mmio, mask) << word_offset; in vgic_reg_access() 472 mmio_data_write(mmio, mask, regval >> word_offset); in vgic_reg_access() 477 bool handle_mmio_raz_wi(struct kvm_vcpu *vcpu, struct kvm_exit_mmio *mmio, in handle_mmio_raz_wi() argument 480 vgic_reg_access(mmio, NULL, offset, in handle_mmio_raz_wi() 485 bool vgic_handle_enable_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio, in vgic_handle_enable_reg() argument 493 vgic_reg_access(mmio, reg, offset, mode); in vgic_handle_enable_reg() 494 if (mmio->is_write) { in vgic_handle_enable_reg() [all …]
|