Implement bpf chunk ID

This commit is contained in:
Pragyansh Chaturvedi
2025-09-06 13:33:43 +05:30
parent 88fa690493
commit ac7f8e09f8
2 changed files with 18 additions and 1 deletions

View File

@ -1,10 +1,11 @@
from pythonbpf.decorators import section
from pythonbpf.decorators import bpf, section
# from pythonbpf.decorators import tracepoint, syscalls
from ctypes import c_void_p, c_int32
# @tracepoint(syscalls.sys_enter_execve)
@bpf
@section("kprobe/sys_clone")
def hello(ctx: c_void_p) -> c_int32:
print("Hello, World!")

View File

@ -6,10 +6,26 @@ from .constants_pass import constants_processing
from .globals_pass import globals_processing
def find_bpf_chunks(tree):
"""Find all functions decorated with @bpf in the AST."""
bpf_functions = []
for node in ast.walk(tree):
if isinstance(node, ast.FunctionDef):
for decorator in node.decorator_list:
if isinstance(decorator, ast.Name) and decorator.id == "bpf":
bpf_functions.append(node)
break
return bpf_functions
def processor(source_code, filename, module):
tree = ast.parse(source_code, filename)
print(ast.dump(tree, indent=4))
bpf_chunks = find_bpf_chunks(tree)
for func_node in bpf_chunks:
print(f"Found BPF function: {func_node.name}")
# For now, we will parse the BPF specific parts of AST
# Big rewrite