X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fdevices%2Fapic.h;h=0be528363613102edf13cf2d9097a71b59d7f321;hb=0205b0a0d6ad39a783330299f8afca735cf9a459;hp=40415e6c4188f334d9e9f887ccb5344725c16c17;hpb=f40945e5a406b48b7b5ee678a3d8d8f0b56f7d74;p=palacios.git diff --git a/palacios/include/devices/apic.h b/palacios/include/devices/apic.h index 40415e6..0be5283 100644 --- a/palacios/include/devices/apic.h +++ b/palacios/include/devices/apic.h @@ -24,13 +24,14 @@ #include - typedef enum {IPI_FIXED = 0, IPI_LOWEST_PRIO = 1, IPI_SMI = 2, + IPI_RES1 = 3, IPI_NMI = 4, IPI_INIT = 5, - IPI_EXINT = 7 } ipi_mode_t; + IPI_SIPI = 6, + IPI_EXTINT = 7 } ipi_mode_t; struct v3_gen_ipi { @@ -42,13 +43,14 @@ struct v3_gen_ipi { uint8_t dst_shorthand : 2; uint8_t dst; + + + int (*ack)(struct guest_info * core, uint32_t irq, void * private_data); + void * private_data; } __attribute__((packed)); -int v3_apic_send_ipi(struct v3_vm_info * vm, struct vm_device * dev, - struct v3_gen_ipi * ipi); +int v3_apic_send_ipi(struct v3_vm_info * vm, struct v3_gen_ipi * ipi, void * dev_data); -int v3_apic_raise_intr(struct v3_vm_info * vm, struct vm_device * apic_dev, - uint32_t irq, uint32_t dst);