search for: apic_send_msi

Displaying 4 results from an estimated 4 matches for "apic_send_msi".

2009 Jun 05
1
[PATCHv3 07/13] qemu: minimal MSI/MSI-X implementation for PC
...e MSI_ADDR_BASE 0xfee00000 +#define MSI_ADDR_SIZE 0x100000 + typedef struct APICState { CPUState *cpu_env; uint32_t apicbase; @@ -712,11 +727,31 @@ static uint32_t apic_mem_readl(void *opaque, target_phys_addr_t addr) return val; } +static void apic_send_msi(target_phys_addr_t addr, uint32 data) +{ + uint8_t dest = (addr & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT; + uint8_t vector = (data & MSI_DATA_VECTOR_MASK) >> MSI_DATA_VECTOR_SHIFT; + uint8_t dest_mode = (addr >> MSI_ADDR_DEST_MODE_SHIFT) & 0x1; +...
2009 Jun 05
1
[PATCHv3 07/13] qemu: minimal MSI/MSI-X implementation for PC
...e MSI_ADDR_BASE 0xfee00000 +#define MSI_ADDR_SIZE 0x100000 + typedef struct APICState { CPUState *cpu_env; uint32_t apicbase; @@ -712,11 +727,31 @@ static uint32_t apic_mem_readl(void *opaque, target_phys_addr_t addr) return val; } +static void apic_send_msi(target_phys_addr_t addr, uint32 data) +{ + uint8_t dest = (addr & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT; + uint8_t vector = (data & MSI_DATA_VECTOR_MASK) >> MSI_DATA_VECTOR_SHIFT; + uint8_t dest_mode = (addr >> MSI_ADDR_DEST_MODE_SHIFT) & 0x1; +...
2009 May 20
9
[PATCH] qemu: msi irq allocation api
...ICState { uint64_t ioredtbl[IOAPIC_NUM_PINS]; }; +struct msi_state { + uint64_t addr; + uint32_t data; +}; + static void ioapic_service(IOAPICState *s) { uint8_t i; @@ -259,3 +275,52 @@ IOAPICState *ioapic_init(void) return s; } + +/* MSI/MSI-X support */ +static void ioapic_send_msi(void *opaque, int irq, int level) +{ + struct msi_state *state = opaque; + uint8_t dest = (state[irq].addr & MSI_ADDR_DEST_ID_MASK) + >> MSI_ADDR_DEST_ID_SHIFT; + uint8_t vector = ((state[irq].addr >> 32) & MSI_DATA_VECTOR_MASK) + >> MSI_DATA_VECTOR_...
2009 May 20
9
[PATCH] qemu: msi irq allocation api
...ICState { uint64_t ioredtbl[IOAPIC_NUM_PINS]; }; +struct msi_state { + uint64_t addr; + uint32_t data; +}; + static void ioapic_service(IOAPICState *s) { uint8_t i; @@ -259,3 +275,52 @@ IOAPICState *ioapic_init(void) return s; } + +/* MSI/MSI-X support */ +static void ioapic_send_msi(void *opaque, int irq, int level) +{ + struct msi_state *state = opaque; + uint8_t dest = (state[irq].addr & MSI_ADDR_DEST_ID_MASK) + >> MSI_ADDR_DEST_ID_SHIFT; + uint8_t vector = ((state[irq].addr >> 32) & MSI_DATA_VECTOR_MASK) + >> MSI_DATA_VECTOR_...