- Fixed skeleton generation when
enum64
types are present
- Represent C enums with custom types and const fields
- Adjusted Rust correspondents in generated skeletons to no longer be
wrapped in
MaybeUninit
- Adjusted Rust correspondents in generated skeletons to no longer be
wrapped in
- Adjusted
SkeletonBuilder::build*
methods to returnCompilationOutput
on success
- Fixed handling of empty unions in BPF types
- Fixed incorrect Cargo environment variable query when used in build script context
- Adjusted skeleton generation code to work around
libbpf
forward compatibility issue when an old systemlibbpf
is being used instead of the vendored copy
- Silenced possible
clippy
reported warnings in generated skeleton when BPF object file does not contain any maps
- Fixed panic on "open" of skeleton with
kconfig
map
- Fixed missing BPF object cleanup after skeleton destruction
- Reworked generated skeletons to contain publicly accessible maps and program members, no longer requiring method calls
- Adjusted skeleton creation logic to generate Rust types for all types available in BPF
- Renamed module for generated Rust types from
<project>_types
to justtypes
- Renamed generated
struct_ops
type toStructOps
and moved it out oftypes
module - Fixed Rust code generation logic to properly create
Default
impl for arrays of pointers
- Fixed generation of
Default
impl in presence of large padding arrays
- Added "import injection" escape hatch to generated skeletons
- Removed
novendor
feature in favor of having disableable default feature - Added support for
struct_ops
shadow objects for generated skeletons - Added support for handling custom data sections in generated skeletons
- Adjusted
SkeletonBuilder::clang_args
to accept an iterator of arguments instead of a string - Added
--clang-args
argument tomake
andbuild
sub-commands - Put all generated types into single
<project>_types
module as opposed to having multiple modules for various sections (.bss
,.rodata
, etc.) - Fixed potential naming issues by escaping reserved keywords used in identifiers
- Fixed potential unsoundness issues in generated skeletons by wrapping "unsafe"
types in
MaybeUninit
- Added pointer based ("raw") access to datasec type to generated skeletons
- Added better handling for bitfields to code generation logic
- Updated
libbpf-sys
dependency to1.4.0
- Bumped minimum Rust version to
1.71
- Adjusted skeleton creation logic to generate shared and exclusive datasec accessor functions
- Removed
Error
enum in favor ofanyhow::Error
- Bumped minimum Rust version to
1.65
- Added
Default
impl for generatedstruct
types containing pointers - Fixed handling of function prototype type declaration inference in BTF and skeleton generation
- Improved error reporting in build script usage
- Bumped minimum Rust version to
1.64
- Adjusted named padding members in generated types to have
pub
visibility
- Adjusted skeleton generation code to ensure implementation of
libbpf-rs
'sSkelBuilder
,OpenSkel
, andSkel
traits - Improved error reporting on BPF C file compilation failure
- Switched over to using
libbpf-rs
's BTF support internally for skeleton generation - Fixed potential build failures on systems defaulting to stack
protector usage by passing
-fno-stack-protector
toclang
- Fixed mismatch in size of generated types with respect to corresponding C types
- Fixed generated skeleton potentially being unstable (changing each time)
- Implemented
Sync
for generated skeletons - Made formatting using
rustfmt
optional - Updated various dependencies
- Initial documented release