Lines Matching defs:hp

82 vmd_hotplug_coalesce_regions(struct vmd_hot_plug *hp)
88 TAILQ_FOREACH(region, &hp->free_mem_queue, tailq) {
98 TAILQ_REMOVE(&hp->free_mem_queue, region, tailq);
99 TAILQ_INSERT_TAIL(&hp->unused_mem_queue, region, tailq);
105 vmd_hotplug_free_region(struct vmd_hot_plug *hp, struct pci_mem_mgr *region)
109 assert(region->addr >= hp->bar.start && region->addr < hp->bar.start + hp->bar.size);
111 TAILQ_FOREACH(current, &hp->free_mem_queue, tailq) {
122 TAILQ_INSERT_AFTER(&hp->free_mem_queue, prev, region, tailq);
124 TAILQ_INSERT_HEAD(&hp->free_mem_queue, region, tailq);
127 vmd_hotplug_coalesce_regions(hp);
131 vmd_hotplug_free_addr(struct vmd_hot_plug *hp, uint64_t addr)
135 TAILQ_FOREACH(region, &hp->alloc_mem_queue, tailq) {
142 TAILQ_REMOVE(&hp->alloc_mem_queue, region, tailq);
144 vmd_hotplug_free_region(hp, region);
148 vmd_hotplug_allocate_base_addr(struct vmd_hot_plug *hp, uint32_t size)
152 TAILQ_FOREACH(region, &hp->free_mem_queue, tailq) {
164 TAILQ_REMOVE(&hp->free_mem_queue, region, tailq);
166 free_region = TAILQ_FIRST(&hp->unused_mem_queue);
171 TAILQ_REMOVE(&hp->unused_mem_queue, free_region, tailq);
175 vmd_hotplug_free_region(hp, free_region);
179 TAILQ_INSERT_TAIL(&hp->alloc_mem_queue, region, tailq);
212 return vmd_hotplug_allocate_base_addr(&hp_bus->self->hp, size);
291 return vmd_hotplug_allocate_base_addr(&bus->self->hp, size);
535 struct vmd_hot_plug *hp = &dev->hp;
539 hp->bar.size = 1 << 20;
542 hp->bar.start = vmd_allocate_base_addr(vmd, NULL, hp->bar.size);
543 bus->self->header->one.mem_base = BRIDGE_BASEREG(hp->bar.start);
545 bus->self->header->one.mem_base + BRIDGE_BASEREG(hp->bar.size - 1);
547 hp->bar.start = (uint64_t)bus->self->header->one.mem_base << 16;
550 hp->bar.vaddr = (uint64_t)vmd->mem_vaddr + (hp->bar.start - vmd->membar);
552 TAILQ_INIT(&hp->free_mem_queue);
553 TAILQ_INIT(&hp->unused_mem_queue);
554 TAILQ_INIT(&hp->alloc_mem_queue);
556 hp->mem[0].size = hp->bar.size;
557 hp->mem[0].addr = hp->bar.start;
559 TAILQ_INSERT_TAIL(&hp->free_mem_queue, &hp->mem[0], tailq);
562 TAILQ_INSERT_TAIL(&hp->unused_mem_queue, &hp->mem[mem_id], tailq);
842 vmd_hotplug_free_addr(&bus_device->hp, dev->bar[i].start);