Lines Matching refs:di
140 _Uia64_find_dyn_list (unw_addr_space_t as, unw_dyn_info_t *di, void *arg) in _Uia64_find_dyn_list() argument
146 unw_word_t gp = di->gp; in _Uia64_find_dyn_list()
149 switch (di->format) in _Uia64_find_dyn_list()
156 e = (struct ia64_table_entry *) di->u.ti.table_data; in _Uia64_find_dyn_list()
157 table_size = di->u.ti.table_len * sizeof (di->u.ti.table_data[0]); in _Uia64_find_dyn_list()
158 segbase = di->u.ti.segbase; in _Uia64_find_dyn_list()
169 unw_word_t e_addr = di->u.rti.table_data; in _Uia64_find_dyn_list()
171 table_size = di->u.rti.table_len * sizeof (unw_word_t); in _Uia64_find_dyn_list()
172 segbase = di->u.rti.segbase; in _Uia64_find_dyn_list()
252 unw_dyn_info_t *di, unw_proc_info_t *pi, in unw_search_ia64_unwind_table() argument
263 assert ((di->format == UNW_INFO_FORMAT_TABLE in unw_search_ia64_unwind_table()
264 || di->format == UNW_INFO_FORMAT_REMOTE_TABLE) in unw_search_ia64_unwind_table()
265 && (ip >= di->start_ip && ip < di->end_ip)); in unw_search_ia64_unwind_table()
271 if (likely (di->format == UNW_INFO_FORMAT_TABLE)) in unw_search_ia64_unwind_table()
273 segbase = di->u.ti.segbase; in unw_search_ia64_unwind_table()
274 e = lookup ((struct ia64_table_entry *) di->u.ti.table_data, in unw_search_ia64_unwind_table()
275 di->u.ti.table_len * sizeof (unw_word_t), in unw_search_ia64_unwind_table()
281 segbase = di->u.rti.segbase; in unw_search_ia64_unwind_table()
282 if ((ret = remote_lookup (as, di->u.rti.table_data, in unw_search_ia64_unwind_table()
283 di->u.rti.table_len * sizeof (unw_word_t), in unw_search_ia64_unwind_table()
298 pi->gp = di->gp; in unw_search_ia64_unwind_table()
363 Debug (4, "handler ptr @ offset=%lx, gp=%lx\n", handler_offset, di->gp); in unw_search_ia64_unwind_table()
364 if ((read_mem (as, handler_offset + di->gp, &pi->handler, arg)) < 0) in unw_search_ia64_unwind_table()
368 pi->gp = di->gp; in unw_search_ia64_unwind_table()
369 pi->format = di->format; in unw_search_ia64_unwind_table()
404 get_kernel_table (unw_dyn_info_t *di) in get_kernel_table() argument
425 di->format = UNW_INFO_FORMAT_TABLE; in get_kernel_table()
426 di->gp = 0; in get_kernel_table()
427 di->start_ip = ktab[0].start_offset; in get_kernel_table()
428 di->end_ip = etab[-1].end_offset; in get_kernel_table()
429 di->u.ti.name_ptr = (unw_word_t) "<kernel>"; in get_kernel_table()
430 di->u.ti.segbase = 0; in get_kernel_table()
431 di->u.ti.table_len = ((char *) etab - (char *) ktab) / sizeof (unw_word_t); in get_kernel_table()
432 di->u.ti.table_data = (unw_word_t *) ktab; in get_kernel_table()
435 (char *) di->u.ti.name_ptr, di->start_ip, di->end_ip, in get_kernel_table()
436 di->u.ti.segbase, di->u.ti.table_len); in get_kernel_table()
444 _Uia64_get_kernel_table (unw_dyn_info_t *di) in _Uia64_get_kernel_table() argument
452 memcpy (di, &kernel_table, sizeof (*di)); in _Uia64_get_kernel_table()
474 unw_dyn_info_t *di = ptr; in callback() local
500 if (di->u.ti.segbase >= vaddr in callback()
501 && di->u.ti.segbase < vaddr + phdr->p_memsz) in callback()
541 di->gp = dyn->d_un.d_ptr; in callback()
548 di->gp = current_gp(); in callback()
549 di->format = UNW_INFO_FORMAT_TABLE; in callback()
550 di->start_ip = p_text->p_vaddr + load_base; in callback()
551 di->end_ip = p_text->p_vaddr + load_base + p_text->p_memsz; in callback()
552 di->u.ti.name_ptr = (unw_word_t) info->dlpi_name; in callback()
553 di->u.ti.table_data = (void *) (p_unwind->p_vaddr + load_base); in callback()
554 di->u.ti.table_len = p_unwind->p_memsz / sizeof (unw_word_t); in callback()
555 di->u.ti.segbase = segbase; in callback()
558 "table_data=%p\n", (char *) di->u.ti.name_ptr, di->u.ti.segbase, in callback()
559 di->u.ti.table_len, di->gp, di->u.ti.table_data); in callback()
651 unw_dyn_info_t di, *dip = &di; in tdep_find_proc_info() local
655 di.u.ti.segbase = ip; /* this is cheap... */ in tdep_find_proc_info()
658 ret = dl_iterate_phdr (callback, &di); in tdep_find_proc_info()
675 unw_dyn_info_t di, *dip = &di; in tdep_find_proc_info()
687 di.format = UNW_INFO_FORMAT_TABLE; in tdep_find_proc_info()
688 di.start_ip = lmd.text_base; in tdep_find_proc_info()
689 di.end_ip = lmd.text_base + lmd.text_size; in tdep_find_proc_info()
690 di.gp = lmd.linkage_ptr; in tdep_find_proc_info()
691 di.u.ti.name_ptr = 0; /* no obvious table-name available */ in tdep_find_proc_info()
692 di.u.ti.segbase = lmd.text_base; in tdep_find_proc_info()
709 di.u.ti.table_data = (unw_word_t *) (di.u.ti.segbase + uhdr->start_offset); in tdep_find_proc_info()
710 di.u.ti.table_len = ((uhdr->end_offset - uhdr->start_offset) in tdep_find_proc_info()
714 "table_data=%p\n", (char *) di.u.ti.name_ptr, di.u.ti.segbase, in tdep_find_proc_info()
715 di.u.ti.table_len, di.gp, di.u.ti.table_data); in tdep_find_proc_info()