Lines Matching refs:pcache
415 static int probe_cache__open(struct probe_cache *pcache, const char *target, in probe_cache__open() argument
470 pcache->fd = fd; in probe_cache__open()
475 static int probe_cache__load(struct probe_cache *pcache) in probe_cache__load() argument
482 fddup = dup(pcache->fd); in probe_cache__load()
516 list_add_tail(&entry->node, &pcache->entries); in probe_cache__load()
532 struct probe_cache *pcache = zalloc(sizeof(*pcache)); in probe_cache__alloc() local
534 if (pcache) { in probe_cache__alloc()
535 INIT_LIST_HEAD(&pcache->entries); in probe_cache__alloc()
536 pcache->fd = -EINVAL; in probe_cache__alloc()
538 return pcache; in probe_cache__alloc()
541 void probe_cache__purge(struct probe_cache *pcache) in probe_cache__purge() argument
545 list_for_each_entry_safe(entry, n, &pcache->entries, node) { in probe_cache__purge()
551 void probe_cache__delete(struct probe_cache *pcache) in probe_cache__delete() argument
553 if (!pcache) in probe_cache__delete()
556 probe_cache__purge(pcache); in probe_cache__delete()
557 if (pcache->fd > 0) in probe_cache__delete()
558 close(pcache->fd); in probe_cache__delete()
559 free(pcache); in probe_cache__delete()
564 struct probe_cache *pcache = probe_cache__alloc(); in probe_cache__new() local
567 if (!pcache) in probe_cache__new()
570 ret = probe_cache__open(pcache, target, nsi); in probe_cache__new()
576 ret = probe_cache__load(pcache); in probe_cache__new()
582 return pcache; in probe_cache__new()
585 probe_cache__delete(pcache); in probe_cache__new()
601 probe_cache__find(struct probe_cache *pcache, struct perf_probe_event *pev) in probe_cache__find() argument
609 for_each_probe_cache_entry(entry, pcache) { in probe_cache__find()
634 probe_cache__find_by_name(struct probe_cache *pcache, in probe_cache__find_by_name() argument
639 for_each_probe_cache_entry(entry, pcache) { in probe_cache__find_by_name()
651 int probe_cache__add_entry(struct probe_cache *pcache, in probe_cache__add_entry() argument
659 if (!pcache || !pev || !tevs || ntevs <= 0) { in probe_cache__add_entry()
665 entry = probe_cache__find(pcache, pev); in probe_cache__add_entry()
686 list_add_tail(&entry->node, &pcache->entries); in probe_cache__add_entry()
807 int probe_cache__scan_sdt(struct probe_cache *pcache, const char *pathname) in probe_cache__scan_sdt() argument
827 entry = probe_cache__find_by_name(pcache, sdtgrp, note->name); in probe_cache__scan_sdt()
841 list_add_tail(&entry->node, &pcache->entries); in probe_cache__scan_sdt()
902 int probe_cache__commit(struct probe_cache *pcache) in probe_cache__commit() argument
908 ret = lseek(pcache->fd, 0, SEEK_SET); in probe_cache__commit()
912 ret = ftruncate(pcache->fd, 0); in probe_cache__commit()
916 for_each_probe_cache_entry(entry, pcache) { in probe_cache__commit()
917 ret = probe_cache_entry__write(entry, pcache->fd); in probe_cache__commit()
938 int probe_cache__filter_purge(struct probe_cache *pcache, in probe_cache__filter_purge() argument
943 list_for_each_entry_safe(entry, tmp, &pcache->entries, node) { in probe_cache__filter_purge()
953 static int probe_cache__show_entries(struct probe_cache *pcache, in probe_cache__show_entries() argument
958 for_each_probe_cache_entry(entry, pcache) { in probe_cache__show_entries()
968 struct probe_cache *pcache; in probe_cache__show_all_caches() local
982 pcache = probe_cache__new(nd->s, NULL); in probe_cache__show_all_caches()
983 if (!pcache) in probe_cache__show_all_caches()
985 if (!list_empty(&pcache->entries)) { in probe_cache__show_all_caches()
989 probe_cache__show_entries(pcache, filter); in probe_cache__show_all_caches()
991 probe_cache__delete(pcache); in probe_cache__show_all_caches()