Lines Matching refs:map
164 void get_timer_map(struct kvm_vcpu *vcpu, struct timer_map *map) in get_timer_map() argument
168 map->direct_vtimer = vcpu_hvtimer(vcpu); in get_timer_map()
169 map->direct_ptimer = vcpu_hptimer(vcpu); in get_timer_map()
170 map->emul_vtimer = vcpu_vtimer(vcpu); in get_timer_map()
171 map->emul_ptimer = vcpu_ptimer(vcpu); in get_timer_map()
173 map->direct_vtimer = vcpu_vtimer(vcpu); in get_timer_map()
174 map->direct_ptimer = vcpu_ptimer(vcpu); in get_timer_map()
175 map->emul_vtimer = vcpu_hvtimer(vcpu); in get_timer_map()
176 map->emul_ptimer = vcpu_hptimer(vcpu); in get_timer_map()
179 map->direct_vtimer = vcpu_vtimer(vcpu); in get_timer_map()
180 map->direct_ptimer = vcpu_ptimer(vcpu); in get_timer_map()
181 map->emul_vtimer = NULL; in get_timer_map()
182 map->emul_ptimer = NULL; in get_timer_map()
184 map->direct_vtimer = vcpu_vtimer(vcpu); in get_timer_map()
185 map->direct_ptimer = NULL; in get_timer_map()
186 map->emul_vtimer = NULL; in get_timer_map()
187 map->emul_ptimer = vcpu_ptimer(vcpu); in get_timer_map()
190 trace_kvm_get_timer_map(vcpu->vcpu_id, map); in get_timer_map()
213 struct timer_map map; in kvm_arch_timer_handler() local
224 get_timer_map(vcpu, &map); in kvm_arch_timer_handler()
227 ctx = map.direct_vtimer; in kvm_arch_timer_handler()
229 ctx = map.direct_ptimer; in kvm_arch_timer_handler()
581 struct timer_map map; in kvm_timer_blocking() local
583 get_timer_map(vcpu, &map); in kvm_timer_blocking()
589 if (!kvm_timer_irq_can_fire(map.direct_vtimer) && in kvm_timer_blocking()
590 !kvm_timer_irq_can_fire(map.direct_ptimer) && in kvm_timer_blocking()
591 !kvm_timer_irq_can_fire(map.emul_vtimer) && in kvm_timer_blocking()
592 !kvm_timer_irq_can_fire(map.emul_ptimer) && in kvm_timer_blocking()
728 struct timer_map *map) in kvm_timer_vcpu_load_nested_switch() argument
745 hw = kvm_vgic_get_map(vcpu, timer_irq(map->direct_vtimer)); in kvm_timer_vcpu_load_nested_switch()
747 kvm_vgic_unmap_phys_irq(vcpu, timer_irq(map->emul_vtimer)); in kvm_timer_vcpu_load_nested_switch()
748 kvm_vgic_unmap_phys_irq(vcpu, timer_irq(map->emul_ptimer)); in kvm_timer_vcpu_load_nested_switch()
751 map->direct_vtimer->host_timer_irq, in kvm_timer_vcpu_load_nested_switch()
752 timer_irq(map->direct_vtimer), in kvm_timer_vcpu_load_nested_switch()
756 map->direct_ptimer->host_timer_irq, in kvm_timer_vcpu_load_nested_switch()
757 timer_irq(map->direct_ptimer), in kvm_timer_vcpu_load_nested_switch()
763 static void timer_set_traps(struct kvm_vcpu *vcpu, struct timer_map *map) in timer_set_traps() argument
814 if (!has_cntpoff() && timer_get_offset(map->direct_ptimer)) in timer_set_traps()
821 if (has_broken_cntvoff() && timer_get_offset(map->direct_vtimer)) in timer_set_traps()
868 struct timer_map map; in kvm_timer_vcpu_load() local
873 get_timer_map(vcpu, &map); in kvm_timer_vcpu_load()
877 kvm_timer_vcpu_load_nested_switch(vcpu, &map); in kvm_timer_vcpu_load()
879 kvm_timer_vcpu_load_gic(map.direct_vtimer); in kvm_timer_vcpu_load()
880 if (map.direct_ptimer) in kvm_timer_vcpu_load()
881 kvm_timer_vcpu_load_gic(map.direct_ptimer); in kvm_timer_vcpu_load()
888 timer_restore_state(map.direct_vtimer); in kvm_timer_vcpu_load()
889 if (map.direct_ptimer) in kvm_timer_vcpu_load()
890 timer_restore_state(map.direct_ptimer); in kvm_timer_vcpu_load()
891 if (map.emul_vtimer) in kvm_timer_vcpu_load()
892 timer_emulate(map.emul_vtimer); in kvm_timer_vcpu_load()
893 if (map.emul_ptimer) in kvm_timer_vcpu_load()
894 timer_emulate(map.emul_ptimer); in kvm_timer_vcpu_load()
896 timer_set_traps(vcpu, &map); in kvm_timer_vcpu_load()
919 struct timer_map map; in kvm_timer_vcpu_put() local
924 get_timer_map(vcpu, &map); in kvm_timer_vcpu_put()
926 timer_save_state(map.direct_vtimer); in kvm_timer_vcpu_put()
927 if (map.direct_ptimer) in kvm_timer_vcpu_put()
928 timer_save_state(map.direct_ptimer); in kvm_timer_vcpu_put()
939 if (map.emul_vtimer) in kvm_timer_vcpu_put()
940 soft_timer_cancel(&map.emul_vtimer->hrtimer); in kvm_timer_vcpu_put()
941 if (map.emul_ptimer) in kvm_timer_vcpu_put()
942 soft_timer_cancel(&map.emul_ptimer->hrtimer); in kvm_timer_vcpu_put()
976 struct timer_map map; in kvm_timer_sync_nested() local
977 get_timer_map(vcpu, &map); in kvm_timer_sync_nested()
979 soft_timer_cancel(&map.emul_vtimer->hrtimer); in kvm_timer_sync_nested()
980 soft_timer_cancel(&map.emul_ptimer->hrtimer); in kvm_timer_sync_nested()
981 timer_emulate(map.emul_vtimer); in kvm_timer_sync_nested()
982 timer_emulate(map.emul_ptimer); in kvm_timer_sync_nested()
1018 struct timer_map map; in kvm_timer_vcpu_reset() local
1020 get_timer_map(vcpu, &map); in kvm_timer_vcpu_reset()
1049 kvm_vgic_reset_mapped_irq(vcpu, timer_irq(map.direct_vtimer)); in kvm_timer_vcpu_reset()
1050 if (map.direct_ptimer) in kvm_timer_vcpu_reset()
1051 kvm_vgic_reset_mapped_irq(vcpu, timer_irq(map.direct_ptimer)); in kvm_timer_vcpu_reset()
1055 if (map.emul_vtimer) in kvm_timer_vcpu_reset()
1056 soft_timer_cancel(&map.emul_vtimer->hrtimer); in kvm_timer_vcpu_reset()
1057 if (map.emul_ptimer) in kvm_timer_vcpu_reset()
1058 soft_timer_cancel(&map.emul_ptimer->hrtimer); in kvm_timer_vcpu_reset()
1248 struct timer_map map; in kvm_arm_timer_read_sysreg() local
1251 get_timer_map(vcpu, &map); in kvm_arm_timer_read_sysreg()
1254 if (timer == map.emul_vtimer || timer == map.emul_ptimer) in kvm_arm_timer_read_sysreg()
1301 struct timer_map map; in kvm_arm_timer_write_sysreg() local
1303 get_timer_map(vcpu, &map); in kvm_arm_timer_write_sysreg()
1305 if (timer == map.emul_vtimer || timer == map.emul_ptimer) { in kvm_arm_timer_write_sysreg()
1617 struct timer_map map; in kvm_timer_enable() local
1636 get_timer_map(vcpu, &map); in kvm_timer_enable()
1639 map.direct_vtimer->host_timer_irq, in kvm_timer_enable()
1640 timer_irq(map.direct_vtimer), in kvm_timer_enable()
1645 if (map.direct_ptimer) { in kvm_timer_enable()
1647 map.direct_ptimer->host_timer_irq, in kvm_timer_enable()
1648 timer_irq(map.direct_ptimer), in kvm_timer_enable()