- Introduced a comprehensive tutorial in README.md explaining how to fix broken HID devices using eBPF without kernel patches.
- Implemented a userspace program (hid-input-modifier.c) that creates a virtual HID mouse using the uhid interface and sends synthetic mouse events.
- Developed a BPF program (hid-input-modifier.bpf.c) that intercepts HID events and modifies mouse movement data, effectively doubling the X and Y movement.
- Created necessary header files (hid_bpf.h, hid_bpf_defs.h, hid_bpf_helpers.h) to define structures and helper functions for the BPF program.
- Added functionality to find and manage the virtual HID device, ensuring seamless integration with the BPF program.
- Improved descriptions of key features in the README, emphasizing type safety, symbol resolution, error handling, logging, and command-line interface.
- Updated the Makefile to include a specific RUSTFLAGS setting for building the blazesym library, enhancing build safety and control.
- Removed the legacy C implementation of the profiling tool.
- Added a new Rust-based implementation that utilizes BPF for stack tracing.
- Introduced a Makefile for building the project and managing dependencies.
- Created a Cargo.toml file to manage Rust dependencies and project metadata.
- Implemented event handling and performance monitoring using the libbpf library.
- Added support for both standard and extended output formats for stack traces.
- Included a .gitignore file to exclude build artifacts and output directories.
- Established a new directory structure for organizing source files and BPF code.