Lines Matching defs:bpage

167 static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage);
1055 struct bounce_page *bpage;
1057 while ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) {
1059 free_bounce_page(dmat, bpage);
1176 struct bounce_page *bpage;
1178 STAILQ_FOREACH(bpage, &map->bpages, links) {
1180 if (bpage->datavaddr != 0)
1181 bcopy((void *)bpage->datavaddr,
1182 (void *)(bpage->vaddr_nocache != 0 ?
1183 bpage->vaddr_nocache :
1184 bpage->vaddr),
1185 bpage->datacount);
1187 physcopyout(bpage->dataaddr,
1188 (void *)(bpage->vaddr_nocache != 0 ?
1189 bpage->vaddr_nocache :
1190 bpage->vaddr),
1191 bpage->datacount);
1192 if (bpage->vaddr_nocache == 0) {
1193 mips_dcache_wb_range(bpage->vaddr,
1194 bpage->datacount);
1199 if (bpage->vaddr_nocache == 0) {
1200 mips_dcache_inv_range(bpage->vaddr,
1201 bpage->datacount);
1203 if (bpage->datavaddr != 0)
1204 bcopy((void *)(bpage->vaddr_nocache != 0 ?
1205 bpage->vaddr_nocache : bpage->vaddr),
1206 (void *)bpage->datavaddr, bpage->datacount);
1208 physcopyin((void *)(bpage->vaddr_nocache != 0 ?
1209 bpage->vaddr_nocache : bpage->vaddr),
1210 bpage->dataaddr, bpage->datacount);
1352 struct bounce_page *bpage;
1354 bpage = (struct bounce_page *)malloc(sizeof(*bpage), M_BUSDMA,
1357 if (bpage == NULL)
1359 bpage->vaddr = (vm_offset_t)contigmalloc(PAGE_SIZE, M_BOUNCE,
1364 if (bpage->vaddr == 0) {
1365 free(bpage, M_BUSDMA);
1368 bpage->busaddr = pmap_kextract(bpage->vaddr);
1369 bpage->vaddr_nocache =
1370 (vm_offset_t)pmap_mapdev(bpage->busaddr, PAGE_SIZE);
1372 STAILQ_INSERT_TAIL(&bz->bounce_page_list, bpage, links);
1407 struct bounce_page *bpage;
1422 bpage = STAILQ_FIRST(&bz->bounce_page_list);
1423 if (bpage == NULL)
1433 bpage->vaddr |= addr & PAGE_MASK;
1434 bpage->busaddr |= addr & PAGE_MASK;
1436 bpage->datavaddr = vaddr;
1437 bpage->dataaddr = addr;
1438 bpage->datacount = size;
1439 STAILQ_INSERT_TAIL(&(map->bpages), bpage, links);
1440 return (bpage->busaddr);
1444 free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage)
1450 bpage->datavaddr = 0;
1451 bpage->datacount = 0;
1458 bpage->vaddr &= ~PAGE_MASK;
1459 bpage->busaddr &= ~PAGE_MASK;
1463 STAILQ_INSERT_HEAD(&bz->bounce_page_list, bpage, links);