Lines Matching refs:unw

147 } unw = {  variable
148 .tables = &unw.kernel_table,
149 .lock = __SPIN_LOCK_UNLOCKED(unw.lock),
245 return (unsigned long) ((char *) addr - (char *) &unw.r0) < sizeof(unw.r0); in read_only()
256 if (reg < ARRAY_SIZE(unw.pt_regs_offsets)) in pt_regs_off()
257 off = unw.pt_regs_offsets[reg]; in pt_regs_off()
756 for (i = 0; i < (int) ARRAY_SIZE(unw.save_order); ++i) { in finish_prologue()
757 reg = sr->curr.reg + unw.save_order[i]; in finish_prologue()
838 set_reg(sr->curr.reg + unw.save_order[i], UNW_WHERE_GR, in desc_prologue()
1227 struct unw_script *script = unw.cache + info->hint; in script_lookup()
1234 STAT(++unw.stat.cache.lookups); in script_lookup()
1240 STAT(++unw.stat.cache.hinted_hits); in script_lookup()
1244 index = unw.hash[hash(ip)]; in script_lookup()
1248 script = unw.cache + index; in script_lookup()
1252 STAT(++unw.stat.cache.normal_hits); in script_lookup()
1253 unw.cache[info->prev_script].hint = script - unw.cache; in script_lookup()
1258 script = unw.cache + script->coll_chain; in script_lookup()
1259 STAT(++unw.stat.cache.collision_chain_traversals); in script_lookup()
1273 STAT(++unw.stat.script.news); in script_new()
1279 head = unw.lru_head; in script_new()
1280 script = unw.cache + head; in script_new()
1281 unw.lru_head = script->lru_chain; in script_new()
1293 unw.cache[unw.lru_tail].lru_chain = head; in script_new()
1294 unw.lru_tail = head; in script_new()
1299 tmp = unw.cache + unw.hash[index]; in script_new()
1306 unw.hash[index] = tmp->coll_chain; in script_new()
1313 tmp = unw.cache + tmp->coll_chain; in script_new()
1319 script->coll_chain = unw.hash[index]; in script_new()
1320 unw.hash[index] = script - unw.cache; in script_new()
1324 STAT(if (script->coll_chain < UNW_CACHE_SIZE) ++unw.stat.script.collisions); in script_new()
1396 insn.dst = unw.preg_index[i]; in emit_nat_info()
1427 val = unw.preg_index[UNW_REG_R4 + (rval - 4)]; in compile_reg()
1440 val = unw.preg_index[UNW_REG_F2 + (rval - 2)]; in compile_reg()
1442 val = unw.preg_index[UNW_REG_F16 + (rval - 16)]; in compile_reg()
1455 val = unw.preg_index[UNW_REG_B1 + (rval - 1)]; in compile_reg()
1481 insn.dst = unw.preg_index[i]; in compile_reg()
1495 insn.dst = insn.val = unw.preg_index[UNW_REG_PSP]; in compile_reg()
1542 STAT(++unw.stat.script.builds; start = ia64_get_itc()); in build_script()
1554 STAT(unw.stat.script.build_time += ia64_get_itc() - start); in build_script()
1557 unw.cache[info->prev_script].hint = script - unw.cache; in build_script()
1564 for (table = unw.tables; table; table = table->next) { in build_script()
1573 if (prev && prev != unw.tables) { in build_script()
1576 table->next = unw.tables->next; in build_script()
1577 unw.tables->next = table; in build_script()
1587 __func__, ip, unw.cache[info->prev_script].ip); in build_script()
1593 STAT(unw.stat.script.parse_time += ia64_get_itc() - parse_start); in build_script()
1594 STAT(unw.stat.script.build_time += ia64_get_itc() - start); in build_script()
1645 UNW_DPRINT(1, " %s <- ", unw.preg_name[r - sr.curr.reg]); in build_script()
1653 UNW_DPRINT(1, "%s+0x%lx", unw.preg_name[r - sr.curr.reg], r->val); in build_script()
1665 STAT(unw.stat.script.parse_time += ia64_get_itc() - parse_start); in build_script()
1707 STAT(unw.stat.script.parse_time += ia64_get_itc() - parse_start); in build_script()
1710 STAT(unw.stat.script.build_time += ia64_get_itc() - start); in build_script()
1727 STAT(++unw.stat.script.runs; start = ia64_get_itc()); in run_script()
1770 s[dst] = (unsigned long) &unw.r0; in run_script()
1817 STAT(unw.stat.script.run_time += ia64_get_itc() - start); in run_script()
1821 off = unw.sw_off[val]; in run_script()
1850 spin_lock_irqsave(&unw.lock, flags); in find_save_locs()
1853 spin_unlock_irqrestore(&unw.lock, flags); in find_save_locs()
1862 info->prev_script = scr - unw.cache; in find_save_locs()
1868 spin_unlock_irqrestore(&unw.lock, flags); in find_save_locs()
1890 STAT(local_irq_save(flags); ++unw.stat.api.unwinds; start = ia64_get_itc()); in unw_unwind()
1901 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
1908 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
1915 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
1937 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
1946 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
1953 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
1964 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); in unw_unwind()
2007 STAT(local_irq_save(flags); ++unw.stat.api.inits; start = ia64_get_itc()); in init_frame_info()
2048 STAT(unw.stat.api.init_time += ia64_get_itc() - start; local_irq_restore(flags)); in init_frame_info()
2116 spin_lock_irqsave(&unw.lock, flags); in unw_add_unwind_table()
2119 table->next = unw.tables->next; in unw_add_unwind_table()
2120 unw.tables->next = table; in unw_add_unwind_table()
2122 spin_unlock_irqrestore(&unw.lock, flags); in unw_add_unwind_table()
2142 if (table == &unw.kernel_table) { in unw_remove_unwind_table()
2148 spin_lock_irqsave(&unw.lock, flags); in unw_remove_unwind_table()
2152 for (prev = (struct unw_table *) &unw.tables; prev; prev = prev->next) in unw_remove_unwind_table()
2158 spin_unlock_irqrestore(&unw.lock, flags); in unw_remove_unwind_table()
2163 spin_unlock_irqrestore(&unw.lock, flags); in unw_remove_unwind_table()
2168 tmp = unw.cache + unw.hash[index]; in unw_remove_unwind_table()
2169 if (unw.hash[index] >= UNW_CACHE_SIZE in unw_remove_unwind_table()
2176 unw.hash[index] = tmp->coll_chain; in unw_remove_unwind_table()
2217 unw.gate_table = kmalloc(size, GFP_KERNEL); in create_gate_table()
2218 if (!unw.gate_table) { in create_gate_table()
2219 unw.gate_table_size = 0; in create_gate_table()
2223 unw.gate_table_size = size; in create_gate_table()
2225 lp = unw.gate_table; in create_gate_table()
2226 info = (char *) unw.gate_table + size; in create_gate_table()
2235 lp[2] = info - (char *) unw.gate_table; /* info */ in create_gate_table()
2253 unw.sw_off[unw.preg_index[UNW_REG_PRI_UNAT_GR]] = SW(CALLER_UNAT); in unw_init()
2254 unw.sw_off[unw.preg_index[UNW_REG_BSPSTORE]] = SW(AR_BSPSTORE); in unw_init()
2255 unw.sw_off[unw.preg_index[UNW_REG_PFS]] = SW(AR_PFS); in unw_init()
2256 unw.sw_off[unw.preg_index[UNW_REG_RP]] = SW(B0); in unw_init()
2257 unw.sw_off[unw.preg_index[UNW_REG_UNAT]] = SW(CALLER_UNAT); in unw_init()
2258 unw.sw_off[unw.preg_index[UNW_REG_PR]] = SW(PR); in unw_init()
2259 unw.sw_off[unw.preg_index[UNW_REG_LC]] = SW(AR_LC); in unw_init()
2260 unw.sw_off[unw.preg_index[UNW_REG_FPSR]] = SW(AR_FPSR); in unw_init()
2262 unw.sw_off[unw.preg_index[i]] = off; in unw_init()
2264 unw.sw_off[unw.preg_index[i]] = off; in unw_init()
2266 unw.sw_off[unw.preg_index[i]] = off; in unw_init()
2268 unw.sw_off[unw.preg_index[i]] = off; in unw_init()
2272 unw.cache[i].lru_chain = (i - 1); in unw_init()
2273 unw.cache[i].coll_chain = -1; in unw_init()
2274 rwlock_init(&unw.cache[i].lock); in unw_init()
2276 unw.lru_head = UNW_CACHE_SIZE - 1; in unw_init()
2277 unw.lru_tail = 0; in unw_init()
2279 init_unwind_table(&unw.kernel_table, "kernel", KERNEL_START, (unsigned long) __gp, in unw_init()
2316 if (buf && buf_size >= unw.gate_table_size) in sys_getunwind()
2317 if (copy_to_user(buf, unw.gate_table, unw.gate_table_size) != 0) in sys_getunwind()
2319 return unw.gate_table_size; in sys_getunwind()