lapic.h (9635adf8541ae9cbead19d769dce2c945fa88de6) | lapic.h (b5fcc59be72a76b5cf7bcc6d4aba6cdb14557d44) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __KVM_X86_LAPIC_H 3#define __KVM_X86_LAPIC_H 4 5#include <kvm/iodev.h> 6 7#include <linux/kvm_host.h> 8 --- 98 unchanged lines hidden (view full) --- 107void kvm_apic_clear_irr(struct kvm_vcpu *vcpu, int vec); 108bool __kvm_apic_update_irr(u32 *pir, void *regs, int *max_irr); 109bool kvm_apic_update_irr(struct kvm_vcpu *vcpu, u32 *pir, int *max_irr); 110void kvm_apic_update_ppr(struct kvm_vcpu *vcpu); 111int kvm_apic_set_irq(struct kvm_vcpu *vcpu, struct kvm_lapic_irq *irq, 112 struct dest_map *dest_map); 113int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type); 114void kvm_apic_update_apicv(struct kvm_vcpu *vcpu); | 1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __KVM_X86_LAPIC_H 3#define __KVM_X86_LAPIC_H 4 5#include <kvm/iodev.h> 6 7#include <linux/kvm_host.h> 8 --- 98 unchanged lines hidden (view full) --- 107void kvm_apic_clear_irr(struct kvm_vcpu *vcpu, int vec); 108bool __kvm_apic_update_irr(u32 *pir, void *regs, int *max_irr); 109bool kvm_apic_update_irr(struct kvm_vcpu *vcpu, u32 *pir, int *max_irr); 110void kvm_apic_update_ppr(struct kvm_vcpu *vcpu); 111int kvm_apic_set_irq(struct kvm_vcpu *vcpu, struct kvm_lapic_irq *irq, 112 struct dest_map *dest_map); 113int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type); 114void kvm_apic_update_apicv(struct kvm_vcpu *vcpu); |
115int kvm_alloc_apic_access_page(struct kvm *kvm); 116void kvm_inhibit_apic_access_page(struct kvm_vcpu *vcpu); |
|
115 116bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src, 117 struct kvm_lapic_irq *irq, int *r, struct dest_map *dest_map); 118void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high); 119 120u64 kvm_get_apic_base(struct kvm_vcpu *vcpu); 121int kvm_set_apic_base(struct kvm_vcpu *vcpu, struct msr_data *msr_info); 122int kvm_apic_get_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s); --- 16 unchanged lines hidden (view full) --- 139int kvm_x2apic_msr_read(struct kvm_vcpu *vcpu, u32 msr, u64 *data); 140 141int kvm_hv_vapic_msr_write(struct kvm_vcpu *vcpu, u32 msr, u64 data); 142int kvm_hv_vapic_msr_read(struct kvm_vcpu *vcpu, u32 msr, u64 *data); 143 144int kvm_lapic_set_pv_eoi(struct kvm_vcpu *vcpu, u64 data, unsigned long len); 145void kvm_lapic_exit(void); 146 | 117 118bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src, 119 struct kvm_lapic_irq *irq, int *r, struct dest_map *dest_map); 120void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high); 121 122u64 kvm_get_apic_base(struct kvm_vcpu *vcpu); 123int kvm_set_apic_base(struct kvm_vcpu *vcpu, struct msr_data *msr_info); 124int kvm_apic_get_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s); --- 16 unchanged lines hidden (view full) --- 141int kvm_x2apic_msr_read(struct kvm_vcpu *vcpu, u32 msr, u64 *data); 142 143int kvm_hv_vapic_msr_write(struct kvm_vcpu *vcpu, u32 msr, u64 data); 144int kvm_hv_vapic_msr_read(struct kvm_vcpu *vcpu, u32 msr, u64 *data); 145 146int kvm_lapic_set_pv_eoi(struct kvm_vcpu *vcpu, u64 data, unsigned long len); 147void kvm_lapic_exit(void); 148 |
149u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic); 150 |
|
147#define VEC_POS(v) ((v) & (32 - 1)) 148#define REG_POS(v) (((v) >> 5) << 4) 149 150static inline void kvm_lapic_clear_vector(int vec, void *bitmap) 151{ 152 clear_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); 153} 154 --- 123 unchanged lines hidden --- | 151#define VEC_POS(v) ((v) & (32 - 1)) 152#define REG_POS(v) (((v) >> 5) << 4) 153 154static inline void kvm_lapic_clear_vector(int vec, void *bitmap) 155{ 156 clear_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); 157} 158 --- 123 unchanged lines hidden --- |