Lines Matching defs:bpage

223 static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage);
1166 struct bounce_page *bpage;
1170 while ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) {
1172 free_bounce_page(dmat, bpage);
1296 struct bounce_page *bpage;
1302 STAILQ_FOREACH(bpage, &map->bpages, links) {
1304 datavaddr = bpage->datavaddr;
1308 pmap_quick_enter_page(bpage->datapage);
1309 datavaddr = tempvaddr | bpage->dataoffs;
1312 (void *)bpage->vaddr, bpage->datacount);
1315 cpu_dcache_wb_range(bpage->vaddr, bpage->datacount);
1316 cpu_l2cache_wb_range(bpage->vaddr, bpage->datacount);
1320 cpu_dcache_inv_range(bpage->vaddr, bpage->datacount);
1321 cpu_l2cache_inv_range(bpage->vaddr, bpage->datacount);
1324 pmap_quick_enter_page(bpage->datapage);
1325 datavaddr = tempvaddr | bpage->dataoffs;
1327 bcopy((void *)bpage->vaddr,
1328 (void *)datavaddr, bpage->datacount);
1470 struct bounce_page *bpage;
1472 bpage = (struct bounce_page *)malloc(sizeof(*bpage), M_BUSDMA,
1475 if (bpage == NULL)
1477 bpage->vaddr = (vm_offset_t)contigmalloc(PAGE_SIZE, M_BOUNCE,
1479 if (bpage->vaddr == 0) {
1480 free(bpage, M_BUSDMA);
1483 bpage->busaddr = pmap_kextract(bpage->vaddr);
1485 STAILQ_INSERT_TAIL(&bz->bounce_page_list, bpage, links);
1520 struct bounce_page *bpage;
1535 bpage = STAILQ_FIRST(&bz->bounce_page_list);
1536 if (bpage == NULL)
1546 bpage->vaddr |= addr & PAGE_MASK;
1547 bpage->busaddr |= addr & PAGE_MASK;
1549 bpage->datavaddr = vaddr;
1550 bpage->datapage = PHYS_TO_VM_PAGE(addr);
1551 bpage->dataoffs = addr & PAGE_MASK;
1552 bpage->datacount = size;
1553 STAILQ_INSERT_TAIL(&(map->bpages), bpage, links);
1554 return (bpage->busaddr);
1558 free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage)
1564 bpage->datavaddr = 0;
1565 bpage->datacount = 0;
1572 bpage->vaddr &= ~PAGE_MASK;
1573 bpage->busaddr &= ~PAGE_MASK;
1577 STAILQ_INSERT_HEAD(&bz->bounce_page_list, bpage, links);