Lines Matching refs:pcache
407 static int probe_cache__open(struct probe_cache *pcache, const char *target, in probe_cache__open() argument
462 pcache->fd = fd; in probe_cache__open()
467 static int probe_cache__load(struct probe_cache *pcache) in probe_cache__load() argument
474 fddup = dup(pcache->fd); in probe_cache__load()
508 list_add_tail(&entry->node, &pcache->entries); in probe_cache__load()
524 struct probe_cache *pcache = zalloc(sizeof(*pcache)); in probe_cache__alloc() local
526 if (pcache) { in probe_cache__alloc()
527 INIT_LIST_HEAD(&pcache->entries); in probe_cache__alloc()
528 pcache->fd = -EINVAL; in probe_cache__alloc()
530 return pcache; in probe_cache__alloc()
533 void probe_cache__purge(struct probe_cache *pcache) in probe_cache__purge() argument
537 list_for_each_entry_safe(entry, n, &pcache->entries, node) { in probe_cache__purge()
543 void probe_cache__delete(struct probe_cache *pcache) in probe_cache__delete() argument
545 if (!pcache) in probe_cache__delete()
548 probe_cache__purge(pcache); in probe_cache__delete()
549 if (pcache->fd > 0) in probe_cache__delete()
550 close(pcache->fd); in probe_cache__delete()
551 free(pcache); in probe_cache__delete()
556 struct probe_cache *pcache = probe_cache__alloc(); in probe_cache__new() local
559 if (!pcache) in probe_cache__new()
562 ret = probe_cache__open(pcache, target, nsi); in probe_cache__new()
568 ret = probe_cache__load(pcache); in probe_cache__new()
574 return pcache; in probe_cache__new()
577 probe_cache__delete(pcache); in probe_cache__new()
593 probe_cache__find(struct probe_cache *pcache, struct perf_probe_event *pev) in probe_cache__find() argument
601 for_each_probe_cache_entry(entry, pcache) { in probe_cache__find()
626 probe_cache__find_by_name(struct probe_cache *pcache, in probe_cache__find_by_name() argument
631 for_each_probe_cache_entry(entry, pcache) { in probe_cache__find_by_name()
643 int probe_cache__add_entry(struct probe_cache *pcache, in probe_cache__add_entry() argument
651 if (!pcache || !pev || !tevs || ntevs <= 0) { in probe_cache__add_entry()
657 entry = probe_cache__find(pcache, pev); in probe_cache__add_entry()
678 list_add_tail(&entry->node, &pcache->entries); in probe_cache__add_entry()
814 int probe_cache__scan_sdt(struct probe_cache *pcache, const char *pathname) in probe_cache__scan_sdt() argument
834 entry = probe_cache__find_by_name(pcache, sdtgrp, note->name); in probe_cache__scan_sdt()
848 list_add_tail(&entry->node, &pcache->entries); in probe_cache__scan_sdt()
909 int probe_cache__commit(struct probe_cache *pcache) in probe_cache__commit() argument
915 ret = lseek(pcache->fd, 0, SEEK_SET); in probe_cache__commit()
919 ret = ftruncate(pcache->fd, 0); in probe_cache__commit()
923 for_each_probe_cache_entry(entry, pcache) { in probe_cache__commit()
924 ret = probe_cache_entry__write(entry, pcache->fd); in probe_cache__commit()
945 int probe_cache__filter_purge(struct probe_cache *pcache, in probe_cache__filter_purge() argument
950 list_for_each_entry_safe(entry, tmp, &pcache->entries, node) { in probe_cache__filter_purge()
960 static int probe_cache__show_entries(struct probe_cache *pcache, in probe_cache__show_entries() argument
965 for_each_probe_cache_entry(entry, pcache) { in probe_cache__show_entries()
975 struct probe_cache *pcache; in probe_cache__show_all_caches() local
989 pcache = probe_cache__new(nd->s, NULL); in probe_cache__show_all_caches()
990 if (!pcache) in probe_cache__show_all_caches()
992 if (!list_empty(&pcache->entries)) { in probe_cache__show_all_caches()
996 probe_cache__show_entries(pcache, filter); in probe_cache__show_all_caches()
998 probe_cache__delete(pcache); in probe_cache__show_all_caches()