kvm_lapic
struct kvm_lapic *xapic_flat_map[8];
struct kvm_lapic *xapic_cluster_map[16][4];
struct kvm_lapic *phys_map[];
void (*deliver_interrupt)(struct kvm_lapic *apic, int delivery_mode,
struct kvm_lapic *apic; /* kernel irqchip context */
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
static bool kvm_apic_match_physical_addr(struct kvm_lapic *apic, u32 mda)
struct kvm_lapic *apic = vcpu->arch.apic;
static bool kvm_apic_match_logical_addr(struct kvm_lapic *apic, u32 mda)
struct kvm_lapic *source, struct kvm_lapic *target)
bool kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
struct kvm_lapic *target = vcpu->arch.apic;
static bool kvm_apic_is_broadcast_dest(struct kvm *kvm, struct kvm_lapic **src,
struct kvm_lapic **src, struct kvm_lapic_irq *irq,
struct kvm_apic_map *map, struct kvm_lapic ***dst,
static bool __kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
struct kvm_lapic **dst = NULL;
bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
struct kvm_lapic **dst = NULL;
int __kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
bool kvm_lapic_suppress_eoi_broadcast(struct kvm_lapic *apic)
static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
struct kvm_lapic **dest_vcpu = NULL;
struct kvm_lapic *src = NULL;
static bool kvm_ioapic_handles_vector(struct kvm_lapic *apic, int vector)
static void kvm_ioapic_send_eoi(struct kvm_lapic *apic, int vector)
static int apic_set_eoi(struct kvm_lapic *apic)
struct kvm_lapic *apic = vcpu->arch.apic;
static void kvm_icr_to_lapic_irq(struct kvm_lapic *apic, u32 icr_low,
void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high)
static u32 apic_get_tmcct(struct kvm_lapic *apic)
static void __report_tpr_access(struct kvm_lapic *apic, bool write)
static inline void report_tpr_access(struct kvm_lapic *apic, bool write)
static u32 __apic_read(struct kvm_lapic *apic, unsigned int offset)
static inline int apic_enabled(struct kvm_lapic *apic)
static inline struct kvm_lapic *to_lapic(struct kvm_io_device *dev)
return container_of(dev, struct kvm_lapic, dev);
u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic)
static int kvm_lapic_reg_read(struct kvm_lapic *apic, u32 offset, int len,
static int apic_mmio_in_range(struct kvm_lapic *apic, gpa_t addr)
struct kvm_lapic *apic = to_lapic(this);
static inline u32 kvm_x2apic_id(struct kvm_lapic *apic)
static void update_divide_count(struct kvm_lapic *apic)
static void limit_periodic_timer_frequency(struct kvm_lapic *apic)
static void cancel_hv_timer(struct kvm_lapic *apic);
static void cancel_apic_timer(struct kvm_lapic *apic)
static void apic_update_lvtt(struct kvm_lapic *apic)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
static void kvm_apic_inject_pending_timer_irqs(struct kvm_lapic *apic)
static void apic_timer_expired(struct kvm_lapic *apic, bool from_timer_fn)
static void start_sw_tscdeadline(struct kvm_lapic *apic)
static inline u64 tmict_to_ns(struct kvm_lapic *apic, u32 tmict)
static void update_target_expiration(struct kvm_lapic *apic, uint32_t old_divisor)
u32 dest_id, struct kvm_lapic ***cluster, u16 *mask) {
static bool set_target_expiration(struct kvm_lapic *apic, u32 count_reg)
static void advance_periodic_target_expiration(struct kvm_lapic *apic)
static void start_sw_period(struct kvm_lapic *apic)
static void cancel_hv_timer(struct kvm_lapic *apic)
static bool start_hv_timer(struct kvm_lapic *apic)
static void start_sw_timer(struct kvm_lapic *apic)
static void restart_apic_timer(struct kvm_lapic *apic)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
static void __start_apic_timer(struct kvm_lapic *apic, u32 count_reg)
static void start_apic_timer(struct kvm_lapic *apic)
static void apic_manage_nmi_watchdog(struct kvm_lapic *apic, u32 lvt0_val)
static int kvm_lapic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = to_lapic(this);
static int __kvm_x2apic_icr_write(struct kvm_lapic *apic, u64 data, bool fast)
static int kvm_x2apic_icr_write(struct kvm_lapic *apic, u64 data)
int kvm_x2apic_icr_write_fast(struct kvm_lapic *apic, u64 data)
static u64 kvm_x2apic_icr_read(struct kvm_lapic *apic)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
static bool lapic_is_periodic(struct kvm_lapic *apic)
struct kvm_lapic *apic = vcpu->arch.apic;
int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = container_of(ktimer, struct kvm_lapic, lapic_timer);
struct kvm_lapic *apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic **cluster;
struct kvm_lapic *apic)
struct kvm_lapic *apic)
struct kvm_lapic *apic = vcpu->arch.apic;
static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data)
static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
sizeof(struct kvm_lapic *) * ((u64)max_id + 1),
static inline void apic_set_spiv(struct kvm_lapic *apic, u32 val)
static inline void kvm_apic_set_xapic_id(struct kvm_lapic *apic, u8 id)
static inline void kvm_apic_set_ldr(struct kvm_lapic *apic, u32 id)
static inline void kvm_apic_set_dfr(struct kvm_lapic *apic, u32 val)
static inline void kvm_apic_set_x2apic_id(struct kvm_lapic *apic, u32 id)
static inline int apic_lvt_enabled(struct kvm_lapic *apic, int lvt_type)
static inline int apic_lvtt_oneshot(struct kvm_lapic *apic)
static inline int apic_lvtt_period(struct kvm_lapic *apic)
static inline int apic_lvtt_tscdeadline(struct kvm_lapic *apic)
static inline bool kvm_lapic_lvt_supported(struct kvm_lapic *apic, int lvt_index)
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
static inline int apic_search_irr(struct kvm_lapic *apic)
static inline int apic_find_highest_irr(struct kvm_lapic *apic)
static inline void apic_clear_irr(int vec, struct kvm_lapic *apic)
static void *apic_vector_to_isr(int vec, struct kvm_lapic *apic)
static inline void apic_set_isr(int vec, struct kvm_lapic *apic)
static inline int apic_find_highest_isr(struct kvm_lapic *apic)
static inline void apic_clear_isr(int vec, struct kvm_lapic *apic)
static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data);
static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data);
static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
struct kvm_lapic *apic = vcpu->arch.apic;
static inline void kvm_lapic_set_reg(struct kvm_lapic *apic, int reg_off, u32 val)
static __always_inline u64 kvm_lapic_get_reg64(struct kvm_lapic *apic, int reg)
static __always_inline void kvm_lapic_set_reg64(struct kvm_lapic *apic,
static int apic_has_interrupt_for_ppr(struct kvm_lapic *apic, u32 ppr)
static bool __apic_update_ppr(struct kvm_lapic *apic, u32 *new_ppr)
static void apic_update_ppr(struct kvm_lapic *apic)
static void apic_set_tpr(struct kvm_lapic *apic, u32 tpr)
static bool kvm_apic_broadcast(struct kvm_lapic *apic, u32 mda)
bool kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type);
bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
int __kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
struct kvm_lapic *src,
void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high);
int kvm_x2apic_icr_write_fast(struct kvm_lapic *apic, u64 data);
u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic);
static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic)
static inline u32 kvm_lapic_get_reg(struct kvm_lapic *apic, int reg_off)
static inline bool kvm_apic_hw_enabled(struct kvm_lapic *apic)
static inline bool kvm_apic_sw_enabled(struct kvm_lapic *apic)
static inline int apic_x2apic_mode(struct kvm_lapic *apic)
bool kvm_lapic_suppress_eoi_broadcast(struct kvm_lapic *apic);
static inline u8 kvm_xapic_id(struct kvm_lapic *apic)
static int avic_kick_target_vcpus_fast(struct kvm *kvm, struct kvm_lapic *source,
static void avic_kick_target_vcpus(struct kvm *kvm, struct kvm_lapic *source,
struct kvm_lapic *apic = vcpu->arch.apic;
struct kvm_lapic *apic = vcpu->arch.apic;
static void svm_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
TP_PROTO(struct kvm_lapic *apic, int vector),
TP_PROTO(struct kvm_lapic *apic, int vector),
static void vt_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
struct kvm_lapic *apic = vcpu->arch.apic;
void tdx_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
void vmx_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
void tdx_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
void vmx_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
struct kvm_lapic *apic = vcpu->arch.apic;