Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/io/ppt.c
Show First 20 Lines • Show All 333 Lines • ▼ Show 20 Lines | ppt_assigned_devices(struct vm *vm) | ||||
num = 0; | num = 0; | ||||
TAILQ_FOREACH(ppt, &pptdev_list, next) { | TAILQ_FOREACH(ppt, &pptdev_list, next) { | ||||
if (ppt->vm == vm) | if (ppt->vm == vm) | ||||
num++; | num++; | ||||
} | } | ||||
return (num); | return (num); | ||||
} | } | ||||
boolean_t | bool | ||||
ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) | ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) | ||||
{ | { | ||||
int i; | int i; | ||||
struct pptdev *ppt; | struct pptdev *ppt; | ||||
struct pptseg *seg; | struct pptseg *seg; | ||||
TAILQ_FOREACH(ppt, &pptdev_list, next) { | TAILQ_FOREACH(ppt, &pptdev_list, next) { | ||||
if (ppt->vm != vm) | if (ppt->vm != vm) | ||||
continue; | continue; | ||||
for (i = 0; i < MAX_MMIOSEGS; i++) { | for (i = 0; i < MAX_MMIOSEGS; i++) { | ||||
seg = &ppt->mmio[i]; | seg = &ppt->mmio[i]; | ||||
if (seg->len == 0) | if (seg->len == 0) | ||||
continue; | continue; | ||||
if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) | if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) | ||||
return (TRUE); | return (true); | ||||
} | } | ||||
} | } | ||||
return (FALSE); | return (false); | ||||
} | } | ||||
static void | static void | ||||
ppt_pci_reset(device_t dev) | ppt_pci_reset(device_t dev) | ||||
{ | { | ||||
if (pcie_flr(dev, | if (pcie_flr(dev, | ||||
max(pcie_get_max_completion_timeout(dev) / 1000, 10), true)) | max(pcie_get_max_completion_timeout(dev) / 1000, 10), true)) | ||||
▲ Show 20 Lines • Show All 331 Lines • Show Last 20 Lines |