Lines Matching refs:tiop

41 int register_trapped_io(struct trapped_io *tiop)  in register_trapped_io()  argument
52 if ((unsigned long)tiop & (PAGE_SIZE - 1)) in register_trapped_io()
55 for (k = 0; k < tiop->num_resources; k++) { in register_trapped_io()
56 res = tiop->resource + k; in register_trapped_io()
71 pages[k] = virt_to_page(tiop); in register_trapped_io()
73 tiop->virt_base = vmap(pages, n, VM_MAP, PAGE_NONE); in register_trapped_io()
74 if (!tiop->virt_base) in register_trapped_io()
78 for (k = 0; k < tiop->num_resources; k++) { in register_trapped_io()
79 res = tiop->resource + k; in register_trapped_io()
81 (unsigned long)(tiop->virt_base + len), in register_trapped_io()
87 tiop->magic = IO_TRAPPED_MAGIC; in register_trapped_io()
88 INIT_LIST_HEAD(&tiop->list); in register_trapped_io()
92 list_add(&tiop->list, &trapped_io); in register_trapped_io()
96 list_add(&tiop->list, &trapped_mem); in register_trapped_io()
112 struct trapped_io *tiop; in match_trapped_io_handler() local
118 list_for_each_entry(tiop, list, list) { in match_trapped_io_handler()
120 for (k = 0; k < tiop->num_resources; k++) { in match_trapped_io_handler()
121 res = tiop->resource + k; in match_trapped_io_handler()
124 return tiop->virt_base + voffs; in match_trapped_io_handler()
162 static unsigned long lookup_address(struct trapped_io *tiop, in lookup_address() argument
166 unsigned long vaddr = (unsigned long)tiop->virt_base; in lookup_address()
170 for (k = 0; k < tiop->num_resources; k++) { in lookup_address()
171 res = tiop->resource + k; in lookup_address()
220 struct trapped_io *tiop; in from_device() local
225 tiop = lookup_tiop(src_addr); in from_device()
226 WARN_ON(!tiop || (tiop->magic != IO_TRAPPED_MAGIC)); in from_device()
228 src_addr = lookup_address(tiop, src_addr); in from_device()
234 (tiop->minimum_bus_width / 8)), in from_device()
243 struct trapped_io *tiop; in to_device() local
248 tiop = lookup_tiop(dst_addr); in to_device()
249 WARN_ON(!tiop || (tiop->magic != IO_TRAPPED_MAGIC)); in to_device()
251 dst_addr = lookup_address(tiop, dst_addr); in to_device()
257 (tiop->minimum_bus_width / 8))); in to_device()