wasm_bpf_binding/
binding.rs

1pub 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}