• Home
  • Raw
  • Download

Lines Matching refs:sf

82 do_match(struct sfile const * sf, cookie_t cookie, cookie_t app_cookie,  in do_match()  argument
90 if (sf->kernel != ki) in do_match()
94 if (sf->tid != tid || sf->tgid != tgid) in do_match()
99 if (sf->cpu != cpu) in do_match()
104 if (sf->app_cookie != app_cookie) in do_match()
114 if (sf->anon != anon) in do_match()
117 return sf->cookie == cookie; in do_match()
131 sfile_equal(struct sfile const * sf, struct sfile const * sf2) in sfile_equal() argument
133 return do_match(sf, sf2->cookie, sf2->app_cookie, sf2->kernel, in sfile_equal()
139 is_sf_ignored(struct sfile const * sf) in is_sf_ignored() argument
141 if (sf->kernel) { in is_sf_ignored()
142 if (!is_image_ignored(sf->kernel->name)) in is_sf_ignored()
148 return is_cookie_ignored(sf->app_cookie); in is_sf_ignored()
154 if (sf->anon || is_cookie_ignored(sf->cookie)) in is_sf_ignored()
155 return is_cookie_ignored(sf->app_cookie); in is_sf_ignored()
167 struct sfile * sf; in create_sfile() local
169 sf = xmalloc(sizeof(struct sfile)); in create_sfile()
171 sf->hashval = hash; in create_sfile()
176 sf->cookie = trans->in_kernel ? INVALID_COOKIE : trans->cookie; in create_sfile()
177 sf->app_cookie = INVALID_COOKIE; in create_sfile()
178 sf->tid = (pid_t)-1; in create_sfile()
179 sf->tgid = (pid_t)-1; in create_sfile()
180 sf->cpu = 0; in create_sfile()
181 sf->kernel = ki; in create_sfile()
182 sf->anon = trans->anon; in create_sfile()
185 odb_init(&sf->files[i]); in create_sfile()
188 opd_ext_sfile_create(sf); in create_sfile()
190 sf->ext_files = NULL; in create_sfile()
193 list_init(&sf->cg_hash[i]); in create_sfile()
196 sf->tid = trans->tid; in create_sfile()
198 sf->tgid = trans->tgid; in create_sfile()
201 sf->cpu = trans->cpu; in create_sfile()
204 sf->app_cookie = trans->app_cookie; in create_sfile()
206 sf->ignored = is_sf_ignored(sf); in create_sfile()
208 sf->embedded_offset = trans->embedded_offset; in create_sfile()
215 sf->app_cookie = trans->app_cookie; in create_sfile()
216 return sf; in create_sfile()
222 struct sfile * sf; in sfile_find() local
262 sf = list_entry(pos, struct sfile, hash); in sfile_find()
263 if (trans_match(trans, sf, ki)) { in sfile_find()
264 sfile_get(sf); in sfile_find()
269 sf = create_sfile(hash, trans, ki); in sfile_find()
270 list_add(&sf->hash, &hashes[hash]); in sfile_find()
273 sfile_put(sf); in sfile_find()
274 return sf; in sfile_find()
299 struct sfile * sf = trans->current; in get_file() local
315 file = &sf->files[trans->event]; in get_file()
325 list_for_each(pos, &sf->cg_hash[hash]) { in get_file()
335 list_add(&cg->hash, &sf->cg_hash[hash]); in get_file()
340 opd_open_sample_file(file, last, sf, trans->event, is_cg); in get_file()
350 static void verbose_print_sample(struct sfile * sf, vma_t pc, uint counter) in verbose_print_sample() argument
352 char const * app = verbose_cookie(sf->app_cookie); in verbose_print_sample()
354 if (sf->anon) { in verbose_print_sample()
356 (unsigned int)sf->anon->tgid, in verbose_print_sample()
357 sf->anon->start, sf->anon->end); in verbose_print_sample()
358 } else if (sf->kernel) { in verbose_print_sample()
359 printf("kern (name %s, 0x%llx-0x%llx), ", sf->kernel->name, in verbose_print_sample()
360 sf->kernel->start, sf->kernel->end); in verbose_print_sample()
362 printf("%s(%llx), ", verbose_cookie(sf->cookie), sf->cookie); in verbose_print_sample()
364 printf("app %s(%llx)", app, sf->app_cookie); in verbose_print_sample()
477 static int close_sfile(struct sfile * sf, void * data __attribute__((unused))) in close_sfile() argument
483 odb_close(&sf->files[i]); in close_sfile()
485 opd_ext_sfile_close(sf); in close_sfile()
491 static void kill_sfile(struct sfile * sf) in kill_sfile() argument
493 close_sfile(sf, NULL); in kill_sfile()
494 list_del(&sf->hash); in kill_sfile()
495 list_del(&sf->lru); in kill_sfile()
499 static int sync_sfile(struct sfile * sf, void * data __attribute__((unused))) in sync_sfile() argument
504 odb_sync(&sf->files[i]); in sync_sfile()
506 opd_ext_sfile_sync(sf); in sync_sfile()
512 static int is_sfile_kernel(struct sfile * sf, void * data __attribute__((unused))) in is_sfile_kernel() argument
514 return !!sf->kernel; in is_sfile_kernel()
518 static int is_sfile_anon(struct sfile * sf, void * data) in is_sfile_anon() argument
520 return sf->anon == data; in is_sfile_anon()
527 for_one_sfile(struct sfile * sf, sfile_func func, void * data) in for_one_sfile() argument
530 int free_sf = func(sf, data); in for_one_sfile()
535 list_for_each_safe(pos, pos2, &sf->cg_hash[i]) { in for_one_sfile()
547 kill_sfile(sf); in for_one_sfile()
548 free(sf); in for_one_sfile()
559 struct sfile * sf = list_entry(pos, struct sfile, lru); in for_each_sfile() local
560 for_one_sfile(sf, func, data); in for_each_sfile()
612 struct sfile * sf; in sfile_lru_clear() local
615 sf = list_entry(pos, struct sfile, lru); in sfile_lru_clear()
616 for_one_sfile(sf, (sfile_func)always_true, NULL); in sfile_lru_clear()
623 void sfile_get(struct sfile * sf) in sfile_get() argument
625 if (sf) in sfile_get()
626 list_del(&sf->lru); in sfile_get()
630 void sfile_put(struct sfile * sf) in sfile_put() argument
632 if (sf) in sfile_put()
633 list_add_tail(&sf->lru, &lru_list); in sfile_put()