struct pci_device * dev = NULL;
struct v3_chkpt_ctx * bus_ctx = NULL;
- snprintf(buf, 128, "pci-%d\n", i);
+ snprintf(buf, 128, "pci-%d", i);
bus_ctx = v3_chkpt_open_ctx(ctx->chkpt, ctx, buf);
struct pci_device * dev = NULL;
struct v3_chkpt_ctx * bus_ctx = NULL;
- snprintf(buf, 128, "pci-%d\n", i);
+ snprintf(buf, 128, "pci-%d", i);
bus_ctx = v3_chkpt_open_ctx(ctx->chkpt, ctx, buf);
static int pci_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) {
struct pci_internal * pci_state = V3_Malloc(sizeof(struct pci_internal));
+
+ if (!pci_state) {
+ PrintError("Cannot allocate in init\n");
+ return -1;
+ }
+
int i = 0;
char * dev_id = v3_cfg_val(cfg, "ID");
int ret = 0;
memset(&ipi, 0, sizeof(struct v3_gen_ipi));
+ // decode MSI fields into IPI
+
ipi.vector = data->vector + vec.irq;
ipi.mode = data->del_mode;
ipi.logical = addr->dst_mode;
ipi.dst_shorthand = 0;
ipi.dst = addr->dst_id;
- // decode MSI fields into IPI
-
- V3_Print("Decode MSI\n");
v3_apic_send_ipi(dev->vm, &ipi, dev->apic_dev);
data = &(msix_table->entries[vec.irq].data);
addr = &(msix_table->entries[vec.irq].addr);;
+ // decode MSIX fields into IPI
ipi.vector = data->vector + vec.irq;
ipi.mode = data->del_mode;
ipi.logical = addr->dst_mode;
ipi.dst_shorthand = 0;
ipi.dst = addr->dst_id;
- // decode MSIX fields into IPI
+
V3_Print("Decode MSIX\n");