mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
Add _is_xdp_name
This commit is contained in:
@ -9,7 +9,7 @@ from pythonbpf.type_deducer import ctypes_to_ir
|
||||
from pythonbpf.binary_ops import handle_binary_op
|
||||
from pythonbpf.expr_pass import eval_expr, handle_expr
|
||||
|
||||
from .return_utils import _handle_none_return, _handle_xdp_return
|
||||
from .return_utils import _handle_none_return, _handle_xdp_return, _is_xdp_name
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -357,7 +357,7 @@ def handle_return(builder, stmt, local_sym_tab, ret_type):
|
||||
logger.info(f"Handling return statement: {ast.dump(stmt)}")
|
||||
if stmt.value is None:
|
||||
return _handle_none_return(builder)
|
||||
elif isinstance(stmt.value, ast.Name):
|
||||
elif isinstance(stmt.value, ast.Name) and _is_xdp_name(stmt.value.id):
|
||||
return _handle_xdp_return(stmt, builder, ret_type)
|
||||
elif (
|
||||
isinstance(stmt.value, ast.Call)
|
||||
|
||||
@ -111,6 +111,11 @@ def _handle_wrapped_return(stmt: ast.Return, builder, ret_type, local_sym_tab) -
|
||||
raise ValueError(f"Unsupported return argument type: {type(arg).__name__}")
|
||||
|
||||
|
||||
def _is_xdp_name(name: str) -> bool:
|
||||
"""Check if a name is an XDP action"""
|
||||
return name in XDP_ACTIONS
|
||||
|
||||
|
||||
def _handle_xdp_return(stmt: ast.Return, builder, ret_type) -> bool:
|
||||
"""Handle XDP returns"""
|
||||
if not isinstance(stmt.value, ast.Name):
|
||||
|
||||
Reference in New Issue
Block a user