Lines Matching refs:tiop
45 int register_trapped_io(struct trapped_io *tiop)
56 if ((unsigned long)tiop & (PAGE_SIZE - 1))
59 for (k = 0; k < tiop->num_resources; k++) {
60 res = tiop->resource + k;
75 pages[k] = virt_to_page(tiop);
77 tiop->virt_base = vmap(pages, n, VM_MAP, PAGE_NONE);
78 if (!tiop->virt_base)
82 for (k = 0; k < tiop->num_resources; k++) {
83 res = tiop->resource + k;
85 (unsigned long)(tiop->virt_base + len),
91 tiop->magic = IO_TRAPPED_MAGIC;
92 INIT_LIST_HEAD(&tiop->list);
96 list_add(&tiop->list, &trapped_io);
100 list_add(&tiop->list, &trapped_mem);
116 struct trapped_io *tiop;
122 list_for_each_entry(tiop, list, list) {
124 for (k = 0; k < tiop->num_resources; k++) {
125 res = tiop->resource + k;
128 return tiop->virt_base + voffs;
166 static unsigned long lookup_address(struct trapped_io *tiop,
170 unsigned long vaddr = (unsigned long)tiop->virt_base;
174 for (k = 0; k < tiop->num_resources; k++) {
175 res = tiop->resource + k;
224 struct trapped_io *tiop;
229 tiop = lookup_tiop(src_addr);
230 WARN_ON(!tiop || (tiop->magic != IO_TRAPPED_MAGIC));
232 src_addr = lookup_address(tiop, src_addr);
238 (tiop->minimum_bus_width / 8)),
247 struct trapped_io *tiop;
252 tiop = lookup_tiop(dst_addr);
253 WARN_ON(!tiop || (tiop->magic != IO_TRAPPED_MAGIC));
255 dst_addr = lookup_address(tiop, dst_addr);
261 (tiop->minimum_bus_width / 8)));