You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fprintf(stderr, "Failed to find %s config map in eBPF object\n");
3382
3383
return -1;
3383
-
}|} config_name config_name config_name config_name config_name in
3384
-
let init_code = generate_config_initialization config_decl in
3385
-
load_code ^"\n"^ init_code
3386
-
) config_declarations |>String.concat "\n"
3387
-
else""in
3384
+
}|} config_name config_name obj_var config_name config_name config_name in
3385
+
let init_code = generate_config_initialization config_decl in
3386
+
load_code ^"\n"^ init_code
3387
+
) config_declarations |>String.concat "\n"
3388
+
else""in
3389
+
3390
+
let config_setup_code = generate_config_setup_code config_declarations in
3388
3391
3389
3392
(* Generate struct_ops registration code *)
3390
3393
let struct_ops_registration_code = generate_struct_ops_registration_code ir_multi_prog in
@@ -3462,6 +3465,11 @@ let generate_complete_userspace_program_from_ir ?(config_declarations = []) ?(ty
3462
3465
(* Generate automatic BPF object initialization when maps are used but load is not called *)
3463
3466
let needs_auto_bpf_init = all_usage.uses_map_operations &¬ all_usage.uses_load in
3464
3467
let auto_bpf_init_code =if needs_auto_bpf_init && all_setup_code <>""then
3468
+
let auto_map_setup_code = generate_unified_map_setup_code ~obj_var:"bpf_obj" used_global_maps_with_exec in
3469
+
let auto_config_setup_code = generate_config_setup_code ~obj_var:"bpf_obj" config_declarations in
3470
+
let auto_ringbuf_setup_code = generate_ringbuf_setup_code_from_registry ~obj_var:"bpf_obj" ir_multi_prog.ring_buffer_registry ~dispatch_used:(List.length all_usage.used_dispatch_functions >0) in
3471
+
let auto_setup_parts = [auto_map_setup_code; auto_config_setup_code; auto_ringbuf_setup_code] in
3472
+
let auto_setup_code =String.concat "\n" (List.filter (funs -> s <>"") auto_setup_parts) in
0 commit comments