Changelog for powertop: 2.15 -> 2.16 6147262 release: v2.16 b44c8f2 calibrate: replace xset DPMS with sysfs-first display power control b9ee1c1 extech: annotate samples_mutex with locking comment a6b38d5 one more code annotation comment eb7b708 src: add subclass navigation tables to all parent class headers 6aa7c4b tunable: Use default member initializers for all class fields b122429 wakeup: Use default member initializers for all class fields 694c315 refactor: Convert RAPL device classes to RAII with std::unique_ptr 30e3757 refactor: Convert device_consumer to RAII with std::unique_ptr 6d56a12 cpu, display: add subclass tables to parent class headers be46737 code guidelines update 04d97b7 cpu: skip empty cores in Frequency Stats display af6bf3e cpu: fix Frequency Stats bar width and intra-core spacing c2096d5 cpu: redesign Frequency Stats TUI with progress bars af474ad cpu_linux: fix C0 active column misalignment in Idle stats TUI 0a183da gitignore: ignore clang-native.ini ce1307c src: replace C headers with C++ equivalents throughout ff73795 lib.cpp: clean up and deduplicate include directives 7694edd doc: replace dead 01.org links in man page 2c1e4e7 cpu.cpp: add null check before accessing system_level.children[0] c9c2083 cpu.cpp: fix potential memory leak in GPU handlers 81b7335 thread safety: use atomic and once_flag for _max_cpu and pretty_prints 4f8f6d1 refactor(lib.cpp): reorganize and deduplicate include headers ee82998 Merge pull request #209 from fenrus75/fix-test 45431d5 src: add missing in lib.h and test_framework c79c847 xe_gpu: add missing include for R_OK aab7b38 doc: bring powertop.8 manpage up to date for v2.16 ad2e51c doc: add --auto-tune-dump to manpage 5fb15ba persistent: fix noisy startup messages and restore bundle_saved flag d06b421 tuning: add AMD GPU panel power savings tunable 45a1046 gpu-tab: require xe hwmon to be present before showing the tab 3133114 gpu-tab: only show GPU tab for Xe GPUs f9e2bb4 update notes f0820e6 report-formatter-csv: remove unused csv_need_quotes field ea19e8e review: fix style violations in changes since v2.16-rc2 0608205 update release checklist b3a2725 release-checklist: remove ninja | grep anti-pattern 2889994 release: v2.16-rc3 preparation 6eb3097 gpu-tab: use bold attribute for idle/C6 bar green segment 013f43f gpu-tab: combine C0/C6 idle bars into one two-colour bar c35efcb gpu-tab: show xe power profile on Power Overview section 91c50fc meson: replace deprecated meson.source_root/build_root calls 17acebf gpu-tab: replace policy markers with four-segment colour bar f072c54 gpu-tab: start frequency bars at 0 instead of hw_min 5ee54da gpu-tab: always show scale_max right-aligned on progress bar cdac168 missing file 86e880a trim local.md back 245877f local.md: record Xe GPU coverage results and linker gotchas 9873257 tests/devices: add Xe GPU test coverage a56de81 src/lib.h: document trace_tool.py spoof command for each interceptable function 7a7f1d9 scripts/test_tools/trace_tool.py: improve add command ergonomics 4f49f4a ignore gcov files bfb5e3e make a C++ wrapper for access() so that we can intercept for the test framework 6f75841 tests: add access() records to device test fixtures fce5715 gpu-tab: add GT-C6 residency to Idle / Busy section 9daf37f gpu-tab: add report_gpu_stats() for HTML/CSV/MD reports e057a8d gpu-tab: add Power Overview section; scan all xe hwmon power channels 20dfa4f gpu-tab: move idle/busy measurement into xe_core data class 9186840 gpu-tab: add Fan Speeds section 8faa89a gpu-tab: use > and < as range markers instead of ^ 971dd47 gpu-tab: fix bar alignment, use hz_to_human, dynamic bar width 39221eb gpu-tab: add Frequency Overview section with generic progress bar 57192ed display: use translation length for tab position advance f4ed9d3 gpu-tab: add conditional GPU tab infrastructure 188a4cb tuning: group and sort tunables by type in source b14404c tuning: convert remaining numeric tunables to numeric_sysfs_tunable 584f297 tuning: add numeric_sysfs_tunable with HIB/LIB comparison; add xe serialize 777badb tuning: extract_bracket_selection returns content unchanged if no brackets 2463b7f tuning: add Xe GPU power_profile tunable; fix multi-wildcard and bracket-selection 4847ca3 xe-gpu: add fan RPM reporting to device stats tab 6a7e4f0 devices,cpu: add Intel Xe GPU support 4dbe01a relnotes: add new tunables section; checklist: add tunable discovery step a23c45c Add Thanks section to relnotes; clarify RC update policy in checklist 4d5ea4d release-checklist: update with trial run learnings 425579e release: trial run of v2.16-rc2 release checklist e3c33b3 tests: fix always-true unsigned comparison warnings in test_lib_pci.cpp 05a1607 po: mechanically replace printf specifiers with {} in fuzzy translations ee39482 po: restore translations lost due to printf→pt_format msgid changes 7c372b2 po: add 17 missing files to POTFILES.in and regenerate translations c5904d6 po: regenerate .pot and merge into all .po files 24ac5d7 display: show "Preparing to take measurements" during init b8eabf3 fix-devfreq-test: update stubs and test overrides for const changes 82cee09 tuningsysfs: make local variables const 0c3bd72 tuningi2c: make devname and good const 49f661d tuning: const toggle_script and comparator locals e46506f tunable: dump_cmd_good() and description() const 6960ca6 tuning/runtime: const locals and constexpr max_ports fb338b7 ethernet: get_wol() const, sock local const 514cee6 bluetooth: const locals and member functions 7675ca4 report: const get_result() and const char* params in formatter hierarchy daf7d30 report-data-html: const params and local dot 7b55905 report: const locals in report.cpp d8d8ae5 work: const local t and collect_json_fields() aeac154 timer: const locals and is_deferred() accessor 8fe5dc5 processdevice: const member functions in device_consumer bbd62bb process: const locals and member functions 4f0f393 interrupt: constexpr softirqs, const locals, const member functions 4e2548b do_process: const comparator locals and constexpr summary_size f7bf89d perf: const head local and handle_event header param b1a73f5 perf_bundle: const event/sample params and comparator locals 0d181b5 persistent: make local variables const 83fc695 parameters: const params and locals in parameter/result bundle helpers 4f2d3d4 learn: make parameters and locals const dca1de6 measurement_manager: make local string variables const 063a685 measurement: const virtual methods in power_meter hierarchy 948965b usb: make local string variables const 3c5208f runtime_pm: make delta_active, delta_suspended, total_time const double 67cf793 network: make get_iface_up() and get_iface_speed() const 336a867 gpu_rapl_device: const local vars and device_present() f5518cb device: const-correct virtual method hierarchy across all device classes 6fd01ed devfreq: const member functions and local variables 8752307 backlight: make display_is_on() const dd4ab21 alsa: make active_delta and total_delta const double 026b178 ahci: make report_device_stats() const, const local util variables 3322152 rapl_interface: constexpr interval, const getters, const read_msr() 864e3a8 intel_gpu: make path local variables const bc130be intel_cpus: constexpr model table, const locals, const getter 209e4d4 frequency: make serialize() const in idle_state and frequency structs 18f5a9f dram_rapl_device: make device_present() const d96ad95 cpu_rapl_device: make device_present() const 33d9efc cpu_linux: const-correct local variables in cstate/pstate parsers 388d2b3 cpu: const-correct getter methods and cascade to derived classes f05923a abstract_cpu: make content local variable const d28b37b calibrate: const-correct local variables and parameters 9d656b3 display: const-correct parameters and local variables a772fcc devlist: make link local variable const in charge_device_to_openers() ea78f0e lib: const-correct local variables in sysfs helpers and utilities 0b7fe94 main: const-correct make_report() parameters and uid local var 8527e6e wakeup: const-correct wakeup class hierarchy 463ee5d perf: migrate perf_bundle::events to unique_ptr 641b726 cpu: migrate cstates, pstates, children to unique_ptr f7abc19 range-for: devlist.cpp and cpu/cpu.cpp loop modernization 5ab3935 range-for: parameters.cpp, learn.cpp, persistent.cpp loop modernization 511f93b range-for: calibrate.cpp, cpu_linux.cpp, i915-gpu.cpp loop modernization 1852e33 range-for: intel_cpus.cpp and perf_bundle.cpp loop modernization 6e0ee32 do_process,device_manager: range-for loop cleanup 6d4f24d abstract_cpu: range-for loop cleanup 1d15d1c devfreq: migrate dstates and all_devfreq to unique_ptr 443b9cb tuning,measurement,interrupt,wakeup: range-for loop cleanup f15a58c process: migrate all_processes to unique_ptr 6d3403b process: migrate all_interrupts to unique_ptr fa4b720 process: const-correct sort comparators and Witts() d3e7b7f tuning: migrate all_tunables/all_untunables to unique_ptr afe7ac7 wakeup: migrate wakeup_all to unique_ptr c61aa55 measurement: migrate power_meters to unique_ptr b9e1882 Added Portugues Portugal translation 940baf6 meson: add valgrind tests for csv and markdown output paths 43cf1be main,tuning,wakeup: add shutdown functions and valgrind test suite 7791a45 lib,tuning,wakeup: fix three memory leaks found by valgrind 01ef33d describe review cycle 93bf1de no ternary operators please fb53f86 tests: add coverage for parameters, process, work and device base b14d5aa style: replace ternary operators with if/else statements 5854120 display: always clear scrollbar column on redraw 29c709a display: cap scroll-down at content extent + 2-line margin fa236b2 display: use ACS_CKBOARD (medium shade) for scrollbar thumb 128ca19 display: add vertical scrollbar using content_max_y tracking 57cbef6 display: track content extent in tab_window for future pad resizing ffd6752 main: handle terminal resize via KEY_RESIZE in getch() loop f67f1c3 display: name the scroll margin constant in cursor_down() 0e8fa7c display: fix tab_bar WINDOW leak in show_tab() and reset_display() 6f57b96 lib,wakeup: fix fflush(stdout) with ncurses and spurious ncurses include f939dcf display: deduplicate prefresh() viewport coordinates b2e7e7f display,tuning,waketab: replace deprecated wattrset() with wattron/off 9245424 display: use COLS to fill tab_bar and bottom_line backgrounds 1db0930 display: redesign notification system to use status bar b6ca63f lib: remove redundant start_color notification call 97c4979 main: clamp halfdelay timeout to valid range b85eaae display: replace resetterm() with endwin(), fix inconsistent teardown b9c26e8 tests/base: fix memory leak in test_eth_tunable 45dc832 fix missing cmath include 3107bbd gemini rules cc54c93 build: fix meson warnings and deprecations abe9481 tests: add html2text verification to HTML report tests f9dca84 Update src/report/report-formatter-html.cpp 8580b4c Update src/report/report-formatter-html.cpp c1e904d reports: modernize CSV format and add python3 validation 93c5b9d bluetooth: refactor for dynamic device discovery and i18n cbea31b reports: fix HTML and CSV escaping and i18n 5a17700 batch: fix numeric safety, i18n, and various high-severity issues e06c8c3 gpu: fix sysfs residency overflow and string formatting 9bcc66b rapl: fix division guard, i18n, and error handling in rapl_interface ec7c978 devfreq: fix double-free in clear_all_devfreq 58e062d devices: add near-zero division guards for AHCI and ALSA 595a637 cpu: translate human-readable C-state labels for Intel CPUs 48266f8 rapl: add near-zero division guards for power calculation 9a173c0 ci: add GitHub Actions build workflow and Copilot instructions d08ce68 docs: comprehensive README improvements 8556114 docs: remove stale patches/ directory reference e5e87ad docs: add libtraceevent-dev dependency and Markdown output option 4b9a816 docs: update README for meson build system and general cleanup 60dead4 create more testcases 0b64c04 tests: add power_usage tests for network device defcf31 tuning/ethernet, devices/network: extract ioctls into virtual helpers 2a2eca6 tests/bluetooth: add unit tests for bt_tunable using virtual helpers 6199c64 tuning: bluetooth: extract ioctl calls into virtual helper methods d0aeda6 tuning: bluetooth: use two-level timestamped byte-counter snapshots 84fc08c tuning: fix bluetooth.cpp logic bugs and remove deprecated tools 15f65eb parameters: guard against divide-by-zero in learn_parameters 0991db8 tests: add regression test for learn_parameters divide-by-zero f160702 update local.md 7415c59 report: fix empty-row regression in CSV add_table 839f010 report: prevent report_maker from wiping document headers 5c1c67c report: fix column shifting in CSV table output for empty cells 9eefcf2 cpu: move i965_core::collect_json_fields to intel_gpu.cpp 2bdadae cpu: add division-by-zero guards in nhm_cpu::fill_pstate_line 9b3e9af report: move get_time_string to lib.cpp, use std::chrono and std::format 4faf9b9 calibrate: use std::format in try_xset_dpms instead of char buffer 0f21c9f calibrate: silence xset failures on Wayland and non-standard installs 26a2c16 drm: enumerate DRM cards dynamically instead of hardcoding card0 a9d8a9b tests: add coverage for devlist and rapl_interface; add M record support to trace_tool 425b5b7 local.md: update with new test coverage additions 681baea tests: add coverage for parse_cstates, dpms_screen_on, ahci model_name, wifi tunables 2fab1bd local.md: update list_directory section with all converted callers 12883a9 Replace all remaining opendir/readdir/closedir with list_directory() 4adae58 Add list_directory() helper with test framework support 7069bdf local: record coverage baseline and file coverage status 8906999 tests: expand coverage for powerconsumer, interrupt, abstract_cpu, cpu_linux f0dc29e tests: add NaN/zero-time_factor guards to cpu and report tests e5eb0b3 review: add division zero-guard check to rules.md a3ed3fd review: add style rule 7.1 — mandatory division zero guard 85b0f5f cpu: guard time_factor and time_delta divisions against zero 46ad5c8 clarify dev process in local.md c313434 report: Apply coding style fixes to Markdown formatter f0fd621 report: Fix Markdown table headers and resolve compiler warnings 7439eab markdown tests b1d72a4 more local.md updates a3ad251 report: Make Markdown output mdformat and mdl compliant 906d837 report: Add Markdown output support 18d0e64 lib: Replace process_glob with std::filesystem 2107756 remove debug print in rapl 3d55ba5 remove duplicate 7eb3590 tuning: Add wildcard support to sysfs_tunable b1e893c tuning: Add sysfs tunables from clr-power-tweaks b1aa43a cpu: Add missing CPUs to c8c9c10_res switch block 361a202 cpu: Add missing CPUs to c7_res switch blocks cf703fe cpu: Sort Intel CPU models by family and model 6474faa cpu: Add missing Intel CPU models from missing.md 9a62cff cpu: Add missing Intel CPU families 18 and 19 3acb151 cpu: Update Intel CPU model comments to match kernel macros 72087ec cpu: Introduce IFM macro for Intel CPU family support dca6f5c prevent negative utilization reports d5923af use ASAN by default for tests 68566ae devfreq: add destructor to free dstates on object destruction 571e996 main: fix missing #include 1510002 tests: deeper RAPL device tests using pt_gettime() T records 6271db0 rapl: replace time() with pt_gettime() for interceptable timing 0141f4f tests: add RAPL device tests for cpu/dram/gpu_rapl_device (+0.9% line, +2.2% function) aee381d tests: add i915gpu tests with RAPL stub (+0.5% line, +1.0% function) f9240cf tests: add runtime_tunable tests (8 tests, +0.5% line / +0.5% function coverage) d7ed079 tests: add timer tests (11 tests, +0.7% line / +1.5% function coverage) 6c05879 tests: add ahci device tests (4 tests, +1.4pp line coverage) 3586ec3 tests: add processdevice tests (11 tests, +2pp overall coverage) 29df5fd tests: add cpu_core and cpu_package formatting tests (18 tests) aaa2d3d local.md: update coverage baseline after libpci tests 38d3119 tests: add libpci wrapper tests, lib.cpp coverage 74.8% -> 78.9% f86635a local.md: update coverage baseline and note libpci opportunity 7c7de31 tests: extend lib.cpp coverage from 72.7% to 74.8% lines 4176458 local.md: update coverage baseline after lib.cpp improvements 5c6d9b5 tests: extend lib.cpp coverage from 59% to 72.7% lines 26551eb local.md: update coverage baseline to 20.1%/31.9% after CSV tests fe0f977 tests/report: add CSV report formatter tests; fix add_summary_list OOB eb41ae4 local.md: update coverage baseline and document report test patterns f9b64fe tests/report: add HTML report generation tests; fix read_os_release a1792e4 tests: add coverage workflow documentation and helper script 76c062d docs: update tools.md and local.md for T records and new tests 19597b8 cpudevice: add constructor, serialize, and child_devices tests b9a8cc8 opal-sensors: add tests for power() and serialize() 9019937 devfreq: add measurement cycle and utilization tests 4d598fa tuningi2c: add tests for serialize, toggle (good/bad) 7764cdd tuningusb: add tests for serialize, toggle (good/bad) 4316769 ethernet_wakeup: add tests covering all public methods 7729c14 work: add fire/done measurement tests 97855ed thinkpad: add serialize + measurement tests for thinkpad_fan and thinkpad_light a1d7cff local.md: document backlight display_is_on hook and trace_tool --path filter 225693f backlight: add serialize tests; add display_is_on() virtual hook; trace_tool: add --path filter to list 4fd732e trace_tool: add L record support and `add` command; update tools.md d905fa5 local.md: document write_log, method tests, rfkill fix, measurement patterns e9ab5ca process: add schedule_thread/deschedule_thread test d5efe6a usbdevice: add start/end_measurement test 67ebd74 rfkill: fix sysfs_path assignment and add measurement tests d98b2b5 Add write_log capture, fix rfkill sysfs_path, add sysfs_tunable method tests cbea899 Add interrupt serialize snapshot test 6b4c672 Add usbdevice serialize snapshot test 9571e52 Add runtime_pmdevice serialize snapshot test 825ff48 Add rfkill serialize snapshot test using pt_readlink() replay fee113c Replace std::filesystem::read_symlink with pt_readlink() in rfkill/network 3ef207c pt_readlink: use std::filesystem::read_symlink instead of raw readlink() 5e7ce27 Add pt_readlink() with test framework record/replay support 460ec97 Add sysfs_power_meter serialize snapshot test f96738d Add usb_wakeup serialize snapshot test 3434ea8 Add process serialize snapshot test 9c7be11 Split frequency.h/cpp out of cpu.h/cpu.cpp; add base class serialize tests af0ab7f Split measurement.cpp; add acpi_power_meter snapshot test 14945e5 Add serialize snapshot tests for sysfs_tunable 0f2ce88 Split device.cpp into device.cpp and device_manager.cpp 2495600 Add serialize snapshot test for alsa device 38ce6dc local.md: document collect_json_fields pattern and git commit file handling 7aaca6f Add collect_json_fields() to all derived classes b1c21bd Add JSON serialize() to all base classes 6c1becc testdesign.md: document kernel_function cache, callback, and fixture seeding 12e3c5d Add comprehensive tests for lib.cpp functions 1428b74 lib: document that align_string's max_sz has no effect 5fe9fe0 Add tests for pt_gettime() and align_string() d5ce7bd Add test design guide and reference it from local.md 044b9bc Add test suite infrastructure and read_file_content tests e8cd9bb Add --once command line option eb6bb6d Fix misplaced [[maybe_unused]] attributes across codebase 6188d8d cleanup: replace char buf[4096]/readlink/basename with std::filesystem d090710 style: fix missing space after if/while/for keywords and remove trailing whitespace 9158521 cleanup: replace __unused with [[maybe_unused]] in C++ files 1547c28 cleanup: remove redundant `class` keyword from `new` expressions cc98422 spelling: fix typos across source files 70ae15a Fix clang mismatched-tags warning for frequency class dd3f8b5 Fix tab_window memory leak in visual mode d202ea2 we can do OK without debugfs - not great, but enough to debug things c5eac55 Fix memory leaks reported by AddressSanitizer df3c35f Fix integer signedness comparison warning in parameters.cpp 3686ec3 Fix unused parameter warnings in test_framework.h c27fbbb nopte on git commit 8d58c81 cleanup: replace .length()>0 / .size()>0 with !empty() 47562e0 timer: remove dead timer_list class 89eaea0 perf: fix abstract handle_trace_point diagnostic a7a19be runtime: remove duplicate/unused includes 7d644b1 errors: redirect cout error output to fprintf(stderr, ...) 5521237 cleanup: replace string.h with or remove where unused 232c4f9 devices: remove duplicate and unused includes 6cfe39e wifi: remove duplicate incorrectly-quoted #include "unistd.h" 64b5733 rapl: use cached energy_status_units instead of repeated MSR reads dcc5516 wakeup: fix space indentation in constructors 800e1ae cpu_linux: replace implicit dot/dotdot skip with explicit check 7b7e88a report-csv: remove undefined add_quotes() and unused text_start member e4640e2 ahci: remove dead zero-initializers for cols and rows 1c61b54 usb: replace fixed-size snprintf buffer with std::format e990deb runtime_pm: skip devices without runtime PM sysfs files in do_bus() 8e51c22 rapl: replace atof() with std::stod() for sysfs energy reads c5756c2 cpu: fix core_num never incremented — dead-code branch in report_display_cpu_cstates ff4fc28 report: initialize title_mod in init_tune_table_attr and init_wakeup_table_attr 2868eec gpu_rapl_device: guard start/end_measurement against invalid RAPL domain 42cd827 cpu/measurement/devices: fix narrowing, TSC divide-by-zero, and underflows 2bed52b process/perf/params: fix narrowing conversions, type mismatches, and leaks bac4d99 tuning: fix dangling pointer, last_check_time cache, empty tunables underflow 3a2f934 calibrate: fix pthread UB, unchecked creates, duplicate load, missing exit ec13b5c clarify when to update local.md 801b4fe i18n: wrap all user-visible strings in _() for translation 58cffdb rules: document pt_format vs std::format and override/nullptr rules 22465b1 modernize: replace NULL with nullptr in all C++ source files ee09482 Add override specifier to all virtual method overrides 6631938 remove extra files c1c953c i915-gpu: delete gpu_rapl_device when device_present() returns false 24fc9e4 devfreq: guard against near-zero sample_time in fill_freq_utilization() 592976d devfreq: guard against empty dstates in process_time_stamps() d1d2df5 ahci: close dir before early return in model_name() 0846055 ahci: fix report_device_stats missing link-name column c37fc2d devices: change power_valid() to return bool throughout 13f12c6 backlight: guard against max_level == 0 before division b7ecd8c extech: fix data races and discard error sentinel values 1e90515 measurement: use CLOCK_MONOTONIC for elapsed-time measurement f8a77de acpi: replace /proc/acpi/battery with /sys/class/power_supply e541025 wakeup: remove stray semicolon; fix empty wakeup_all crash daa0a0f rapl: skip '.' and '..' entries in readdir loops 3da7911 cpu: guard _core null dereference in report_display_cpu_cstates ff88b59 cpu: guard against division by zero when num_cores == 0 f43f38c report: fix out-of-bounds access in add_summary_list for odd-length lists 4ace955 report: fix double_to_string truncating integer-valued doubles e490675 report: check localtime() return before passing to strftime c93b40c report: make 'ran at' string translatable ad9d3ca parameters: fix missing guards in utilization_power_valid(string) 8f5fc7f parameters: add bounds check to get_parameter_weight() 4b0b3b8 parameters: fix memory leaks when past_results buffer is full ce6fe1b perf: add required memory barrier after reading data_head b85043d perf: fix fd and mmap leak in perf_event destructor 3dae656 timer: filter zero-runtime timers in all_timers_to_all_power() f9e8201 do_process: fix copy-paste error in timer_expire_entry error message 06180ae do_process: fix static prev_time persisting across measurement cycles 00758c3 do_process: guard measurement_time divisions against near-zero 8ed8697 do_process: check tep_get_field_val return for cpu_idle state field 5b40240 process: fix inverted condition in kernel-process detection 703e39c process: fix unsigned wraparound in deschedule_thread 0ea6962 powerconsumer: guard against measurement_time < 0.00001 before dividing d4ff75b iw: check nla_parse() return in print_power_save_handler dc61c70 iw: fix resource leak in __handle_cmd on NLA_PUT_U32 failure 800f42e wifi: modernise add_wifi_tunables loop 581e8fe ethernet: check ioctl(SIOCETHTOOL) return value in good_bad and toggle ed9394e runtime: fix good_bad() — runtime PM 'on' is TUNE_BAD not TUNE_GOOD f3d3889 display: add bounds check in show_tab() before accessing tab_names b17fd9b lib: clamp npfx in fmt_prefix to prevent out-of-bounds array access e7d678c devlist: clear vectors after deleting objects in clean_open_devices 7a6f66d calibrate: fix thread leaks, inverted system() checks, and freopen check d320b24 extech: fix i*0 typo in parse_packet — should be i*5 eb4596f cpu: add null check for cpu pointer in handle_trace_point c767f48 Add in-class default member initializers to all header classes/structs 7783540 perf: fix null pc deref when mmap fails in create_perf_event e3fae2d perf: fix null deref in set_event_name after tep_find_event_by_name b171967 do_process: fix dangling perf_events pointer after delete 773760c do_process: add bounds check in change_blame() 3eba014 headers: replace #ifndef include guards with #pragma once 4a3b940 Replace #ifndef/#define include guards with #pragma once 97b6c48 test_framework: fix remaining missing std:: qualifiers f6f0dcd test_framework: add missing std:: qualifiers a5cfc6d Update local.md with deep review findings and namespace fix notes c5d9221 Add std:: prefixes throughout codebase after removing using namespace std adc555d Remove 'using namespace std;' from all source files 3eecf9d update review rules a213ea9 Update review/review.md b799f6b Update review/review.md 940193f Update review/review.md 98be6a6 Update review/review.md bcb32ee Update review/review.md debd0a1 tuning: fix unused parameter warnings in iw.c fcf232a src: silence unused parameter and fallthrough warnings eb8a47e headers: apply __unused to virtual method parameters 9f6fdcf lib: move __unused macro and protect C++ content dd78124 inlcude review rules 628848a new review rules file a8ce0c8 wakeup: use __unused for unused 'path' parameter in usb_wakeup d96eb01 lib: add __unused macro for compiler unused attribute db17e85 build: add -W to project-wide compiler flags cc52dd6 build: include -Wall in project-wide compiler flags 594dabb framework: introduce pt_gettime() wrapper and record/replay time b6361c3 framework: fix compilation error by using explicit std::get eb2fb44 framework: add support for recording and replaying MSR reads 31bbc40 main: skip process_process_data() during replay 678c576 framework: support system paths with spaces in trace files b9511ad framework: handle missing files during record and replay b53347c main: fix startup crash and build system integration 4dbcc5a local.md update cdc906d framework: implement record/replay test infrastructure b9d0d2d modernize: remove redundant .c_str() calls for internal helpers 657dd93 lib: modernize fmt_prefix and eliminate legacy buffers 2ac8c6c measurement: modernize extech.cpp device opening 2d982f4 process: modernize softirq_entry handler 79a33ba modernize: Task 1 - Internal Component Logic string modernization a7e5205 display: modernize tab display logic 678e687 devlist: modernize device power registration bab0dba modernize: unify callback type and modernize kernel_function a571cac modernize: finalize centralization of file reading in lib and report 9587dbe cpu: modernize cpu_linux.cpp and centralize sysfs access 96fb423 tuning: modernize various components to use centralized sysfs access 53c02e8 devices: modernize ahci.cpp and centralize sysfs access 789d7a2 modernize: further centralization of file reading in cpu and main 7234c5c cpu: modernize abstract_cpu and intel_gpu to use centralized helpers c91aa2f devices: modernize rfkill.cpp and centralize sysfs access f6e6f46 devices: modernize backlight.cpp and centralize sysfs access 46e93d8 devices: modernize runtime_pm.cpp and centralize sysfs access 543a960 modernize: centralize file reading using read_file_content and read_sysfs helpers 8926e5d process: modernize tep field string retrieval 186d800 process: modernize softirqs and /proc file reading f1732ad report: use a helper for date/time strings to avoid local buffers 4f3f333 report: finalize report.cpp modernization and use std::ofstream 3f6fac8 report: modernize output initialization and filename handling a5a2cc0 report: modernize system info helpers 1a17749 report: modernize formatting and eliminate fixed buffers 1287b70 devices: modernize network interface and /proc/net/dev parsing 514138d devices: modernize devfreq sysfs parsing aba4d00 report: globally modernize table and summary list handling 66795d5 devices: modernize AHCI device identification and reporting b8baa12 devices: modernize directory callbacks and helper functions 680b80b cpu: modernize display buffering and intel_pstate detection 043123b cpu: modernize sysfs pstate parsing cb3fb83 cpu: modernize /proc/cpuinfo parsing c400503 calibrate: modernize string handling and function signatures b43adaa process: modernize reporting and event dispatching 4fa07c5 process: modernize pretty_print and timer_is_deferred 3a8410c process: modernize process and interrupt managers 5455be9 measurement: modernize ACPI battery state parsing and add read_file_content 4c432e4 measurement: modernize callback and setup functions bc00393 parameters: modernize string handling 0e9b7d6 tuning: modernize local callbacks and helper functions to use std::string 8191846 pci_id_to_name: single std::string implementation, remove char* overloads fca86a1 Merge pull request #195 from fenrus75/refactor3 41ca856 Fix pci_id_to_name return value and uninitialized ctime ef8a80f fix: Address review comments from PR #193 2cd3b80 Merge pull request #194 from fenrus75/refactor2 d4d6107 modernize: Convert get_result to return std::string by value df0867e Merge pull request #193 from fenrus75/refactor 18dd118 fix: Resolve regressions introduced during C++20 modernization 01e3ba1 modernize: Complete modernization of remaining classes c14e785 perf: Modernize perf_event and perf_bundle to use std::string 3eac2cb modernize: Batch commit of hierarchy and class modernization fixes dd57d9d rapl: Modernize c_rapl_interface constructor to use std::string 147ebe3 modernize: Modernize lib.h and lib.cpp to prefer std::string 7edaaad modernize: Systematic refactor of object hierarchy to prefer std::string 91f3621 modernize: Comprehensive modernization of path construction and local buffers a8d7873 modernize: Convert device_has_runtime_pm to take std::string dc294b3 tuning: Modernize path construction and eliminate local char buffers f54b73e process: Modernize UI formatting and eliminate snprintf into local buffers cb13031 cpu: Modernize path construction and eliminate filename buffers 4d76311 cpu: Modernize CPU header formatting and eliminate snprintf into local buffers fdba749 modernize: Eliminate more pt_strcpy usages by converting targets to std::string 5092bad modernize: Eliminate pt_strcpy in tuning.cpp and modernize result_string() 9a93fec report: Modernize reportstream and output initialization 5bbf301 wakeup: Finalize modernization of wakeup subclasses 480c33d devices: Complete modernization of human_name method 7f47f18 lib: Modernize pretty_print with std::string overload 02f4e4f modernize: Convert description() to return std::string bf3de15 tuning: Modernize ethernet_tunable with std::string 84f9847 devices: Rename human_name to human_name_cstr and prefer human_name_s f57b639 process: Modernize find_create_process to use std::string eb26dee devlist: Modernize devuser and devpower structs with std::string 157ad5f process: Modernize process hierarchy with std::string 2516f50 lib: Modernize read_sysfs_string and unify on std::string d75e4e2 measurement: Modernize power_meter hierarchy with std::string for names 18b7347 tuning: Modernize runtime_tunable and add_runtime_tunables 1c487a6 devices: Modernize register_sysfs_path 5eb39c9 wakeup: Complete modernization of class wakeup and subclasses 365094a wakeup: Modernize toggle scripts to std::string 3fc61f6 lib: Add pt_format helper and refactor translated strings 585eda5 cpu: Finalize buffer and string conversions 846cab8 a lot more buffer conversions ed85c5c Refactor: Convert toggle_script to std::string and remove redundant overrides 5344ca3 Doc: Update class description with recent string refactors dd0467c Refactor: Convert tunable members to std::string and use std::format in derived classes f74fbb7 Refactor: Convert usbdevice::sysfs_path to std::string and use std::format 68ff683 Refactor: Convert ahci::sysfs_path to std::string and use std::format c04c322 Refactor: Convert network::sysfs_path to std::string and use std::format c988bdd Refactor: Convert rfkill::sysfs_path to std::string and use std::format 47a8fbd Refactor: Convert runtime_pmdevice::sysfs_path to std::string and use std::format e686c45 Refactor: Convert backlight::sysfs_path to std::string and use std::format 3329814 Refactor: Convert alsa::sysfs_path to std::string and use std::format 49a516e Refactor: Convert device::real_path to std::string 4a8a833 Refactor: Convert cpudevice naming members to std::string and implement naming methods 5333ffb Cleanup: Use direct std::string comparison in runtime_tunable 109b75f Cleanup: Use direct std::string comparison in i2c_tunable 60c2891 Cleanup: Use direct std::string comparison in usb_tunable e4dd1ef Cleanup: Use direct std::string comparison in ethernet_wakeup 073da17 Cleanup: Use direct std::string comparison in usb_wakeup 74cd8ed update review rules to use const when possible 4d5e918 Refactor: Add std::string variants for wifi power saving and cleanup .c_str() calls 650139a Refactor: Add _s() string methods to dram_rapl_device 2945894 Refactor: Add _s() string methods to cpu_rapl_device 4b1e762 Refactor: Convert cpudevice naming members to std::string 81bba99 Refactor: Add _s() string methods to gpu_rapl_device 79707a8 Refactor: Add _s() string methods to i915gpu and incorporate naming logic e642204 Refactor: Convert network name to std::string and use std::format 0609b1d Refactor: Convert usbdevice name to std::string a9595b4 Refactor: Add std::string variants for register_devpower and parameter/result methods, and cleanup .c_str() calls 33260d6 Cleanup: Remove redundant .c_str() calls in backlight.cpp 734ba50 Cleanup: Remove redundant .c_str() calls in rfkill.cpp c2578e2 Cleanup: Remove redundant .c_str() calls in ahci.cpp b27dd52 Cleanup: Remove redundant .c_str() calls in runtime_pm.cpp 664eb33 Refactor: Add std::string variants for parameter/result access methods b7eabcb Refactor: Use std::string and std::format in device reporting methods db74cdc Refactor: Add _s() string methods to thinkpad_light 16c0e2d Refactor: Add _s() string methods to thinkpad_fan 7df5591 Refactor: Convert devfreq dir_name to std::string and use std::format 4f81557 Refactor: Convert backlight name to std::string and use std::format ad84940 Refactor: Convert alsa humanname and name to std::string and use std::format c888ff5 Refactor: Convert rfkill humanname and name to std::string and use std::format 2507ed7 Refactor: Convert ahci humanname and name to std::string and use std::format 422cf09 Refactor: Convert runtime_pmdevice humanname and name to std::string and use std::format 8d32f08 Refactor: Convert usbdevice humanname and devname to std::string and use std::format 7fc203e Refactor: Convert network::humanname to std::string and use std::format 3966626 Refactor: Convert alsa::humanname to std::string and use std::format 888ac6d Cleanup: Remove redundant length checks for std::string guilty 6a99850 Refactor: Convert device::guilty to std::string and use std::format in alsa::human_name 7f9e5cb Refactor: Use std::format in i2c_tunable 33d16e4 Refactor: Use std::format in usb_tunable bef3a2f Refactor: Use std::format in ethernet_tunable 7ae4124 Refactor: Use std::format in bt_tunable eb5e103 Refactor: Use std::format in runtime_tunable 99b0e15 Refactor: Use std::format in ethernet_wakeup 3ad5b3f Refactor: Use std::format in usb_wakeup 0f445fc Refactor: Use std::format in wifi_tunable d09a89c Build: Update to C++20 standard 1c536c9 Refactor: Convert tunable and wakeup desc to std::string and add _s() string methods 6a18fe2 Add Meson build system 458486a style guide update e2fdc8b Add a simple class description document 1ed1438 start building a very basic code review guideline set 9b18a6a Update pt_PT.po 82cb95d Update pt_PT.po b8207e6 Update pt_PT.po 8e25bb1 Rename pt_PT to pt_PT.po 8808fb3 Create pt_PT 4e5fce3 Update LINGUAS 49045c0 Merge pull request #182 from fragglet/master b5d1d3d Fix root privileges check d3d1062 Merge pull request #173 from aruhier/patch_sysfs 8bc94ed Fix battery runtime estimation with negative sysfs values e598291 Merge pull request #170 from nasahlpa/arl_support 979e31b Merge pull request #172 from yarda/gettext-version 952f5d8 Use AM_GNU_GETTEXT_REQUIRE_VERSION to avoid version mismatch 4e486ee Add Intel Arrow Lake support 9beafe3 "on" is also good, as reported by Paul Menzel 94b08d4 Add --auto-tune-dump to manpage 4bdfba1 Merge pull request #141 from renat-sabitov/t-head-1520-lpi4a 184b2f4 Fixed RISCV T-Head 1520 CPU identification 24a96ea Merge pull request #133 from mattst88/ncurses c339df5 Fix configure to support ncurses w/ tinfo b6d1569 Merge pull request #122 from rostedt/libtracefs 1f2a66e i915: Have i915 device use tracefs_event_file_exists() 9567e93 tracefs: Use tracefs_event_file_read() to find the events 2b133ed tracefs: Use libtracefs and libtraceevent 3f869dc Merge pull request #116 from jtru/auto-tune-dump fa916f1 Implement --auto-tune-dump