• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/usr.sbin/bhyve/

Lines Matching defs:pdi

373 	struct pci_devinst *pdi = arg;
374 struct pci_devemu *pe = pdi->pi_d;
379 if (pdi->pi_bar[i].type == PCIBAR_IO &&
380 port >= pdi->pi_bar[i].addr &&
381 port + bytes <= pdi->pi_bar[i].addr + pdi->pi_bar[i].size) {
382 offset = port - pdi->pi_bar[i].addr;
384 *eax = (*pe->pe_barread)(ctx, vcpu, pdi, i,
387 (*pe->pe_barwrite)(ctx, vcpu, pdi, i, offset,
399 struct pci_devinst *pdi = arg1;
400 struct pci_devemu *pe = pdi->pi_d;
405 assert(pdi->pi_bar[bidx].type == PCIBAR_MEM32 ||
406 pdi->pi_bar[bidx].type == PCIBAR_MEM64);
407 assert(addr >= pdi->pi_bar[bidx].addr &&
408 addr + size <= pdi->pi_bar[bidx].addr + pdi->pi_bar[bidx].size);
410 offset = addr - pdi->pi_bar[bidx].addr;
414 (*pe->pe_barwrite)(ctx, vcpu, pdi, bidx, offset,
416 (*pe->pe_barwrite)(ctx, vcpu, pdi, bidx, offset + 4,
419 (*pe->pe_barwrite)(ctx, vcpu, pdi, bidx, offset,
424 *val = (*pe->pe_barread)(ctx, vcpu, pdi, bidx,
426 *val |= (*pe->pe_barread)(ctx, vcpu, pdi, bidx,
429 *val = (*pe->pe_barread)(ctx, vcpu, pdi, bidx,
580 pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, enum pcibar_type type,
653 pdi->pi_bar[idx].type = type;
654 pdi->pi_bar[idx].addr = addr;
655 pdi->pi_bar[idx].size = size;
659 pci_set_cfgdata32(pdi, PCIR_BAR(idx), bar);
663 pdi->pi_bar[idx + 1].type = PCIBAR_MEMHI64;
664 pci_set_cfgdata32(pdi, PCIR_BAR(idx + 1), bar >> 32);
667 cmd = pci_get_cfgdata16(pdi, PCIR_COMMAND);
669 pci_set_cfgdata16(pdi, PCIR_COMMAND, cmd | enbit);
670 register_bar(pdi, idx);
734 struct pci_devinst *pdi;
737 pdi = calloc(1, sizeof(struct pci_devinst));
739 pdi->pi_vmctx = ctx;
740 pdi->pi_bus = bus;
741 pdi->pi_slot = slot;
742 pdi->pi_func = func;
743 pthread_mutex_init(&pdi->pi_lintr.lock, NULL);
744 pdi->pi_lintr.pin = 0;
745 pdi->pi_lintr.state = IDLE;
746 pdi->pi_lintr.pirq_pin = 0;
747 pdi->pi_lintr.ioapic_irq = 0;
748 pdi->pi_d = pde;
749 snprintf(pdi->pi_name, PI_NAMESZ, "%s-pci-%d", pde->pe_emu, slot);
752 pci_set_cfgdata8(pdi, PCIR_INTLINE, 255);
753 pci_set_cfgdata8(pdi, PCIR_INTPIN, 0);
755 pci_set_cfgdata8(pdi, PCIR_COMMAND, PCIM_CMD_BUSMASTEREN);
757 err = (*pde->pe_init)(ctx, pdi, fi->fi_param);
759 fi->fi_devi = pdi;
761 free(pdi);