hv:Rename ptdev to ptirq for some variables and structures

ptdev_remapping_info --> ptirq_remapping_info
ptdev_msi_info --> ptirq_msi_info
ptdev_vpin_source --> ptirq_vpin_source
ptdev_irq_entries --> ptirq_entries
ptdev_entry_bitmaps --> ptirq_entry_bitmaps

v1-->v2:
   still use ptdev_lock instead of ptirq_lock
Tracked-On: #861
Signed-off-by: Mingqiang Chi <mingqiang.chi@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Mingqiang Chi 2018-11-29 15:26:27 +08:00 committed by Xie, Nanlin
parent 10afa9bbbf
commit 5b43aa8a65
9 changed files with 74 additions and 74 deletions

View File

@ -15,15 +15,15 @@
* @pre: vm must be NULL when lookup by physical sid, otherwise, * @pre: vm must be NULL when lookup by physical sid, otherwise,
* vm must not be NULL when lookup by virtual sid. * vm must not be NULL when lookup by virtual sid.
*/ */
static inline struct ptdev_remapping_info * static inline struct ptirq_remapping_info *
ptdev_lookup_entry_by_sid(uint32_t intr_type, ptdev_lookup_entry_by_sid(uint32_t intr_type,
const union source_id *sid,const struct acrn_vm *vm) const union source_id *sid,const struct acrn_vm *vm)
{ {
uint16_t idx; uint16_t idx;
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
for (idx = 0U; idx < CONFIG_MAX_PT_IRQ_ENTRIES; idx++) { for (idx = 0U; idx < CONFIG_MAX_PT_IRQ_ENTRIES; idx++) {
entry = &ptdev_irq_entries[idx]; entry = &ptirq_entries[idx];
if (!is_entry_active(entry)) { if (!is_entry_active(entry)) {
continue; continue;
} }
@ -39,10 +39,10 @@ ptdev_lookup_entry_by_sid(uint32_t intr_type,
return NULL; return NULL;
} }
static inline struct ptdev_remapping_info * static inline struct ptirq_remapping_info *
ptdev_lookup_entry_by_vpin(struct acrn_vm *vm, uint8_t virt_pin, bool pic_pin) ptdev_lookup_entry_by_vpin(struct acrn_vm *vm, uint8_t virt_pin, bool pic_pin)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
if (pic_pin) { if (pic_pin) {
entry = vm->arch_vm.vpic.vpin_to_pt_entry[virt_pin]; entry = vm->arch_vm.vpic.vpin_to_pt_entry[virt_pin];
@ -79,7 +79,7 @@ static uint64_t calculate_logical_dest_mask(uint64_t pdmask)
return dest_mask; return dest_mask;
} }
static void ptdev_build_physical_msi(struct acrn_vm *vm, struct ptdev_msi_info *info, static void ptdev_build_physical_msi(struct acrn_vm *vm, struct ptirq_msi_info *info,
uint32_t vector) uint32_t vector)
{ {
uint64_t vdmask, pdmask, dest_mask; uint64_t vdmask, pdmask, dest_mask;
@ -116,7 +116,7 @@ static void ptdev_build_physical_msi(struct acrn_vm *vm, struct ptdev_msi_info *
} }
static union ioapic_rte static union ioapic_rte
ptdev_build_physical_rte(struct acrn_vm *vm, struct ptdev_remapping_info *entry) ptdev_build_physical_rte(struct acrn_vm *vm, struct ptirq_remapping_info *entry)
{ {
union ioapic_rte rte; union ioapic_rte rte;
uint32_t phys_irq = entry->allocated_pirq; uint32_t phys_irq = entry->allocated_pirq;
@ -199,10 +199,10 @@ ptdev_build_physical_rte(struct acrn_vm *vm, struct ptdev_remapping_info *entry)
* - if the entry already be added by vm0, then change the owner to current vm * - if the entry already be added by vm0, then change the owner to current vm
* - if the entry already be added by other vm, return NULL * - if the entry already be added by other vm, return NULL
*/ */
static struct ptdev_remapping_info *add_msix_remapping(struct acrn_vm *vm, static struct ptirq_remapping_info *add_msix_remapping(struct acrn_vm *vm,
uint16_t virt_bdf, uint16_t phys_bdf, uint32_t entry_nr) uint16_t virt_bdf, uint16_t phys_bdf, uint32_t entry_nr)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
DEFINE_MSI_SID(phys_sid, phys_bdf, entry_nr); DEFINE_MSI_SID(phys_sid, phys_bdf, entry_nr);
DEFINE_MSI_SID(virt_sid, virt_bdf, entry_nr); DEFINE_MSI_SID(virt_sid, virt_bdf, entry_nr);
@ -252,7 +252,7 @@ static struct ptdev_remapping_info *add_msix_remapping(struct acrn_vm *vm,
static void static void
remove_msix_remapping(const struct acrn_vm *vm, uint16_t virt_bdf, uint32_t entry_nr) remove_msix_remapping(const struct acrn_vm *vm, uint16_t virt_bdf, uint32_t entry_nr)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
DEFINE_MSI_SID(virt_sid, virt_bdf, entry_nr); DEFINE_MSI_SID(virt_sid, virt_bdf, entry_nr);
entry = ptdev_lookup_entry_by_sid(PTDEV_INTR_MSI, &virt_sid, vm); entry = ptdev_lookup_entry_by_sid(PTDEV_INTR_MSI, &virt_sid, vm);
@ -279,11 +279,11 @@ remove_msix_remapping(const struct acrn_vm *vm, uint16_t virt_bdf, uint32_t entr
* - if the entry already be added by vm0, then change the owner to current vm * - if the entry already be added by vm0, then change the owner to current vm
* - if the entry already be added by other vm, return NULL * - if the entry already be added by other vm, return NULL
*/ */
static struct ptdev_remapping_info *add_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, static struct ptirq_remapping_info *add_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin,
uint8_t phys_pin, bool pic_pin) uint8_t phys_pin, bool pic_pin)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
enum ptdev_vpin_source vpin_src = pic_pin ? PTDEV_VPIN_PIC : PTDEV_VPIN_IOAPIC; enum ptirq_vpin_source vpin_src = pic_pin ? PTDEV_VPIN_PIC : PTDEV_VPIN_IOAPIC;
DEFINE_IOAPIC_SID(phys_sid, phys_pin, 0); DEFINE_IOAPIC_SID(phys_sid, phys_pin, 0);
DEFINE_IOAPIC_SID(virt_sid, virt_pin, vpin_src); DEFINE_IOAPIC_SID(virt_sid, virt_pin, vpin_src);
uint32_t phys_irq = pin_to_irq(phys_pin); uint32_t phys_irq = pin_to_irq(phys_pin);
@ -346,7 +346,7 @@ static struct ptdev_remapping_info *add_intx_remapping(struct acrn_vm *vm, uint8
static void remove_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, bool pic_pin) static void remove_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, bool pic_pin)
{ {
uint32_t phys_irq; uint32_t phys_irq;
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
if ((!pic_pin && virt_pin >= vioapic_pincount(vm)) if ((!pic_pin && virt_pin >= vioapic_pincount(vm))
|| (pic_pin && virt_pin >= vpic_pincount())) { || (pic_pin && virt_pin >= vpic_pincount())) {
@ -382,7 +382,7 @@ static void remove_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, bool pic
} }
static void ptdev_intr_handle_irq(struct acrn_vm *vm, static void ptdev_intr_handle_irq(struct acrn_vm *vm,
const struct ptdev_remapping_info *entry) const struct ptirq_remapping_info *entry)
{ {
const union source_id *virt_sid = &entry->virt_sid; const union source_id *virt_sid = &entry->virt_sid;
switch (virt_sid->intx_id.src) { switch (virt_sid->intx_id.src) {
@ -452,8 +452,8 @@ void ptdev_softirq(uint16_t pcpu_id)
struct acrn_vm *vm = vcpu->vm; struct acrn_vm *vm = vcpu->vm;
while (1) { while (1) {
struct ptdev_remapping_info *entry = ptdev_dequeue_softirq(vm); struct ptirq_remapping_info *entry = ptdev_dequeue_softirq(vm);
struct ptdev_msi_info *msi; struct ptirq_msi_info *msi;
if (entry == NULL) { if (entry == NULL) {
break; break;
@ -489,10 +489,10 @@ void ptdev_softirq(uint16_t pcpu_id)
} }
void ptdev_intx_ack(struct acrn_vm *vm, uint8_t virt_pin, void ptdev_intx_ack(struct acrn_vm *vm, uint8_t virt_pin,
enum ptdev_vpin_source vpin_src) enum ptirq_vpin_source vpin_src)
{ {
uint32_t phys_irq; uint32_t phys_irq;
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
bool pic_pin = (vpin_src == PTDEV_VPIN_PIC); bool pic_pin = (vpin_src == PTDEV_VPIN_PIC);
entry = ptdev_lookup_entry_by_vpin(vm, virt_pin, pic_pin); entry = ptdev_lookup_entry_by_vpin(vm, virt_pin, pic_pin);
@ -536,9 +536,9 @@ void ptdev_intx_ack(struct acrn_vm *vm, uint8_t virt_pin,
* user must provide bdf and entry_nr * user must provide bdf and entry_nr
*/ */
int ptdev_msix_remap(struct acrn_vm *vm, uint16_t virt_bdf, int ptdev_msix_remap(struct acrn_vm *vm, uint16_t virt_bdf,
uint16_t entry_nr, struct ptdev_msi_info *info) uint16_t entry_nr, struct ptirq_msi_info *info)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
DEFINE_MSI_SID(virt_sid, virt_bdf, entry_nr); DEFINE_MSI_SID(virt_sid, virt_bdf, entry_nr);
/* /*
@ -591,7 +591,7 @@ END:
} }
static void activate_physical_ioapic(struct acrn_vm *vm, static void activate_physical_ioapic(struct acrn_vm *vm,
struct ptdev_remapping_info *entry) struct ptirq_remapping_info *entry)
{ {
union ioapic_rte rte; union ioapic_rte rte;
uint32_t phys_irq = entry->allocated_pirq; uint32_t phys_irq = entry->allocated_pirq;
@ -624,9 +624,9 @@ static void activate_physical_ioapic(struct acrn_vm *vm,
* or vPIC * or vPIC
*/ */
int ptdev_intx_pin_remap(struct acrn_vm *vm, uint8_t virt_pin, int ptdev_intx_pin_remap(struct acrn_vm *vm, uint8_t virt_pin,
enum ptdev_vpin_source vpin_src) enum ptirq_vpin_source vpin_src)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
bool need_switch_vpin_src = false; bool need_switch_vpin_src = false;
DEFINE_IOAPIC_SID(virt_sid, virt_pin, vpin_src); DEFINE_IOAPIC_SID(virt_sid, virt_pin, vpin_src);
bool pic_pin = (vpin_src == PTDEV_VPIN_PIC); bool pic_pin = (vpin_src == PTDEV_VPIN_PIC);
@ -732,7 +732,7 @@ END:
int ptdev_add_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, uint8_t phys_pin, int ptdev_add_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, uint8_t phys_pin,
bool pic_pin) bool pic_pin)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
spinlock_obtain(&ptdev_lock); spinlock_obtain(&ptdev_lock);
entry = add_intx_remapping(vm, virt_pin, phys_pin, pic_pin); entry = add_intx_remapping(vm, virt_pin, phys_pin, pic_pin);
@ -759,7 +759,7 @@ void ptdev_remove_intx_remapping(struct acrn_vm *vm, uint8_t virt_pin, bool pic_
int ptdev_add_msix_remapping(struct acrn_vm *vm, uint16_t virt_bdf, int ptdev_add_msix_remapping(struct acrn_vm *vm, uint16_t virt_bdf,
uint16_t phys_bdf, uint32_t vector_count) uint16_t phys_bdf, uint32_t vector_count)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
uint32_t i; uint32_t i;
for (i = 0U; i < vector_count; i++) { for (i = 0U; i < vector_count; i++) {

View File

@ -8,31 +8,31 @@
#include <softirq.h> #include <softirq.h>
#include <ptdev.h> #include <ptdev.h>
#define PTDEV_BITMAP_ARRAY_SIZE INT_DIV_ROUNDUP(CONFIG_MAX_PT_IRQ_ENTRIES, 64U) #define PTIRQ_BITMAP_ARRAY_SIZE INT_DIV_ROUNDUP(CONFIG_MAX_PT_IRQ_ENTRIES, 64U)
struct ptdev_remapping_info ptdev_irq_entries[CONFIG_MAX_PT_IRQ_ENTRIES]; struct ptirq_remapping_info ptirq_entries[CONFIG_MAX_PT_IRQ_ENTRIES];
static uint64_t ptdev_entry_bitmaps[PTDEV_BITMAP_ARRAY_SIZE]; static uint64_t ptirq_entry_bitmaps[PTIRQ_BITMAP_ARRAY_SIZE];
spinlock_t ptdev_lock; spinlock_t ptdev_lock;
bool is_entry_active(const struct ptdev_remapping_info *entry) bool is_entry_active(const struct ptirq_remapping_info *entry)
{ {
return atomic_load32(&entry->active) == ACTIVE_FLAG; return atomic_load32(&entry->active) == ACTIVE_FLAG;
} }
static inline uint16_t alloc_ptdev_entry_id(void) static inline uint16_t alloc_ptdev_entry_id(void)
{ {
uint16_t id = (uint16_t)ffz64_ex(ptdev_entry_bitmaps, CONFIG_MAX_PT_IRQ_ENTRIES); uint16_t id = (uint16_t)ffz64_ex(ptirq_entry_bitmaps, CONFIG_MAX_PT_IRQ_ENTRIES);
while (id < CONFIG_MAX_PT_IRQ_ENTRIES) { while (id < CONFIG_MAX_PT_IRQ_ENTRIES) {
if (!bitmap_test_and_set_lock((id & 0x3FU), &ptdev_entry_bitmaps[id >> 6U])) { if (!bitmap_test_and_set_lock((id & 0x3FU), &ptirq_entry_bitmaps[id >> 6U])) {
return id; return id;
} }
id = (uint16_t)ffz64_ex(ptdev_entry_bitmaps, CONFIG_MAX_PT_IRQ_ENTRIES); id = (uint16_t)ffz64_ex(ptirq_entry_bitmaps, CONFIG_MAX_PT_IRQ_ENTRIES);
} }
return INVALID_PTDEV_ENTRY_ID; return INVALID_PTDEV_ENTRY_ID;
} }
static void ptdev_enqueue_softirq(struct ptdev_remapping_info *entry) static void ptdev_enqueue_softirq(struct ptirq_remapping_info *entry)
{ {
uint64_t rflags; uint64_t rflags;
@ -50,23 +50,23 @@ static void ptdev_enqueue_softirq(struct ptdev_remapping_info *entry)
static void ptdev_intr_delay_callback(void *data) static void ptdev_intr_delay_callback(void *data)
{ {
struct ptdev_remapping_info *entry = struct ptirq_remapping_info *entry =
(struct ptdev_remapping_info *) data; (struct ptirq_remapping_info *) data;
ptdev_enqueue_softirq(entry); ptdev_enqueue_softirq(entry);
} }
struct ptdev_remapping_info* struct ptirq_remapping_info*
ptdev_dequeue_softirq(struct acrn_vm *vm) ptdev_dequeue_softirq(struct acrn_vm *vm)
{ {
uint64_t rflags; uint64_t rflags;
struct ptdev_remapping_info *entry = NULL; struct ptirq_remapping_info *entry = NULL;
spinlock_irqsave_obtain(&vm->softirq_dev_lock, &rflags); spinlock_irqsave_obtain(&vm->softirq_dev_lock, &rflags);
while (!list_empty(&vm->softirq_dev_entry_list)) { while (!list_empty(&vm->softirq_dev_entry_list)) {
entry = get_first_item(&vm->softirq_dev_entry_list, entry = get_first_item(&vm->softirq_dev_entry_list,
struct ptdev_remapping_info, softirq_node); struct ptirq_remapping_info, softirq_node);
list_del_init(&entry->softirq_node); list_del_init(&entry->softirq_node);
@ -85,10 +85,10 @@ ptdev_dequeue_softirq(struct acrn_vm *vm)
return entry; return entry;
} }
struct ptdev_remapping_info * struct ptirq_remapping_info *
alloc_entry(struct acrn_vm *vm, uint32_t intr_type) alloc_entry(struct acrn_vm *vm, uint32_t intr_type)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
uint16_t ptdev_id = alloc_ptdev_entry_id(); uint16_t ptdev_id = alloc_ptdev_entry_id();
if (ptdev_id >= CONFIG_MAX_PT_IRQ_ENTRIES) { if (ptdev_id >= CONFIG_MAX_PT_IRQ_ENTRIES) {
@ -96,8 +96,8 @@ alloc_entry(struct acrn_vm *vm, uint32_t intr_type)
return NULL; return NULL;
} }
entry = &ptdev_irq_entries[ptdev_id]; entry = &ptirq_entries[ptdev_id];
(void)memset((void *)entry, 0U, sizeof(struct ptdev_remapping_info)); (void)memset((void *)entry, 0U, sizeof(struct ptirq_remapping_info));
entry->ptdev_entry_id = ptdev_id; entry->ptdev_entry_id = ptdev_id;
entry->intr_type = intr_type; entry->intr_type = intr_type;
entry->vm = vm; entry->vm = vm;
@ -114,7 +114,7 @@ alloc_entry(struct acrn_vm *vm, uint32_t intr_type)
} }
void void
release_entry(struct ptdev_remapping_info *entry) release_entry(struct ptirq_remapping_info *entry)
{ {
uint64_t rflags; uint64_t rflags;
@ -126,17 +126,17 @@ release_entry(struct ptdev_remapping_info *entry)
list_del_init(&entry->softirq_node); list_del_init(&entry->softirq_node);
spinlock_irqrestore_release(&entry->vm->softirq_dev_lock, rflags); spinlock_irqrestore_release(&entry->vm->softirq_dev_lock, rflags);
atomic_clear32(&entry->active, ACTIVE_FLAG); atomic_clear32(&entry->active, ACTIVE_FLAG);
bitmap_clear_nolock((entry->ptdev_entry_id) & 0x3FU, &ptdev_entry_bitmaps[(entry->ptdev_entry_id) >> 6U]); bitmap_clear_nolock((entry->ptdev_entry_id) & 0x3FU, &ptirq_entry_bitmaps[(entry->ptdev_entry_id) >> 6U]);
} }
static void static void
release_all_entries(const struct acrn_vm *vm) release_all_entries(const struct acrn_vm *vm)
{ {
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
uint16_t idx; uint16_t idx;
for (idx = 0U; idx < CONFIG_MAX_PT_IRQ_ENTRIES; idx++) { for (idx = 0U; idx < CONFIG_MAX_PT_IRQ_ENTRIES; idx++) {
entry = &ptdev_irq_entries[idx]; entry = &ptirq_entries[idx];
if (entry->vm == vm) { if (entry->vm == vm) {
release_entry(entry); release_entry(entry);
} }
@ -146,8 +146,8 @@ release_all_entries(const struct acrn_vm *vm)
/* interrupt context */ /* interrupt context */
static void ptdev_interrupt_handler(__unused uint32_t irq, void *data) static void ptdev_interrupt_handler(__unused uint32_t irq, void *data)
{ {
struct ptdev_remapping_info *entry = struct ptirq_remapping_info *entry =
(struct ptdev_remapping_info *) data; (struct ptirq_remapping_info *) data;
/* /*
* "interrupt storm" detection & delay intr injection just for UOS * "interrupt storm" detection & delay intr injection just for UOS
@ -169,7 +169,7 @@ static void ptdev_interrupt_handler(__unused uint32_t irq, void *data)
} }
/* active intr with irq registering */ /* active intr with irq registering */
int32_t ptdev_activate_entry(struct ptdev_remapping_info *entry, uint32_t phys_irq) int32_t ptdev_activate_entry(struct ptirq_remapping_info *entry, uint32_t phys_irq)
{ {
int32_t retval; int32_t retval;
@ -187,7 +187,7 @@ int32_t ptdev_activate_entry(struct ptdev_remapping_info *entry, uint32_t phys_i
} }
void void
ptdev_deactivate_entry(struct ptdev_remapping_info *entry) ptdev_deactivate_entry(struct ptirq_remapping_info *entry)
{ {
uint64_t rflags; uint64_t rflags;
@ -226,10 +226,10 @@ uint32_t get_vm_ptdev_intr_data(const struct acrn_vm *target_vm, uint64_t *buffe
{ {
uint32_t index = 0U; uint32_t index = 0U;
uint16_t i; uint16_t i;
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
for (i = 0U; i < CONFIG_MAX_PT_IRQ_ENTRIES; i++) { for (i = 0U; i < CONFIG_MAX_PT_IRQ_ENTRIES; i++) {
entry = &ptdev_irq_entries[i]; entry = &ptirq_entries[i];
if (!is_entry_active(entry)) { if (!is_entry_active(entry)) {
continue; continue;
} }

View File

@ -902,7 +902,7 @@ static int shell_show_cpu_int(__unused int argc, __unused char **argv)
} }
#define PTDEV_INVALID_PIN 0xffU #define PTDEV_INVALID_PIN 0xffU
static void get_entry_info(const struct ptdev_remapping_info *entry, char *type, static void get_entry_info(const struct ptirq_remapping_info *entry, char *type,
uint32_t *irq, uint32_t *vector, uint64_t *dest, bool *lvl_tm, uint32_t *irq, uint32_t *vector, uint64_t *dest, bool *lvl_tm,
uint8_t *pin, uint8_t *vpin, uint32_t *bdf, uint32_t *vbdf) uint8_t *pin, uint8_t *vpin, uint32_t *bdf, uint32_t *vbdf)
{ {
@ -958,7 +958,7 @@ static void get_entry_info(const struct ptdev_remapping_info *entry, char *type,
static void get_ptdev_info(char *str_arg, size_t str_max) static void get_ptdev_info(char *str_arg, size_t str_max)
{ {
char *str = str_arg; char *str = str_arg;
struct ptdev_remapping_info *entry; struct ptirq_remapping_info *entry;
uint16_t idx; uint16_t idx;
size_t len, size = str_max; size_t len, size = str_max;
uint32_t irq, vector; uint32_t irq, vector;
@ -976,7 +976,7 @@ static void get_ptdev_info(char *str_arg, size_t str_max)
str += len; str += len;
for (idx = 0U; idx < CONFIG_MAX_PT_IRQ_ENTRIES; idx++) { for (idx = 0U; idx < CONFIG_MAX_PT_IRQ_ENTRIES; idx++) {
entry = &ptdev_irq_entries[idx]; entry = &ptirq_entries[idx];
if (is_entry_active(entry)) { if (is_entry_active(entry)) {
get_entry_info(entry, type, &irq, &vector, get_entry_info(entry, type, &irq, &vector,
&dest, &lvl_tm, &pin, &vpin, &dest, &lvl_tm, &pin, &vpin,

View File

@ -44,7 +44,7 @@ static inline bool msicap_access(struct pci_vdev *vdev, uint32_t offset)
static int32_t vmsi_remap(struct pci_vdev *vdev, bool enable) static int32_t vmsi_remap(struct pci_vdev *vdev, bool enable)
{ {
struct ptdev_msi_info info; struct ptirq_msi_info info;
union pci_bdf pbdf = vdev->pdev.bdf; union pci_bdf pbdf = vdev->pdev.bdf;
struct acrn_vm *vm = vdev->vpci->vm; struct acrn_vm *vm = vdev->vpci->vm;
uint32_t capoff = vdev->msi.capoff; uint32_t capoff = vdev->msi.capoff;

View File

@ -51,7 +51,7 @@ static inline bool msixtable_access(struct pci_vdev *vdev, uint32_t offset)
static int vmsix_remap_entry(struct pci_vdev *vdev, uint32_t index, bool enable) static int vmsix_remap_entry(struct pci_vdev *vdev, uint32_t index, bool enable)
{ {
struct msix_table_entry *pentry; struct msix_table_entry *pentry;
struct ptdev_msi_info info; struct ptirq_msi_info info;
uint64_t hva; uint64_t hva;
int ret; int ret;

View File

@ -36,7 +36,7 @@
* @pre vm != NULL * @pre vm != NULL
* *
*/ */
void ptdev_intx_ack(struct acrn_vm *vm, uint8_t virt_pin, enum ptdev_vpin_source vpin_src); void ptdev_intx_ack(struct acrn_vm *vm, uint8_t virt_pin, enum ptirq_vpin_source vpin_src);
/** /**
* @brief MSI/MSI-x remapping for passthrough device. * @brief MSI/MSI-x remapping for passthrough device.
@ -59,7 +59,7 @@ void ptdev_intx_ack(struct acrn_vm *vm, uint8_t virt_pin, enum ptdev_vpin_source
* @pre info != NULL * @pre info != NULL
* *
*/ */
int ptdev_msix_remap(struct acrn_vm *vm, uint16_t virt_bdf, uint16_t entry_nr, struct ptdev_msi_info *info); int ptdev_msix_remap(struct acrn_vm *vm, uint16_t virt_bdf, uint16_t entry_nr, struct ptirq_msi_info *info);
/** /**
@ -81,7 +81,7 @@ int ptdev_msix_remap(struct acrn_vm *vm, uint16_t virt_bdf, uint16_t entry_nr, s
* @pre vm != NULL * @pre vm != NULL
* *
*/ */
int ptdev_intx_pin_remap(struct acrn_vm *vm, uint8_t virt_pin, enum ptdev_vpin_source vpin_src); int ptdev_intx_pin_remap(struct acrn_vm *vm, uint8_t virt_pin, enum ptirq_vpin_source vpin_src);
/** /**
* @brief Add an interrupt remapping entry for INTx as pre-hold mapping. * @brief Add an interrupt remapping entry for INTx as pre-hold mapping.

View File

@ -56,7 +56,7 @@ struct acrn_vioapic {
union ioapic_rte rtbl[REDIR_ENTRIES_HW]; union ioapic_rte rtbl[REDIR_ENTRIES_HW];
/* pin_state status bitmap: 1 - high, 0 - low */ /* pin_state status bitmap: 1 - high, 0 - low */
uint64_t pin_state[STATE_BITMAP_SIZE]; uint64_t pin_state[STATE_BITMAP_SIZE];
struct ptdev_remapping_info *vpin_to_pt_entry[VIOAPIC_MAX_PIN]; struct ptirq_remapping_info *vpin_to_pt_entry[VIOAPIC_MAX_PIN];
}; };
void vioapic_init(struct acrn_vm *vm); void vioapic_init(struct acrn_vm *vm);

View File

@ -128,7 +128,7 @@ struct acrn_vpic {
struct acrn_vm *vm; struct acrn_vm *vm;
spinlock_t lock; spinlock_t lock;
struct i8259_reg_state i8259[2]; struct i8259_reg_state i8259[2];
struct ptdev_remapping_info *vpin_to_pt_entry[NR_VPIC_PINS_TOTAL]; struct ptirq_remapping_info *vpin_to_pt_entry[NR_VPIC_PINS_TOTAL];
}; };
void vpic_init(struct acrn_vm *vm); void vpic_init(struct acrn_vm *vm);

View File

@ -14,7 +14,7 @@
#define INVALID_PTDEV_ENTRY_ID 0xffffU #define INVALID_PTDEV_ENTRY_ID 0xffffU
enum ptdev_vpin_source { enum ptirq_vpin_source {
PTDEV_VPIN_IOAPIC, PTDEV_VPIN_IOAPIC,
PTDEV_VPIN_PIC, PTDEV_VPIN_PIC,
}; };
@ -39,7 +39,7 @@ union source_id {
}; };
/* entry per guest virt vector */ /* entry per guest virt vector */
struct ptdev_msi_info { struct ptirq_msi_info {
uint64_t vmsi_addr; /* virt msi_addr */ uint64_t vmsi_addr; /* virt msi_addr */
uint32_t vmsi_data; /* virt msi_data */ uint32_t vmsi_data; /* virt msi_data */
uint64_t pmsi_addr; /* phys msi_addr */ uint64_t pmsi_addr; /* phys msi_addr */
@ -52,7 +52,7 @@ struct ptdev_msi_info {
* information related with its vm and msi/intx mapping & interaction nodes * information related with its vm and msi/intx mapping & interaction nodes
* with interrupt handler and softirq. * with interrupt handler and softirq.
*/ */
struct ptdev_remapping_info { struct ptirq_remapping_info {
uint16_t ptdev_entry_id; uint16_t ptdev_entry_id;
uint32_t intr_type; uint32_t intr_type;
union source_id phys_sid; union source_id phys_sid;
@ -62,25 +62,25 @@ struct ptdev_remapping_info {
uint32_t allocated_pirq; uint32_t allocated_pirq;
uint32_t polarity; /* 0=active high, 1=active low*/ uint32_t polarity; /* 0=active high, 1=active low*/
struct list_head softirq_node; struct list_head softirq_node;
struct ptdev_msi_info msi; struct ptirq_msi_info msi;
uint64_t intr_count; uint64_t intr_count;
struct hv_timer intr_delay_timer; /* used for delay intr injection */ struct hv_timer intr_delay_timer; /* used for delay intr injection */
}; };
extern struct ptdev_remapping_info ptdev_irq_entries[]; extern struct ptirq_remapping_info ptirq_entries[];
extern spinlock_t ptdev_lock; extern spinlock_t ptdev_lock;
bool is_entry_active(const struct ptdev_remapping_info *entry); bool is_entry_active(const struct ptirq_remapping_info *entry);
void ptdev_softirq(uint16_t pcpu_id); void ptdev_softirq(uint16_t pcpu_id);
void ptdev_init(void); void ptdev_init(void);
void ptdev_release_all_entries(const struct acrn_vm *vm); void ptdev_release_all_entries(const struct acrn_vm *vm);
struct ptdev_remapping_info *ptdev_dequeue_softirq(struct acrn_vm *vm); struct ptirq_remapping_info *ptdev_dequeue_softirq(struct acrn_vm *vm);
struct ptdev_remapping_info *alloc_entry(struct acrn_vm *vm, uint32_t intr_type); struct ptirq_remapping_info *alloc_entry(struct acrn_vm *vm, uint32_t intr_type);
void release_entry(struct ptdev_remapping_info *entry); void release_entry(struct ptirq_remapping_info *entry);
int32_t ptdev_activate_entry(struct ptdev_remapping_info *entry, uint32_t phys_irq); int32_t ptdev_activate_entry(struct ptirq_remapping_info *entry, uint32_t phys_irq);
void ptdev_deactivate_entry(struct ptdev_remapping_info *entry); void ptdev_deactivate_entry(struct ptirq_remapping_info *entry);
uint32_t get_vm_ptdev_intr_data(const struct acrn_vm *target_vm, uint64_t *buffer, uint32_t buffer_cnt); uint32_t get_vm_ptdev_intr_data(const struct acrn_vm *target_vm, uint64_t *buffer, uint32_t buffer_cnt);