diff --git a/src/core/bpf_object.cpp b/src/core/bpf_object.cpp index 9ae949a..1cb5eba 100644 --- a/src/core/bpf_object.cpp +++ b/src/core/bpf_object.cpp @@ -4,8 +4,9 @@ #include "bpf_program.h" #include -BpfObject::BpfObject(std::string object_path) - : obj_(nullptr), object_path_(std::move(object_path)), loaded_(false) {} +BpfObject::BpfObject(std::string object_path, py::dict structs) + : obj_(nullptr), object_path_(std::move(object_path)), loaded_(false), + struct_defs_(structs) {} BpfObject::~BpfObject() { // Clear caches first (order matters!) diff --git a/src/core/bpf_object.h b/src/core/bpf_object.h index 49fdb09..a66e73b 100644 --- a/src/core/bpf_object.h +++ b/src/core/bpf_object.h @@ -28,12 +28,13 @@ private: mutable std::unordered_map> maps_cache_; mutable std::unordered_map> prog_cache_; + py::dict struct_defs_; std::shared_ptr _get_or_create_program(struct bpf_program *prog); std::shared_ptr _get_or_create_map(struct bpf_map *map); public: - explicit BpfObject(std::string object_path); + explicit BpfObject(std::string object_path, py::dict structs = py::dict()); ~BpfObject(); // Disable copy, allow move