wasm_bpf_binding/
binding.rs1pub type Uint64T = u64;
2pub type Uint32T = u32;
3pub type Int32T = i32;
4pub type BpfObjectSkel = Uint64T;
5pub fn wasm_bpf_map_operate(
6 fd: i32,
7 cmd: i32,
8 key: u64,
9 value: u64,
10 next_key: u64,
11 flags_s: Uint64T,
12) -> i32 {
13 unsafe {
14 #[link(wasm_import_module = "env")]
15 extern "C" {
16 #[link_name = "wasm_bpf_map_operate"]
17 fn wit_import(_: i32, _: i32, _: i64, _: i64, _: i64, _: i64) -> i32;
18 }
19 wit_import(
20 fd as i32,
21 cmd as i32,
22 key as i64,
23 value as i64,
24 next_key as i64,
25 flags_s as i64,
26 )
27 }
28}
29pub fn wasm_bpf_buffer_poll(
30 program: BpfObjectSkel,
31 fd: i32,
32 sample_func: Int32T,
33 ctx: Uint32T,
34 data: u32,
35 max_size: i32,
36 timeout_ms: i32,
37) -> i32 {
38 unsafe {
39 #[link(wasm_import_module = "env")]
40 extern "C" {
41 #[link_name = "wasm_bpf_buffer_poll"]
42 fn wit_import(_: i64, _: i32, _: i32, _: i32, _: i32, _: i32, _: i32) -> i32;
43 }
44 let ret = wit_import(
45 program as i64,
46 fd as i32,
47 sample_func as i32,
48 ctx as i32,
49 data as i32,
50 max_size as i32,
51 timeout_ms as i32
52 );
53 ret
54 }
55}
56pub fn wasm_attach_bpf_program(
57 obj: BpfObjectSkel,
58 name: u32,
59 attach_target: u32,
60) -> i32 {
61 unsafe {
62 #[link(wasm_import_module = "env")]
63 extern "C" {
64 #[link_name = "wasm_attach_bpf_program"]
65 fn wit_import(_: i64, _: i32, _: i32) -> i32;
66 }
67 let ret = wit_import(
68 obj as i64,
69 name as i32,
70 attach_target as i32
71 );
72 ret
73 }
74}
75pub fn wasm_load_bpf_object(obj_buf: u32, obj_buf_sz: i32) -> BpfObjectSkel {
76 unsafe {
77 #[link(wasm_import_module = "env")]
78 extern "C" {
79 #[link_name = "wasm_load_bpf_object"]
80 fn wit_import(_: i32, _: i32) -> i64;
81 }
82 let ret = wit_import(
83 obj_buf as i32,
84 obj_buf_sz as i32
85 );
86 ret as u64
87 }
88}
89pub fn wasm_close_bpf_object(obj: BpfObjectSkel) -> i32 {
90 unsafe {
91 #[link(wasm_import_module = "env")]
92 extern "C" {
93 #[link_name = "wasm_close_bpf_object"]
94 fn wit_import(_: i64) -> i32;
95 }
96 let ret = wit_import(obj as i64);
97 ret
98 }
99}
100pub fn wasm_bpf_map_fd_by_name(obj: BpfObjectSkel, name: u32) -> i32 {
101 unsafe {
102 #[link(wasm_import_module = "env")]
103 extern "C" {
104 #[link_name = "wasm_bpf_map_fd_by_name"]
105 fn wit_import(_: i64, _: i32) -> i32;
106 }
107 let ret = wit_import(
108 obj as i64,
109 name as i32
110 );
111 ret
112 }
113}