Add process_bpf_struct

This commit is contained in:
Pragyansh Chaturvedi
2025-09-21 04:23:54 +05:30
parent 9fc939cb8e
commit c79dc635d7

View File

@ -16,5 +16,24 @@ def structs_proc(tree, module, chunks):
break
if is_struct:
print(f"Found BPF struct: {cls_node.name}")
process_bpf_struct(cls_node, module)
continue
return structs_sym_tab
def process_bpf_struct(cls_node, module):
struct_name = cls_node.name
field_names = []
field_types = []
for item in cls_node.body:
if isinstance(item, ast.AnnAssign) and isinstance(item.target, ast.Name):
field_names.append(item.target.id)
field_types.append(ctypes_to_ir(item.annotation.id))
struct_type = ir.LiteralStructType(field_types)
structs_sym_tab[struct_name] = {
"type": struct_type,
"fields": {name: idx for idx, name in enumerate(field_names)}
}
print(f"Created struct {struct_name} with fields {field_names}")