mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2026-04-22 21:51:26 +00:00
Compare commits
5 Commits
0e087b9ea5
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 0498885f71 | |||
| 3f4f95115f | |||
| f2b9767098 | |||
| b7f917c3c2 | |||
| b025ae7158 |
4
.github/workflows/python-publish.yml
vendored
4
.github/workflows/python-publish.yml
vendored
@ -33,7 +33,7 @@ jobs:
|
|||||||
python -m build
|
python -m build
|
||||||
|
|
||||||
- name: Upload distributions
|
- name: Upload distributions
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: release-dists
|
name: release-dists
|
||||||
path: dist/
|
path: dist/
|
||||||
@ -59,7 +59,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Retrieve release distributions
|
- name: Retrieve release distributions
|
||||||
uses: actions/download-artifact@v7
|
uses: actions/download-artifact@v8
|
||||||
with:
|
with:
|
||||||
name: release-dists
|
name: release-dists
|
||||||
path: dist/
|
path: dist/
|
||||||
|
|||||||
@ -41,7 +41,7 @@ def handle_fstring_print(
|
|||||||
fmt_parts,
|
fmt_parts,
|
||||||
exprs,
|
exprs,
|
||||||
local_sym_tab,
|
local_sym_tab,
|
||||||
compilation_context.struct_sym_tab,
|
compilation_context.structs_sym_tab,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError(f"Unsupported f-string value type: {type(value)}")
|
raise NotImplementedError(f"Unsupported f-string value type: {type(value)}")
|
||||||
@ -55,12 +55,7 @@ def handle_fstring_print(
|
|||||||
|
|
||||||
for expr in exprs[:3]:
|
for expr in exprs[:3]:
|
||||||
arg_value = _prepare_expr_args(
|
arg_value = _prepare_expr_args(
|
||||||
expr,
|
expr, func, compilation_context, builder, local_sym_tab
|
||||||
func,
|
|
||||||
compilation_context.module,
|
|
||||||
builder,
|
|
||||||
local_sym_tab,
|
|
||||||
compilation_context.struct_sym_tab,
|
|
||||||
)
|
)
|
||||||
args.append(arg_value)
|
args.append(arg_value)
|
||||||
|
|
||||||
@ -216,19 +211,19 @@ def _create_format_string_global(fmt_str, func, module, builder):
|
|||||||
return builder.bitcast(fmt_gvar, ir.PointerType())
|
return builder.bitcast(fmt_gvar, ir.PointerType())
|
||||||
|
|
||||||
|
|
||||||
def _prepare_expr_args(expr, func, module, builder, local_sym_tab, struct_sym_tab):
|
def _prepare_expr_args(expr, func, compilation_context, builder, local_sym_tab):
|
||||||
"""Evaluate and prepare an expression to use as an arg for bpf_printk."""
|
"""Evaluate and prepare an expression to use as an arg for bpf_printk."""
|
||||||
|
|
||||||
# Special case: struct field char array needs pointer to first element
|
# Special case: struct field char array needs pointer to first element
|
||||||
if isinstance(expr, ast.Attribute):
|
if isinstance(expr, ast.Attribute):
|
||||||
char_array_ptr, _ = get_char_array_ptr_and_size(
|
char_array_ptr, _ = get_char_array_ptr_and_size(
|
||||||
expr, builder, local_sym_tab, struct_sym_tab, func
|
expr, builder, local_sym_tab, compilation_context, func
|
||||||
)
|
)
|
||||||
if char_array_ptr:
|
if char_array_ptr:
|
||||||
return char_array_ptr
|
return char_array_ptr
|
||||||
|
|
||||||
# Regular expression evaluation
|
# Regular expression evaluation
|
||||||
val, _ = eval_expr(func, module, builder, expr, local_sym_tab, None, struct_sym_tab)
|
val, _ = eval_expr(func, compilation_context, builder, expr, local_sym_tab)
|
||||||
|
|
||||||
if not val:
|
if not val:
|
||||||
logger.warning("Failed to evaluate expression for bpf_printk, defaulting to 0")
|
logger.warning("Failed to evaluate expression for bpf_printk, defaulting to 0")
|
||||||
|
|||||||
Reference in New Issue
Block a user