Lines Matching refs:tiop

44 int register_trapped_io(struct trapped_io *tiop)  in register_trapped_io()  argument
55 if ((unsigned long)tiop & (PAGE_SIZE - 1)) in register_trapped_io()
58 for (k = 0; k < tiop->num_resources; k++) { in register_trapped_io()
59 res = tiop->resource + k; in register_trapped_io()
74 pages[k] = virt_to_page(tiop); in register_trapped_io()
76 tiop->virt_base = vmap(pages, n, VM_MAP, PAGE_NONE); in register_trapped_io()
77 if (!tiop->virt_base) in register_trapped_io()
81 for (k = 0; k < tiop->num_resources; k++) { in register_trapped_io()
82 res = tiop->resource + k; in register_trapped_io()
84 (unsigned long)(tiop->virt_base + len), in register_trapped_io()
90 tiop->magic = IO_TRAPPED_MAGIC; in register_trapped_io()
91 INIT_LIST_HEAD(&tiop->list); in register_trapped_io()
95 list_add(&tiop->list, &trapped_io); in register_trapped_io()
99 list_add(&tiop->list, &trapped_mem); in register_trapped_io()
115 struct trapped_io *tiop; in match_trapped_io_handler() local
121 list_for_each_entry(tiop, list, list) { in match_trapped_io_handler()
123 for (k = 0; k < tiop->num_resources; k++) { in match_trapped_io_handler()
124 res = tiop->resource + k; in match_trapped_io_handler()
127 return tiop->virt_base + voffs; in match_trapped_io_handler()
165 static unsigned long lookup_address(struct trapped_io *tiop, in lookup_address() argument
169 unsigned long vaddr = (unsigned long)tiop->virt_base; in lookup_address()
173 for (k = 0; k < tiop->num_resources; k++) { in lookup_address()
174 res = tiop->resource + k; in lookup_address()
223 struct trapped_io *tiop; in from_device() local
228 tiop = lookup_tiop(src_addr); in from_device()
229 WARN_ON(!tiop || (tiop->magic != IO_TRAPPED_MAGIC)); in from_device()
231 src_addr = lookup_address(tiop, src_addr); in from_device()
237 (tiop->minimum_bus_width / 8)), in from_device()
246 struct trapped_io *tiop; in to_device() local
251 tiop = lookup_tiop(dst_addr); in to_device()
252 WARN_ON(!tiop || (tiop->magic != IO_TRAPPED_MAGIC)); in to_device()
254 dst_addr = lookup_address(tiop, dst_addr); in to_device()
260 (tiop->minimum_bus_width / 8))); in to_device()