KVM
|
#include <linux/kvm_host.h>
#include <linux/slab.h>
#include <linux/export.h>
#include <linux/rculist.h>
#include <trace/events/kvm.h>
#include "irq.h"
#include "ioapic.h"
#include "lapic.h"
#include "hyperv.h"
#include "x86.h"
#include "xen.h"
Go to the source code of this file.
Macros | |
#define | pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
#define | IOAPIC_ROUTING_ENTRY(irq) |
#define | ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq) |
#define | PIC_ROUTING_ENTRY(irq) |
#define | ROUTING_ENTRY2(irq) IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) |
Functions | |
static int | kvm_set_pic_irq (struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, bool line_status) |
static int | kvm_set_ioapic_irq (struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, bool line_status) |
int | kvm_irq_delivery_to_apic (struct kvm *kvm, struct kvm_lapic *src, struct kvm_lapic_irq *irq, struct dest_map *dest_map) |
void | kvm_set_msi_irq (struct kvm *kvm, struct kvm_kernel_irq_routing_entry *e, struct kvm_lapic_irq *irq) |
EXPORT_SYMBOL_GPL (kvm_set_msi_irq) | |
static bool | kvm_msi_route_invalid (struct kvm *kvm, struct kvm_kernel_irq_routing_entry *e) |
int | kvm_set_msi (struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, bool line_status) |
int | kvm_arch_set_irq_inatomic (struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, bool line_status) |
int | kvm_request_irq_source_id (struct kvm *kvm) |
void | kvm_free_irq_source_id (struct kvm *kvm, int irq_source_id) |
void | kvm_register_irq_mask_notifier (struct kvm *kvm, int irq, struct kvm_irq_mask_notifier *kimn) |
void | kvm_unregister_irq_mask_notifier (struct kvm *kvm, int irq, struct kvm_irq_mask_notifier *kimn) |
void | kvm_fire_mask_notifiers (struct kvm *kvm, unsigned irqchip, unsigned pin, bool mask) |
bool | kvm_arch_can_set_irq_routing (struct kvm *kvm) |
int | kvm_set_routing_entry (struct kvm *kvm, struct kvm_kernel_irq_routing_entry *e, const struct kvm_irq_routing_entry *ue) |
bool | kvm_intr_is_single_vcpu (struct kvm *kvm, struct kvm_lapic_irq *irq, struct kvm_vcpu **dest_vcpu) |
EXPORT_SYMBOL_GPL (kvm_intr_is_single_vcpu) | |
int | kvm_setup_default_irq_routing (struct kvm *kvm) |
int | kvm_setup_empty_irq_routing (struct kvm *kvm) |
void | kvm_arch_post_irq_routing_update (struct kvm *kvm) |
void | kvm_scan_ioapic_routes (struct kvm_vcpu *vcpu, ulong *ioapic_handled_vectors) |
void | kvm_arch_irq_routing_update (struct kvm *kvm) |
Variables | |
static const struct kvm_irq_routing_entry | default_routing [] |
static const struct kvm_irq_routing_entry | empty_routing [] = {} |
#define IOAPIC_ROUTING_ENTRY | ( | irq | ) |
Definition at line 366 of file irq_comm.c.
#define PIC_ROUTING_ENTRY | ( | irq | ) |
Definition at line 371 of file irq_comm.c.
#define pr_fmt | ( | fmt | ) | KBUILD_MODNAME ": " fmt |
Definition at line 11 of file irq_comm.c.
#define ROUTING_ENTRY1 | ( | irq | ) | IOAPIC_ROUTING_ENTRY(irq) |
Definition at line 369 of file irq_comm.c.
#define ROUTING_ENTRY2 | ( | irq | ) | IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) |
Definition at line 374 of file irq_comm.c.
EXPORT_SYMBOL_GPL | ( | kvm_intr_is_single_vcpu | ) |
EXPORT_SYMBOL_GPL | ( | kvm_set_msi_irq | ) |
bool kvm_arch_can_set_irq_routing | ( | struct kvm * | kvm | ) |
Definition at line 274 of file irq_comm.c.
void kvm_arch_irq_routing_update | ( | struct kvm * | kvm | ) |
Definition at line 444 of file irq_comm.c.
void kvm_arch_post_irq_routing_update | ( | struct kvm * | kvm | ) |
Definition at line 405 of file irq_comm.c.
int kvm_arch_set_irq_inatomic | ( | struct kvm_kernel_irq_routing_entry * | e, |
struct kvm * | kvm, | ||
int | irq_source_id, | ||
int | level, | ||
bool | line_status | ||
) |
Definition at line 159 of file irq_comm.c.
void kvm_fire_mask_notifiers | ( | struct kvm * | kvm, |
unsigned | irqchip, | ||
unsigned | pin, | ||
bool | mask | ||
) |
Definition at line 259 of file irq_comm.c.
void kvm_free_irq_source_id | ( | struct kvm * | kvm, |
int | irq_source_id | ||
) |
Definition at line 220 of file irq_comm.c.
bool kvm_intr_is_single_vcpu | ( | struct kvm * | kvm, |
struct kvm_lapic_irq * | irq, | ||
struct kvm_vcpu ** | dest_vcpu | ||
) |
Definition at line 338 of file irq_comm.c.
int kvm_irq_delivery_to_apic | ( | struct kvm * | kvm, |
struct kvm_lapic * | src, | ||
struct kvm_lapic_irq * | irq, | ||
struct dest_map * | dest_map | ||
) |
Definition at line 47 of file irq_comm.c.
|
inlinestatic |
void kvm_register_irq_mask_notifier | ( | struct kvm * | kvm, |
int | irq, | ||
struct kvm_irq_mask_notifier * | kimn | ||
) |
int kvm_request_irq_source_id | ( | struct kvm * | kvm | ) |
void kvm_scan_ioapic_routes | ( | struct kvm_vcpu * | vcpu, |
ulong * | ioapic_handled_vectors | ||
) |
Definition at line 412 of file irq_comm.c.
|
static |
Definition at line 38 of file irq_comm.c.
int kvm_set_msi | ( | struct kvm_kernel_irq_routing_entry * | e, |
struct kvm * | kvm, | ||
int | irq_source_id, | ||
int | level, | ||
bool | line_status | ||
) |
Definition at line 131 of file irq_comm.c.
void kvm_set_msi_irq | ( | struct kvm * | kvm, |
struct kvm_kernel_irq_routing_entry * | e, | ||
struct kvm_lapic_irq * | irq | ||
) |
|
static |
Definition at line 30 of file irq_comm.c.
int kvm_set_routing_entry | ( | struct kvm * | kvm, |
struct kvm_kernel_irq_routing_entry * | e, | ||
const struct kvm_irq_routing_entry * | ue | ||
) |
Definition at line 279 of file irq_comm.c.
int kvm_setup_default_irq_routing | ( | struct kvm * | kvm | ) |
Definition at line 392 of file irq_comm.c.
int kvm_setup_empty_irq_routing | ( | struct kvm * | kvm | ) |
Definition at line 400 of file irq_comm.c.
void kvm_unregister_irq_mask_notifier | ( | struct kvm * | kvm, |
int | irq, | ||
struct kvm_irq_mask_notifier * | kimn | ||
) |
|
static |
Definition at line 364 of file irq_comm.c.
|
static |
Definition at line 392 of file irq_comm.c.