Lines Matching refs:fp
81 ctf_lookup_by_name(ctf_file_t *fp, const char *name) in ctf_lookup_by_name() argument
92 return (ctf_set_errno(fp, EINVAL)); in ctf_lookup_by_name()
114 ntype = fp->ctf_ptrtab[LCTF_TYPE_TO_INDEX(fp, type)]; in ctf_lookup_by_name()
116 ntype = ctf_type_resolve(fp, type); in ctf_lookup_by_name()
117 if (ntype == CTF_ERR || (ntype = fp->ctf_ptrtab[ in ctf_lookup_by_name()
118 LCTF_TYPE_TO_INDEX(fp, ntype)]) == 0) { in ctf_lookup_by_name()
119 (void) ctf_set_errno(fp, ECTF_NOTYPE); in ctf_lookup_by_name()
124 type = LCTF_INDEX_TO_TYPE(fp, ntype, in ctf_lookup_by_name()
125 (fp->ctf_flags & LCTF_CHILD)); in ctf_lookup_by_name()
134 for (lp = fp->ctf_lookups; lp->ctl_prefix != NULL; lp++) { in ctf_lookup_by_name()
147 if ((hp = ctf_hash_lookup(lp->ctl_hash, fp, p, in ctf_lookup_by_name()
149 (void) ctf_set_errno(fp, ECTF_NOTYPE); in ctf_lookup_by_name()
159 (void) ctf_set_errno(fp, ECTF_NOTYPE); in ctf_lookup_by_name()
165 return (ctf_set_errno(fp, ECTF_SYNTAX)); in ctf_lookup_by_name()
170 if (fp->ctf_parent != NULL && in ctf_lookup_by_name()
171 (ptype = ctf_lookup_by_name(fp->ctf_parent, name)) != CTF_ERR) in ctf_lookup_by_name()
182 ctf_lookup_by_symbol(ctf_file_t *fp, ulong_t symidx) in ctf_lookup_by_symbol() argument
184 const ctf_sect_t *sp = &fp->ctf_symtab; in ctf_lookup_by_symbol()
188 return (ctf_set_errno(fp, ECTF_NOSYMTAB)); in ctf_lookup_by_symbol()
190 if (symidx >= fp->ctf_nsyms) in ctf_lookup_by_symbol()
191 return (ctf_set_errno(fp, EINVAL)); in ctf_lookup_by_symbol()
196 return (ctf_set_errno(fp, ECTF_NOTDATA)); in ctf_lookup_by_symbol()
200 return (ctf_set_errno(fp, ECTF_NOTDATA)); in ctf_lookup_by_symbol()
203 if (fp->ctf_sxlate[symidx] == -1u) in ctf_lookup_by_symbol()
204 return (ctf_set_errno(fp, ECTF_NOTYPEDAT)); in ctf_lookup_by_symbol()
206 type = *(uint_t *)((uintptr_t)fp->ctf_buf + fp->ctf_sxlate[symidx]); in ctf_lookup_by_symbol()
208 return (ctf_set_errno(fp, ECTF_NOTYPEDAT)); in ctf_lookup_by_symbol()
221 ctf_file_t *fp = *fpp; /* caller passes in starting CTF container */ in ctf_lookup_by_id() local
223 if ((fp->ctf_flags & LCTF_CHILD) && LCTF_TYPE_ISPARENT(fp, type)) { in ctf_lookup_by_id()
224 if (fp->ctf_parent == NULL) { in ctf_lookup_by_id()
230 type = LCTF_TYPE_TO_INDEX(fp, type); in ctf_lookup_by_id()
231 fp = fp->ctf_parent; in ctf_lookup_by_id()
233 type = LCTF_TYPE_TO_INDEX(fp, type); in ctf_lookup_by_id()
236 if (type > 0 && type <= fp->ctf_typemax) { in ctf_lookup_by_id()
237 *fpp = fp; /* function returns ending CTF container */ in ctf_lookup_by_id()
238 return (LCTF_INDEX_TO_TYPEPTR(fp, type)); in ctf_lookup_by_id()
241 (void) ctf_set_errno(fp, ECTF_BADID); in ctf_lookup_by_id()
250 ctf_func_info(ctf_file_t *fp, ulong_t symidx, ctf_funcinfo_t *fip) in ctf_func_info() argument
252 const ctf_sect_t *sp = &fp->ctf_symtab; in ctf_func_info()
257 return (ctf_set_errno(fp, ECTF_NOSYMTAB)); in ctf_func_info()
259 if (symidx >= fp->ctf_nsyms) in ctf_func_info()
260 return (ctf_set_errno(fp, EINVAL)); in ctf_func_info()
265 return (ctf_set_errno(fp, ECTF_NOTFUNC)); in ctf_func_info()
269 return (ctf_set_errno(fp, ECTF_NOTFUNC)); in ctf_func_info()
272 if (fp->ctf_sxlate[symidx] == -1u) in ctf_func_info()
273 return (ctf_set_errno(fp, ECTF_NOFUNCDAT)); in ctf_func_info()
275 dp = (uint_t *)((uintptr_t)fp->ctf_buf + fp->ctf_sxlate[symidx]); in ctf_func_info()
278 kind = LCTF_INFO_KIND(fp, info); in ctf_func_info()
279 n = LCTF_INFO_VLEN(fp, info); in ctf_func_info()
282 return (ctf_set_errno(fp, ECTF_NOFUNCDAT)); in ctf_func_info()
285 return (ctf_set_errno(fp, ECTF_CORRUPT)); in ctf_func_info()
304 ctf_func_args(ctf_file_t *fp, ulong_t symidx, uint_t argc, ctf_id_t *argv) in ctf_func_args() argument
309 if (ctf_func_info(fp, symidx, &f) == CTF_ERR) in ctf_func_args()
316 dp = (uint_t *)((uintptr_t)fp->ctf_buf + fp->ctf_sxlate[symidx]) + 2; in ctf_func_args()