Lines Matching refs:dwa
368 struct bhndb_dw_alloc *dwa; in bhndb_alloc_resources() local
396 dwa = &r->dw_alloc[rnid]; in bhndb_alloc_resources()
397 dwa->win = win; in bhndb_alloc_resources()
398 dwa->parent_res = NULL; in bhndb_alloc_resources()
399 dwa->rnid = rnid; in bhndb_alloc_resources()
400 dwa->target = 0x0; in bhndb_alloc_resources()
402 LIST_INIT(&dwa->refs); in bhndb_alloc_resources()
418 struct bhndb_dw_alloc *dwa; in bhndb_alloc_resources() local
421 dwa = &r->dw_alloc[i]; in bhndb_alloc_resources()
422 win = dwa->win; in bhndb_alloc_resources()
425 dwa->parent_res = bhndb_host_resource_for_regwin(r->res, win); in bhndb_alloc_resources()
426 if (dwa->parent_res == NULL) { in bhndb_alloc_resources()
438 if (rman_get_size(dwa->parent_res) < win->win_offset + in bhndb_alloc_resources()
443 rman_get_rid(dwa->parent_res), in bhndb_alloc_resources()
566 struct bhndb_dw_alloc *dwa; in bhndb_free_resources() local
577 dwa = &br->dw_alloc[i]; in bhndb_free_resources()
580 if (bhndb_dw_is_free(br, dwa)) in bhndb_free_resources()
584 "leaked dynamic register window %d\n", dwa->rnid); in bhndb_free_resources()
606 dwa = &br->dw_alloc[i]; in bhndb_free_resources()
608 LIST_FOREACH_SAFE(dwr, &dwa->refs, dw_link, dwr_next) { in bhndb_free_resources()
1161 bhndb_dw_find_resource_entry(struct bhndb_dw_alloc *dwa, struct resource *r) in bhndb_dw_find_resource_entry() argument
1165 LIST_FOREACH(rentry, &dwa->refs, dw_link) { in bhndb_dw_find_resource_entry()
1196 struct bhndb_dw_alloc *dwa; in bhndb_dw_find_resource() local
1199 dwa = &br->dw_alloc[i]; in bhndb_dw_find_resource()
1202 if (bhndb_dw_is_free(br, dwa)) in bhndb_dw_find_resource()
1206 if (bhndb_dw_find_resource_entry(dwa, r) != NULL) in bhndb_dw_find_resource()
1207 return (dwa); in bhndb_dw_find_resource()
1263 bhndb_dw_retain(struct bhndb_resources *br, struct bhndb_dw_alloc *dwa, in bhndb_dw_retain() argument
1268 KASSERT(bhndb_dw_find_resource_entry(dwa, res) == NULL, in bhndb_dw_retain()
1278 LIST_INSERT_HEAD(&dwa->refs, rentry, dw_link); in bhndb_dw_retain()
1281 bit_set(br->dwa_freelist, dwa->rnid); in bhndb_dw_retain()
1296 bhndb_dw_release(struct bhndb_resources *br, struct bhndb_dw_alloc *dwa, in bhndb_dw_release() argument
1302 rentry = bhndb_dw_find_resource_entry(dwa, r); in bhndb_dw_release()
1309 if (LIST_EMPTY(&dwa->refs)) in bhndb_dw_release()
1310 bit_clear(br->dwa_freelist, dwa->rnid); in bhndb_dw_release()
1332 struct bhndb_dw_alloc *dwa, bus_addr_t addr, bus_size_t size) in bhndb_dw_set_addr() argument
1338 rw = dwa->win; in bhndb_dw_set_addr()
1340 KASSERT(bhndb_dw_is_free(br, dwa) || mtx_owned(&br->dw_steal_mtx), in bhndb_dw_set_addr()
1345 dwa->target = addr - offset; in bhndb_dw_set_addr()
1352 error = BHNDB_SET_WINDOW_ADDR(dev, dwa->win, dwa->target); in bhndb_dw_set_addr()
1354 dwa->target = 0x0; in bhndb_dw_set_addr()
1414 struct bhndb_dw_alloc *dwa, bus_addr_t saved) in bhndb_dw_return_stolen() argument
1420 error = bhndb_dw_set_addr(dev, br, dwa, saved, 0); in bhndb_dw_return_stolen()