]> git.ipfire.org Git - thirdparty/elfutils.git/commit
DRAWF libdwfl: Dwfl* caching via dwfl_process_tracker
authorSerhei Makarov <serhei@serhei.io>
Thu, 13 Feb 2025 21:31:54 +0000 (16:31 -0500)
committerSerhei Makarov <serhei@serhei.io>
Thu, 13 Feb 2025 21:31:54 +0000 (16:31 -0500)
commit97df2fc613a7a608e3605f8aca42376148b93fb9
treec9a0a45eb59fcdf98540b982afba7127c1893314
parentb7d1fd011c0b21c43418edbabc4a438facfc436c
DRAWF libdwfl: Dwfl* caching via dwfl_process_tracker

* libdwfl/libdwflP.h (dwfltracker_dwfl_info): New typedef, provides
  indirection to allow a dwfltab entry to be invalidated.
  (struct Dwfl_Process_Tracker): add dwfltab.
  (__libdwfl_add_dwfl_to_tracker): New function.
  (__libdwfl_remove_dwfl_from_tracker): New function.
* libdwfl/dwfl_process_tracker_dwfltab.h: New file.
* libdwfl/dwfl_process_tracker_dwfltab.c: New file.
* libdwfl/dwfl_process_tracker.c (dwfl_process_tracker_begin): Init dwfltab.
  (__libdwfl_add_dwfl_to_tracker): New function; add dwfl to dwfltab.
  (__libdwfl_remove_dwfl_from_tracker): New function; invalidate dwfl entry.
  (dwfl_process_tracker_end): Clean up dwfltab.
* libdwfl/dwfl_frame.c (dwfl_attach_state): Call __libdwfl_add_dwfl_to_tracker.
* libdwfl/dwfl_end.c (dwfl_end): Call __libdwfl_remove_dwfl_from_tracker.
* libdwfl/Makefile.am (libdwfl_a_SOURCES): Add dwfl_process_tracker_dwfltab.c.
libdwfl/Makefile.am
libdwfl/dwfl_end.c
libdwfl/dwfl_frame.c
libdwfl/dwfl_process_tracker.c
libdwfl/dwfl_process_tracker_dwfltab.c [new file with mode: 0644]
libdwfl/dwfl_process_tracker_dwfltab.h [new file with mode: 0644]
libdwfl/dwfl_process_tracker_elftab.c
libdwfl/libdwflP.h