Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/bhyve/pci_emul.c
Show First 20 Lines • Show All 1,023 Lines • ▼ Show 20 Lines | pci_emul_init(struct vmctx *ctx, struct pci_devemu *pde, int bus, int slot, | ||||
pdi->pi_slot = slot; | pdi->pi_slot = slot; | ||||
pdi->pi_func = func; | pdi->pi_func = func; | ||||
pthread_mutex_init(&pdi->pi_lintr.lock, NULL); | pthread_mutex_init(&pdi->pi_lintr.lock, NULL); | ||||
pdi->pi_lintr.pin = 0; | pdi->pi_lintr.pin = 0; | ||||
pdi->pi_lintr.state = IDLE; | pdi->pi_lintr.state = IDLE; | ||||
pdi->pi_lintr.pirq_pin = 0; | pdi->pi_lintr.pirq_pin = 0; | ||||
pdi->pi_lintr.ioapic_irq = 0; | pdi->pi_lintr.ioapic_irq = 0; | ||||
pdi->pi_d = pde; | pdi->pi_d = pde; | ||||
snprintf(pdi->pi_name, PI_NAMESZ, "%s-pci-%d", pde->pe_emu, slot); | snprintf(pdi->pi_name, PI_NAMESZ, "%s@pci.%d.%d.%d", pde->pe_emu, bus, | ||||
corvink: We may like to use the same format as pciconf `pci%s:%s:%s:%s, domain, bus, slot, func`. | |||||
Done Inline ActionsYes, but currently this format is more useful since .meta file doesn't have command line. This format has 'emu' type and it is important. The best is enemy of good :) gusev.vitaliy_gmail.com: Yes, but currently this format is more useful since .meta file doesn't have command line. This… | |||||
Done Inline ActionsSry to be unclear. I've only talked to the pci part. So, I suggested to use %s@pci%s:%s:%s:%s, emu, domain, bus, slot, func. corvink: Sry to be unclear. I've only talked to the pci part. So, I suggested to use `%s@pci%s:%s:%s:%s… | |||||
Done Inline ActionsHmm, I can't find domain in bhyve source directory. gusev.vitaliy_gmail.com: Hmm, I can't find `domain` in bhyve source directory. | |||||
Not Done Inline ActionsAfaik, domain isn't supported by bhyve yet. So, we can hard code it to 0. corvink: Afaik, domain isn't supported by bhyve yet. So, we can hard code it to 0. | |||||
Done Inline ActionsIt seems that domain can be added when becomes supported. gusev.vitaliy_gmail.com: It seems that domain can be added when becomes supported. | |||||
slot, func); | |||||
/* Disable legacy interrupts */ | /* Disable legacy interrupts */ | ||||
pci_set_cfgdata8(pdi, PCIR_INTLINE, 255); | pci_set_cfgdata8(pdi, PCIR_INTLINE, 255); | ||||
pci_set_cfgdata8(pdi, PCIR_INTPIN, 0); | pci_set_cfgdata8(pdi, PCIR_INTPIN, 0); | ||||
pci_set_cfgdata8(pdi, PCIR_COMMAND, PCIM_CMD_BUSMASTEREN); | pci_set_cfgdata8(pdi, PCIR_COMMAND, PCIM_CMD_BUSMASTEREN); | ||||
err = (*pde->pe_init)(pdi, fi->fi_config); | err = (*pde->pe_init)(pdi, fi->fi_config); | ||||
▲ Show 20 Lines • Show All 1,645 Lines • Show Last 20 Lines |
We may like to use the same format as pciconf pci%s:%s:%s:%s, domain, bus, slot, func.