Lines Matching refs:image
60 pmcstat_image_add_symbols(struct pmcstat_image *image, Elf *e, in pmcstat_image_add_symbols() argument
92 firsttime = image->pi_symbols == NULL; in pmcstat_image_add_symbols()
93 symptr = reallocarray(image->pi_symbols, in pmcstat_image_add_symbols()
94 image->pi_symcount + nfuncsyms, sizeof(*symptr)); in pmcstat_image_add_symbols()
95 if (symptr == image->pi_symbols) /* realloc() failed. */ in pmcstat_image_add_symbols()
97 image->pi_symbols = symptr; in pmcstat_image_add_symbols()
102 symptr += image->pi_symcount; in pmcstat_image_add_symbols()
113 if (!firsttime && pmcstat_symbol_search(image, sym.st_value)) in pmcstat_image_add_symbols()
139 symptr->ps_start = sym.st_value - image->pi_vaddr; in pmcstat_image_add_symbols()
146 image->pi_symcount += newsyms; in pmcstat_image_add_symbols()
147 if (image->pi_symcount == 0) in pmcstat_image_add_symbols()
156 image->pi_symbols = reallocarray(image->pi_symbols, in pmcstat_image_add_symbols()
157 image->pi_symcount, sizeof(*symptr)); in pmcstat_image_add_symbols()
162 qsort(image->pi_symbols, image->pi_symcount, sizeof(*symptr), in pmcstat_image_add_symbols()
170 for (symptr = image->pi_symbols; in pmcstat_image_add_symbols()
171 symptr < image->pi_symbols + (image->pi_symcount - 1); in pmcstat_image_add_symbols()
183 pmcstat_image_link(struct pmcstat_process *pp, struct pmcstat_image *image, in pmcstat_image_link() argument
193 assert(image->pi_type != PMCSTAT_IMAGE_UNKNOWN && in pmcstat_image_link()
194 image->pi_type != PMCSTAT_IMAGE_INDETERMINABLE); in pmcstat_image_link()
201 if (image->pi_start == 0 && image->pi_end == 0) in pmcstat_image_link()
232 offset = start - image->pi_vaddr; in pmcstat_image_link()
233 pcmnew->ppm_lowpc = image->pi_start + offset; in pmcstat_image_link()
234 pcmnew->ppm_highpc = image->pi_end + offset; in pmcstat_image_link()
235 pcmnew->ppm_image = image; in pmcstat_image_link()
257 pmcstat_image_get_aout_params(struct pmcstat_image *image, in pmcstat_image_get_aout_params() argument
266 path = pmcstat_string_unintern(image->pi_execpath); in pmcstat_image_get_aout_params()
269 if (image->pi_iskernelmodule) in pmcstat_image_get_aout_params()
281 image->pi_type = PMCSTAT_IMAGE_INDETERMINABLE; in pmcstat_image_get_aout_params()
293 image->pi_type = PMCSTAT_IMAGE_AOUT; in pmcstat_image_get_aout_params()
307 pmcstat_image_get_elf_params(struct pmcstat_image *image, in pmcstat_image_get_elf_params() argument
324 assert(image->pi_type == PMCSTAT_IMAGE_UNKNOWN); in pmcstat_image_get_elf_params()
326 image->pi_start = minva = ~(uintfptr_t) 0; in pmcstat_image_get_elf_params()
327 image->pi_end = maxva = (uintfptr_t) 0; in pmcstat_image_get_elf_params()
328 image->pi_type = image_type = PMCSTAT_IMAGE_INDETERMINABLE; in pmcstat_image_get_elf_params()
329 image->pi_isdynamic = 0; in pmcstat_image_get_elf_params()
330 image->pi_dynlinkerpath = NULL; in pmcstat_image_get_elf_params()
331 image->pi_vaddr = 0; in pmcstat_image_get_elf_params()
333 path = pmcstat_string_unintern(image->pi_execpath); in pmcstat_image_get_elf_params()
376 !(image->pi_iskernelmodule && eh.e_type == ET_REL)) { in pmcstat_image_get_elf_params()
408 image->pi_isdynamic = 1; in pmcstat_image_get_elf_params()
417 image->pi_dynlinkerpath = in pmcstat_image_get_elf_params()
424 image->pi_vaddr = ph.p_vaddr & (-ph.p_align); in pmcstat_image_get_elf_params()
455 pmcstat_image_add_symbols(image, e, scn, &sh); in pmcstat_image_get_elf_params()
458 image->pi_start = minva; in pmcstat_image_get_elf_params()
459 image->pi_end = maxva; in pmcstat_image_get_elf_params()
460 image->pi_type = image_type; in pmcstat_image_get_elf_params()
461 image->pi_fullpath = pmcstat_string_intern(buffer); in pmcstat_image_get_elf_params()
469 image->pi_name = pmcstat_string_intern(endp); in pmcstat_image_get_elf_params()
484 pmcstat_image_determine_type(struct pmcstat_image *image, in pmcstat_image_determine_type() argument
487 assert(image->pi_type == PMCSTAT_IMAGE_UNKNOWN); in pmcstat_image_determine_type()
490 if (image->pi_type == PMCSTAT_IMAGE_UNKNOWN) in pmcstat_image_determine_type()
491 pmcstat_image_get_elf_params(image, args); in pmcstat_image_determine_type()
492 if (image->pi_type == PMCSTAT_IMAGE_UNKNOWN) in pmcstat_image_determine_type()
493 pmcstat_image_get_aout_params(image, args); in pmcstat_image_determine_type()
499 if (image->pi_type == PMCSTAT_IMAGE_UNKNOWN) in pmcstat_image_determine_type()
500 image->pi_type = PMCSTAT_IMAGE_INDETERMINABLE; in pmcstat_image_determine_type()