Skip to main content

falco_plugin_api/
ffi.rs

1/* automatically generated by rust-bindgen 0.73.1 */
2
3pub const PLUGIN_API_VERSION_MAJOR: u32 = 3;
4pub const PLUGIN_API_VERSION_MINOR: u32 = 12;
5pub const PLUGIN_API_VERSION_PATCH: u32 = 0;
6pub const PLUGIN_MAX_ERRLEN: u32 = 1024;
7pub const PLUGIN_EVENT_PAYLOAD_OFFSET: u32 = 38;
8pub type ss_plugin_bool = u32;
9pub const ss_plugin_field_type_FTYPE_UINT64: ss_plugin_field_type = 8;
10pub const ss_plugin_field_type_FTYPE_STRING: ss_plugin_field_type = 9;
11pub const ss_plugin_field_type_FTYPE_RELTIME: ss_plugin_field_type = 20;
12pub const ss_plugin_field_type_FTYPE_ABSTIME: ss_plugin_field_type = 21;
13pub const ss_plugin_field_type_FTYPE_BOOL: ss_plugin_field_type = 25;
14pub const ss_plugin_field_type_FTYPE_IPADDR: ss_plugin_field_type = 40;
15pub const ss_plugin_field_type_FTYPE_IPNET: ss_plugin_field_type = 41;
16pub type ss_plugin_field_type = ::std::os::raw::c_uint;
17pub const ss_plugin_rc_SS_PLUGIN_SUCCESS: ss_plugin_rc = 0;
18pub const ss_plugin_rc_SS_PLUGIN_FAILURE: ss_plugin_rc = 1;
19pub const ss_plugin_rc_SS_PLUGIN_TIMEOUT: ss_plugin_rc = -1;
20pub const ss_plugin_rc_SS_PLUGIN_EOF: ss_plugin_rc = 2;
21pub const ss_plugin_rc_SS_PLUGIN_NOT_SUPPORTED: ss_plugin_rc = 3;
22pub type ss_plugin_rc = ::std::os::raw::c_int;
23pub const ss_plugin_schema_type_SS_PLUGIN_SCHEMA_NONE: ss_plugin_schema_type = 0;
24pub const ss_plugin_schema_type_SS_PLUGIN_SCHEMA_JSON: ss_plugin_schema_type = 1;
25pub type ss_plugin_schema_type = ::std::os::raw::c_uint;
26#[repr(C, packed)]
27#[derive(Debug, Copy, Clone)]
28pub struct ss_plugin_event {
29    pub ts: u64,
30    pub tid: u64,
31    pub len: u32,
32    pub type_: u16,
33    pub nparams: u32,
34}
35#[allow(clippy::unnecessary_operation, clippy::identity_op)]
36const _: () = {
37    ["Size of ss_plugin_event"][::std::mem::size_of::<ss_plugin_event>() - 26usize];
38    ["Alignment of ss_plugin_event"][::std::mem::align_of::<ss_plugin_event>() - 1usize];
39    ["Offset of field: ss_plugin_event::ts"][::std::mem::offset_of!(ss_plugin_event, ts) - 0usize];
40    ["Offset of field: ss_plugin_event::tid"]
41        [::std::mem::offset_of!(ss_plugin_event, tid) - 8usize];
42    ["Offset of field: ss_plugin_event::len"]
43        [::std::mem::offset_of!(ss_plugin_event, len) - 16usize];
44    ["Offset of field: ss_plugin_event::type_"]
45        [::std::mem::offset_of!(ss_plugin_event, type_) - 20usize];
46    ["Offset of field: ss_plugin_event::nparams"]
47        [::std::mem::offset_of!(ss_plugin_event, nparams) - 22usize];
48};
49#[repr(C)]
50#[derive(Debug, Copy, Clone)]
51pub struct ss_plugin_event_input {
52    pub evt: *const ss_plugin_event,
53    pub evtnum: u64,
54    pub evtsrc: *const ::std::os::raw::c_char,
55}
56#[allow(clippy::unnecessary_operation, clippy::identity_op)]
57const _: () = {
58    ["Size of ss_plugin_event_input"][::std::mem::size_of::<ss_plugin_event_input>() - 24usize];
59    ["Alignment of ss_plugin_event_input"]
60        [::std::mem::align_of::<ss_plugin_event_input>() - 8usize];
61    ["Offset of field: ss_plugin_event_input::evt"]
62        [::std::mem::offset_of!(ss_plugin_event_input, evt) - 0usize];
63    ["Offset of field: ss_plugin_event_input::evtnum"]
64        [::std::mem::offset_of!(ss_plugin_event_input, evtnum) - 8usize];
65    ["Offset of field: ss_plugin_event_input::evtsrc"]
66        [::std::mem::offset_of!(ss_plugin_event_input, evtsrc) - 16usize];
67};
68#[repr(C)]
69#[derive(Debug, Copy, Clone)]
70pub struct ss_plugin_byte_buffer {
71    pub len: u32,
72    pub ptr: *const ::std::os::raw::c_void,
73}
74#[allow(clippy::unnecessary_operation, clippy::identity_op)]
75const _: () = {
76    ["Size of ss_plugin_byte_buffer"][::std::mem::size_of::<ss_plugin_byte_buffer>() - 16usize];
77    ["Alignment of ss_plugin_byte_buffer"]
78        [::std::mem::align_of::<ss_plugin_byte_buffer>() - 8usize];
79    ["Offset of field: ss_plugin_byte_buffer::len"]
80        [::std::mem::offset_of!(ss_plugin_byte_buffer, len) - 0usize];
81    ["Offset of field: ss_plugin_byte_buffer::ptr"]
82        [::std::mem::offset_of!(ss_plugin_byte_buffer, ptr) - 8usize];
83};
84#[repr(C)]
85#[derive(Debug, Copy, Clone)]
86pub struct ss_plugin_extract_value_offsets {
87    pub start: *mut u32,
88    pub length: *mut u32,
89}
90#[allow(clippy::unnecessary_operation, clippy::identity_op)]
91const _: () = {
92    ["Size of ss_plugin_extract_value_offsets"]
93        [::std::mem::size_of::<ss_plugin_extract_value_offsets>() - 16usize];
94    ["Alignment of ss_plugin_extract_value_offsets"]
95        [::std::mem::align_of::<ss_plugin_extract_value_offsets>() - 8usize];
96    ["Offset of field: ss_plugin_extract_value_offsets::start"]
97        [::std::mem::offset_of!(ss_plugin_extract_value_offsets, start) - 0usize];
98    ["Offset of field: ss_plugin_extract_value_offsets::length"]
99        [::std::mem::offset_of!(ss_plugin_extract_value_offsets, length) - 8usize];
100};
101#[repr(C)]
102#[derive(Copy, Clone)]
103pub struct ss_plugin_extract_field {
104    pub res: ss_plugin_extract_field__bindgen_ty_1,
105    pub res_len: u64,
106    pub field_id: u32,
107    pub field: *const ::std::os::raw::c_char,
108    pub arg_key: *const ::std::os::raw::c_char,
109    pub arg_index: u64,
110    pub arg_present: ss_plugin_bool,
111    pub ftype: u32,
112    pub flist: ss_plugin_bool,
113}
114#[repr(C)]
115#[derive(Copy, Clone)]
116pub union ss_plugin_extract_field__bindgen_ty_1 {
117    pub str_: *mut *const ::std::os::raw::c_char,
118    pub u64_: *mut u64,
119    pub u32_: *mut u32,
120    pub boolean: *mut ss_plugin_bool,
121    pub buf: *mut ss_plugin_byte_buffer,
122}
123#[allow(clippy::unnecessary_operation, clippy::identity_op)]
124const _: () = {
125    ["Size of ss_plugin_extract_field__bindgen_ty_1"]
126        [::std::mem::size_of::<ss_plugin_extract_field__bindgen_ty_1>() - 8usize];
127    ["Alignment of ss_plugin_extract_field__bindgen_ty_1"]
128        [::std::mem::align_of::<ss_plugin_extract_field__bindgen_ty_1>() - 8usize];
129    ["Offset of field: ss_plugin_extract_field__bindgen_ty_1::str_"]
130        [::std::mem::offset_of!(ss_plugin_extract_field__bindgen_ty_1, str_) - 0usize];
131    ["Offset of field: ss_plugin_extract_field__bindgen_ty_1::u64_"]
132        [::std::mem::offset_of!(ss_plugin_extract_field__bindgen_ty_1, u64_) - 0usize];
133    ["Offset of field: ss_plugin_extract_field__bindgen_ty_1::u32_"]
134        [::std::mem::offset_of!(ss_plugin_extract_field__bindgen_ty_1, u32_) - 0usize];
135    ["Offset of field: ss_plugin_extract_field__bindgen_ty_1::boolean"]
136        [::std::mem::offset_of!(ss_plugin_extract_field__bindgen_ty_1, boolean) - 0usize];
137    ["Offset of field: ss_plugin_extract_field__bindgen_ty_1::buf"]
138        [::std::mem::offset_of!(ss_plugin_extract_field__bindgen_ty_1, buf) - 0usize];
139};
140#[allow(clippy::unnecessary_operation, clippy::identity_op)]
141const _: () = {
142    ["Size of ss_plugin_extract_field"][::std::mem::size_of::<ss_plugin_extract_field>() - 64usize];
143    ["Alignment of ss_plugin_extract_field"]
144        [::std::mem::align_of::<ss_plugin_extract_field>() - 8usize];
145    ["Offset of field: ss_plugin_extract_field::res"]
146        [::std::mem::offset_of!(ss_plugin_extract_field, res) - 0usize];
147    ["Offset of field: ss_plugin_extract_field::res_len"]
148        [::std::mem::offset_of!(ss_plugin_extract_field, res_len) - 8usize];
149    ["Offset of field: ss_plugin_extract_field::field_id"]
150        [::std::mem::offset_of!(ss_plugin_extract_field, field_id) - 16usize];
151    ["Offset of field: ss_plugin_extract_field::field"]
152        [::std::mem::offset_of!(ss_plugin_extract_field, field) - 24usize];
153    ["Offset of field: ss_plugin_extract_field::arg_key"]
154        [::std::mem::offset_of!(ss_plugin_extract_field, arg_key) - 32usize];
155    ["Offset of field: ss_plugin_extract_field::arg_index"]
156        [::std::mem::offset_of!(ss_plugin_extract_field, arg_index) - 40usize];
157    ["Offset of field: ss_plugin_extract_field::arg_present"]
158        [::std::mem::offset_of!(ss_plugin_extract_field, arg_present) - 48usize];
159    ["Offset of field: ss_plugin_extract_field::ftype"]
160        [::std::mem::offset_of!(ss_plugin_extract_field, ftype) - 52usize];
161    ["Offset of field: ss_plugin_extract_field::flist"]
162        [::std::mem::offset_of!(ss_plugin_extract_field, flist) - 56usize];
163};
164#[repr(transparent)]
165pub struct ss_plugin_table_t(pub ::std::os::raw::c_void);
166#[repr(transparent)]
167pub struct ss_plugin_table_entry_t(pub ::std::os::raw::c_void);
168#[repr(transparent)]
169pub struct ss_plugin_table_field_t(pub ::std::os::raw::c_void);
170pub const ss_plugin_state_type_SS_PLUGIN_ST_INT8: ss_plugin_state_type = 1;
171pub const ss_plugin_state_type_SS_PLUGIN_ST_INT16: ss_plugin_state_type = 2;
172pub const ss_plugin_state_type_SS_PLUGIN_ST_INT32: ss_plugin_state_type = 3;
173pub const ss_plugin_state_type_SS_PLUGIN_ST_INT64: ss_plugin_state_type = 4;
174pub const ss_plugin_state_type_SS_PLUGIN_ST_UINT8: ss_plugin_state_type = 5;
175pub const ss_plugin_state_type_SS_PLUGIN_ST_UINT16: ss_plugin_state_type = 6;
176pub const ss_plugin_state_type_SS_PLUGIN_ST_UINT32: ss_plugin_state_type = 7;
177pub const ss_plugin_state_type_SS_PLUGIN_ST_UINT64: ss_plugin_state_type = 8;
178pub const ss_plugin_state_type_SS_PLUGIN_ST_STRING: ss_plugin_state_type = 9;
179pub const ss_plugin_state_type_SS_PLUGIN_ST_TABLE: ss_plugin_state_type = 10;
180pub const ss_plugin_state_type_SS_PLUGIN_ST_BOOL: ss_plugin_state_type = 25;
181pub type ss_plugin_state_type = ::std::os::raw::c_uint;
182#[repr(C)]
183#[derive(Copy, Clone)]
184pub union ss_plugin_state_data {
185    pub s8: i8,
186    pub s16: i16,
187    pub s32: i32,
188    pub s64: i64,
189    pub u8_: u8,
190    pub u16_: u16,
191    pub u32_: u32,
192    pub u64_: u64,
193    pub str_: *const ::std::os::raw::c_char,
194    pub b: ss_plugin_bool,
195    pub table: *mut ss_plugin_table_t,
196}
197#[allow(clippy::unnecessary_operation, clippy::identity_op)]
198const _: () = {
199    ["Size of ss_plugin_state_data"][::std::mem::size_of::<ss_plugin_state_data>() - 8usize];
200    ["Alignment of ss_plugin_state_data"][::std::mem::align_of::<ss_plugin_state_data>() - 8usize];
201    ["Offset of field: ss_plugin_state_data::s8"]
202        [::std::mem::offset_of!(ss_plugin_state_data, s8) - 0usize];
203    ["Offset of field: ss_plugin_state_data::s16"]
204        [::std::mem::offset_of!(ss_plugin_state_data, s16) - 0usize];
205    ["Offset of field: ss_plugin_state_data::s32"]
206        [::std::mem::offset_of!(ss_plugin_state_data, s32) - 0usize];
207    ["Offset of field: ss_plugin_state_data::s64"]
208        [::std::mem::offset_of!(ss_plugin_state_data, s64) - 0usize];
209    ["Offset of field: ss_plugin_state_data::u8_"]
210        [::std::mem::offset_of!(ss_plugin_state_data, u8_) - 0usize];
211    ["Offset of field: ss_plugin_state_data::u16_"]
212        [::std::mem::offset_of!(ss_plugin_state_data, u16_) - 0usize];
213    ["Offset of field: ss_plugin_state_data::u32_"]
214        [::std::mem::offset_of!(ss_plugin_state_data, u32_) - 0usize];
215    ["Offset of field: ss_plugin_state_data::u64_"]
216        [::std::mem::offset_of!(ss_plugin_state_data, u64_) - 0usize];
217    ["Offset of field: ss_plugin_state_data::str_"]
218        [::std::mem::offset_of!(ss_plugin_state_data, str_) - 0usize];
219    ["Offset of field: ss_plugin_state_data::b"]
220        [::std::mem::offset_of!(ss_plugin_state_data, b) - 0usize];
221    ["Offset of field: ss_plugin_state_data::table"]
222        [::std::mem::offset_of!(ss_plugin_state_data, table) - 0usize];
223};
224#[repr(C)]
225#[derive(Copy, Clone)]
226pub struct ss_plugin_table_info {
227    pub name: *const ::std::os::raw::c_char,
228    pub key_type: ss_plugin_state_type,
229}
230#[allow(clippy::unnecessary_operation, clippy::identity_op)]
231const _: () = {
232    ["Size of ss_plugin_table_info"][::std::mem::size_of::<ss_plugin_table_info>() - 16usize];
233    ["Alignment of ss_plugin_table_info"][::std::mem::align_of::<ss_plugin_table_info>() - 8usize];
234    ["Offset of field: ss_plugin_table_info::name"]
235        [::std::mem::offset_of!(ss_plugin_table_info, name) - 0usize];
236    ["Offset of field: ss_plugin_table_info::key_type"]
237        [::std::mem::offset_of!(ss_plugin_table_info, key_type) - 8usize];
238};
239#[repr(C)]
240#[derive(Copy, Clone)]
241pub struct ss_plugin_table_fieldinfo {
242    pub name: *const ::std::os::raw::c_char,
243    pub field_type: ss_plugin_state_type,
244    pub read_only: ss_plugin_bool,
245}
246#[allow(clippy::unnecessary_operation, clippy::identity_op)]
247const _: () = {
248    ["Size of ss_plugin_table_fieldinfo"]
249        [::std::mem::size_of::<ss_plugin_table_fieldinfo>() - 16usize];
250    ["Alignment of ss_plugin_table_fieldinfo"]
251        [::std::mem::align_of::<ss_plugin_table_fieldinfo>() - 8usize];
252    ["Offset of field: ss_plugin_table_fieldinfo::name"]
253        [::std::mem::offset_of!(ss_plugin_table_fieldinfo, name) - 0usize];
254    ["Offset of field: ss_plugin_table_fieldinfo::field_type"]
255        [::std::mem::offset_of!(ss_plugin_table_fieldinfo, field_type) - 8usize];
256    ["Offset of field: ss_plugin_table_fieldinfo::read_only"]
257        [::std::mem::offset_of!(ss_plugin_table_fieldinfo, read_only) - 12usize];
258};
259#[repr(transparent)]
260pub struct ss_plugin_owner_t(pub ::std::os::raw::c_void);
261#[repr(transparent)]
262pub struct ss_plugin_t(pub ::std::os::raw::c_void);
263#[repr(transparent)]
264pub struct ss_instance_t(pub ::std::os::raw::c_void);
265pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_FATAL: ss_plugin_log_severity = 1;
266pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_CRITICAL: ss_plugin_log_severity = 2;
267pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_ERROR: ss_plugin_log_severity = 3;
268pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_WARNING: ss_plugin_log_severity = 4;
269pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_NOTICE: ss_plugin_log_severity = 5;
270pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_INFO: ss_plugin_log_severity = 6;
271pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_DEBUG: ss_plugin_log_severity = 7;
272pub const ss_plugin_log_severity_SS_PLUGIN_LOG_SEV_TRACE: ss_plugin_log_severity = 8;
273pub type ss_plugin_log_severity = ::std::os::raw::c_uint;
274pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_U32: ss_plugin_metric_value_type =
275    0;
276pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_S32: ss_plugin_metric_value_type =
277    1;
278pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_U64: ss_plugin_metric_value_type =
279    2;
280pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_S64: ss_plugin_metric_value_type =
281    3;
282pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_D: ss_plugin_metric_value_type =
283    4;
284pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_F: ss_plugin_metric_value_type =
285    5;
286pub const ss_plugin_metric_value_type_SS_PLUGIN_METRIC_VALUE_TYPE_I: ss_plugin_metric_value_type =
287    6;
288pub type ss_plugin_metric_value_type = ::std::os::raw::c_uint;
289#[repr(C)]
290#[derive(Copy, Clone)]
291pub union ss_plugin_metric_value {
292    pub u32_: u32,
293    pub s32: i32,
294    pub u64_: u64,
295    pub s64: i64,
296    pub d: f64,
297    pub f: f32,
298    pub i: ::std::os::raw::c_int,
299}
300#[allow(clippy::unnecessary_operation, clippy::identity_op)]
301const _: () = {
302    ["Size of ss_plugin_metric_value"][::std::mem::size_of::<ss_plugin_metric_value>() - 8usize];
303    ["Alignment of ss_plugin_metric_value"]
304        [::std::mem::align_of::<ss_plugin_metric_value>() - 8usize];
305    ["Offset of field: ss_plugin_metric_value::u32_"]
306        [::std::mem::offset_of!(ss_plugin_metric_value, u32_) - 0usize];
307    ["Offset of field: ss_plugin_metric_value::s32"]
308        [::std::mem::offset_of!(ss_plugin_metric_value, s32) - 0usize];
309    ["Offset of field: ss_plugin_metric_value::u64_"]
310        [::std::mem::offset_of!(ss_plugin_metric_value, u64_) - 0usize];
311    ["Offset of field: ss_plugin_metric_value::s64"]
312        [::std::mem::offset_of!(ss_plugin_metric_value, s64) - 0usize];
313    ["Offset of field: ss_plugin_metric_value::d"]
314        [::std::mem::offset_of!(ss_plugin_metric_value, d) - 0usize];
315    ["Offset of field: ss_plugin_metric_value::f"]
316        [::std::mem::offset_of!(ss_plugin_metric_value, f) - 0usize];
317    ["Offset of field: ss_plugin_metric_value::i"]
318        [::std::mem::offset_of!(ss_plugin_metric_value, i) - 0usize];
319};
320pub const ss_plugin_metric_type_SS_PLUGIN_METRIC_TYPE_MONOTONIC: ss_plugin_metric_type = 0;
321pub const ss_plugin_metric_type_SS_PLUGIN_METRIC_TYPE_NON_MONOTONIC: ss_plugin_metric_type = 1;
322pub type ss_plugin_metric_type = ::std::os::raw::c_uint;
323#[repr(C)]
324#[derive(Copy, Clone)]
325pub struct ss_plugin_metric {
326    pub name: *const ::std::os::raw::c_char,
327    pub type_: ss_plugin_metric_type,
328    pub value: ss_plugin_metric_value,
329    pub value_type: ss_plugin_metric_value_type,
330}
331#[allow(clippy::unnecessary_operation, clippy::identity_op)]
332const _: () = {
333    ["Size of ss_plugin_metric"][::std::mem::size_of::<ss_plugin_metric>() - 32usize];
334    ["Alignment of ss_plugin_metric"][::std::mem::align_of::<ss_plugin_metric>() - 8usize];
335    ["Offset of field: ss_plugin_metric::name"]
336        [::std::mem::offset_of!(ss_plugin_metric, name) - 0usize];
337    ["Offset of field: ss_plugin_metric::type_"]
338        [::std::mem::offset_of!(ss_plugin_metric, type_) - 8usize];
339    ["Offset of field: ss_plugin_metric::value"]
340        [::std::mem::offset_of!(ss_plugin_metric, value) - 16usize];
341    ["Offset of field: ss_plugin_metric::value_type"]
342        [::std::mem::offset_of!(ss_plugin_metric, value_type) - 24usize];
343};
344#[repr(C)]
345#[derive(Debug, Copy, Clone)]
346pub struct ss_plugin_table_fields_vtable {
347    pub list_table_fields: ::std::option::Option<
348        unsafe extern "C" fn(
349            t: *mut ss_plugin_table_t,
350            nfields: *mut u32,
351        ) -> *const ss_plugin_table_fieldinfo,
352    >,
353    pub get_table_field: ::std::option::Option<
354        unsafe extern "C" fn(
355            t: *mut ss_plugin_table_t,
356            name: *const ::std::os::raw::c_char,
357            data_type: ss_plugin_state_type,
358        ) -> *mut ss_plugin_table_field_t,
359    >,
360    pub add_table_field: ::std::option::Option<
361        unsafe extern "C" fn(
362            t: *mut ss_plugin_table_t,
363            name: *const ::std::os::raw::c_char,
364            data_type: ss_plugin_state_type,
365        ) -> *mut ss_plugin_table_field_t,
366    >,
367}
368#[allow(clippy::unnecessary_operation, clippy::identity_op)]
369const _: () = {
370    ["Size of ss_plugin_table_fields_vtable"]
371        [::std::mem::size_of::<ss_plugin_table_fields_vtable>() - 24usize];
372    ["Alignment of ss_plugin_table_fields_vtable"]
373        [::std::mem::align_of::<ss_plugin_table_fields_vtable>() - 8usize];
374    ["Offset of field: ss_plugin_table_fields_vtable::list_table_fields"]
375        [::std::mem::offset_of!(ss_plugin_table_fields_vtable, list_table_fields) - 0usize];
376    ["Offset of field: ss_plugin_table_fields_vtable::get_table_field"]
377        [::std::mem::offset_of!(ss_plugin_table_fields_vtable, get_table_field) - 8usize];
378    ["Offset of field: ss_plugin_table_fields_vtable::add_table_field"]
379        [::std::mem::offset_of!(ss_plugin_table_fields_vtable, add_table_field) - 16usize];
380};
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct ss_plugin_table_fields_vtable_ext {
384    pub list_table_fields: ::std::option::Option<
385        unsafe extern "C" fn(
386            t: *mut ss_plugin_table_t,
387            nfields: *mut u32,
388        ) -> *const ss_plugin_table_fieldinfo,
389    >,
390    pub get_table_field: ::std::option::Option<
391        unsafe extern "C" fn(
392            t: *mut ss_plugin_table_t,
393            name: *const ::std::os::raw::c_char,
394            data_type: ss_plugin_state_type,
395        ) -> *mut ss_plugin_table_field_t,
396    >,
397    pub add_table_field: ::std::option::Option<
398        unsafe extern "C" fn(
399            t: *mut ss_plugin_table_t,
400            name: *const ::std::os::raw::c_char,
401            data_type: ss_plugin_state_type,
402        ) -> *mut ss_plugin_table_field_t,
403    >,
404}
405#[allow(clippy::unnecessary_operation, clippy::identity_op)]
406const _: () = {
407    ["Size of ss_plugin_table_fields_vtable_ext"]
408        [::std::mem::size_of::<ss_plugin_table_fields_vtable_ext>() - 24usize];
409    ["Alignment of ss_plugin_table_fields_vtable_ext"]
410        [::std::mem::align_of::<ss_plugin_table_fields_vtable_ext>() - 8usize];
411    ["Offset of field: ss_plugin_table_fields_vtable_ext::list_table_fields"]
412        [::std::mem::offset_of!(ss_plugin_table_fields_vtable_ext, list_table_fields) - 0usize];
413    ["Offset of field: ss_plugin_table_fields_vtable_ext::get_table_field"]
414        [::std::mem::offset_of!(ss_plugin_table_fields_vtable_ext, get_table_field) - 8usize];
415    ["Offset of field: ss_plugin_table_fields_vtable_ext::add_table_field"]
416        [::std::mem::offset_of!(ss_plugin_table_fields_vtable_ext, add_table_field) - 16usize];
417};
418#[repr(C)]
419#[derive(Debug, Copy, Clone)]
420pub struct ss_plugin_table_reader_vtable {
421    pub get_table_name: ::std::option::Option<
422        unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> *const ::std::os::raw::c_char,
423    >,
424    pub get_table_size:
425        ::std::option::Option<unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> u64>,
426    pub get_table_entry: ::std::option::Option<
427        unsafe extern "C" fn(
428            t: *mut ss_plugin_table_t,
429            key: *const ss_plugin_state_data,
430        ) -> *mut ss_plugin_table_entry_t,
431    >,
432    pub read_entry_field: ::std::option::Option<
433        unsafe extern "C" fn(
434            t: *mut ss_plugin_table_t,
435            e: *mut ss_plugin_table_entry_t,
436            f: *const ss_plugin_table_field_t,
437            out: *mut ss_plugin_state_data,
438        ) -> ss_plugin_rc,
439    >,
440}
441#[allow(clippy::unnecessary_operation, clippy::identity_op)]
442const _: () = {
443    ["Size of ss_plugin_table_reader_vtable"]
444        [::std::mem::size_of::<ss_plugin_table_reader_vtable>() - 32usize];
445    ["Alignment of ss_plugin_table_reader_vtable"]
446        [::std::mem::align_of::<ss_plugin_table_reader_vtable>() - 8usize];
447    ["Offset of field: ss_plugin_table_reader_vtable::get_table_name"]
448        [::std::mem::offset_of!(ss_plugin_table_reader_vtable, get_table_name) - 0usize];
449    ["Offset of field: ss_plugin_table_reader_vtable::get_table_size"]
450        [::std::mem::offset_of!(ss_plugin_table_reader_vtable, get_table_size) - 8usize];
451    ["Offset of field: ss_plugin_table_reader_vtable::get_table_entry"]
452        [::std::mem::offset_of!(ss_plugin_table_reader_vtable, get_table_entry) - 16usize];
453    ["Offset of field: ss_plugin_table_reader_vtable::read_entry_field"]
454        [::std::mem::offset_of!(ss_plugin_table_reader_vtable, read_entry_field) - 24usize];
455};
456#[repr(transparent)]
457pub struct ss_plugin_table_iterator_state_t(pub ::std::os::raw::c_void);
458pub type ss_plugin_table_iterator_func_t = ::std::option::Option<
459    unsafe extern "C" fn(
460        s: *mut ss_plugin_table_iterator_state_t,
461        e: *mut ss_plugin_table_entry_t,
462    ) -> ss_plugin_bool,
463>;
464#[repr(C)]
465#[derive(Debug, Copy, Clone)]
466pub struct ss_plugin_table_reader_vtable_ext {
467    pub get_table_name: ::std::option::Option<
468        unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> *const ::std::os::raw::c_char,
469    >,
470    pub get_table_size:
471        ::std::option::Option<unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> u64>,
472    pub get_table_entry: ::std::option::Option<
473        unsafe extern "C" fn(
474            t: *mut ss_plugin_table_t,
475            key: *const ss_plugin_state_data,
476        ) -> *mut ss_plugin_table_entry_t,
477    >,
478    pub read_entry_field: ::std::option::Option<
479        unsafe extern "C" fn(
480            t: *mut ss_plugin_table_t,
481            e: *mut ss_plugin_table_entry_t,
482            f: *const ss_plugin_table_field_t,
483            out: *mut ss_plugin_state_data,
484        ) -> ss_plugin_rc,
485    >,
486    pub release_table_entry: ::std::option::Option<
487        unsafe extern "C" fn(t: *mut ss_plugin_table_t, e: *mut ss_plugin_table_entry_t),
488    >,
489    pub iterate_entries: ::std::option::Option<
490        unsafe extern "C" fn(
491            t: *mut ss_plugin_table_t,
492            it: ss_plugin_table_iterator_func_t,
493            s: *mut ss_plugin_table_iterator_state_t,
494        ) -> ss_plugin_bool,
495    >,
496}
497#[allow(clippy::unnecessary_operation, clippy::identity_op)]
498const _: () = {
499    ["Size of ss_plugin_table_reader_vtable_ext"]
500        [::std::mem::size_of::<ss_plugin_table_reader_vtable_ext>() - 48usize];
501    ["Alignment of ss_plugin_table_reader_vtable_ext"]
502        [::std::mem::align_of::<ss_plugin_table_reader_vtable_ext>() - 8usize];
503    ["Offset of field: ss_plugin_table_reader_vtable_ext::get_table_name"]
504        [::std::mem::offset_of!(ss_plugin_table_reader_vtable_ext, get_table_name) - 0usize];
505    ["Offset of field: ss_plugin_table_reader_vtable_ext::get_table_size"]
506        [::std::mem::offset_of!(ss_plugin_table_reader_vtable_ext, get_table_size) - 8usize];
507    ["Offset of field: ss_plugin_table_reader_vtable_ext::get_table_entry"]
508        [::std::mem::offset_of!(ss_plugin_table_reader_vtable_ext, get_table_entry) - 16usize];
509    ["Offset of field: ss_plugin_table_reader_vtable_ext::read_entry_field"]
510        [::std::mem::offset_of!(ss_plugin_table_reader_vtable_ext, read_entry_field) - 24usize];
511    ["Offset of field: ss_plugin_table_reader_vtable_ext::release_table_entry"]
512        [::std::mem::offset_of!(ss_plugin_table_reader_vtable_ext, release_table_entry) - 32usize];
513    ["Offset of field: ss_plugin_table_reader_vtable_ext::iterate_entries"]
514        [::std::mem::offset_of!(ss_plugin_table_reader_vtable_ext, iterate_entries) - 40usize];
515};
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct ss_plugin_table_writer_vtable {
519    pub clear_table:
520        ::std::option::Option<unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> ss_plugin_rc>,
521    pub erase_table_entry: ::std::option::Option<
522        unsafe extern "C" fn(
523            t: *mut ss_plugin_table_t,
524            key: *const ss_plugin_state_data,
525        ) -> ss_plugin_rc,
526    >,
527    pub create_table_entry: ::std::option::Option<
528        unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> *mut ss_plugin_table_entry_t,
529    >,
530    pub destroy_table_entry: ::std::option::Option<
531        unsafe extern "C" fn(t: *mut ss_plugin_table_t, e: *mut ss_plugin_table_entry_t),
532    >,
533    pub add_table_entry: ::std::option::Option<
534        unsafe extern "C" fn(
535            t: *mut ss_plugin_table_t,
536            key: *const ss_plugin_state_data,
537            entry: *mut ss_plugin_table_entry_t,
538        ) -> *mut ss_plugin_table_entry_t,
539    >,
540    pub write_entry_field: ::std::option::Option<
541        unsafe extern "C" fn(
542            t: *mut ss_plugin_table_t,
543            e: *mut ss_plugin_table_entry_t,
544            f: *const ss_plugin_table_field_t,
545            in_: *const ss_plugin_state_data,
546        ) -> ss_plugin_rc,
547    >,
548}
549#[allow(clippy::unnecessary_operation, clippy::identity_op)]
550const _: () = {
551    ["Size of ss_plugin_table_writer_vtable"]
552        [::std::mem::size_of::<ss_plugin_table_writer_vtable>() - 48usize];
553    ["Alignment of ss_plugin_table_writer_vtable"]
554        [::std::mem::align_of::<ss_plugin_table_writer_vtable>() - 8usize];
555    ["Offset of field: ss_plugin_table_writer_vtable::clear_table"]
556        [::std::mem::offset_of!(ss_plugin_table_writer_vtable, clear_table) - 0usize];
557    ["Offset of field: ss_plugin_table_writer_vtable::erase_table_entry"]
558        [::std::mem::offset_of!(ss_plugin_table_writer_vtable, erase_table_entry) - 8usize];
559    ["Offset of field: ss_plugin_table_writer_vtable::create_table_entry"]
560        [::std::mem::offset_of!(ss_plugin_table_writer_vtable, create_table_entry) - 16usize];
561    ["Offset of field: ss_plugin_table_writer_vtable::destroy_table_entry"]
562        [::std::mem::offset_of!(ss_plugin_table_writer_vtable, destroy_table_entry) - 24usize];
563    ["Offset of field: ss_plugin_table_writer_vtable::add_table_entry"]
564        [::std::mem::offset_of!(ss_plugin_table_writer_vtable, add_table_entry) - 32usize];
565    ["Offset of field: ss_plugin_table_writer_vtable::write_entry_field"]
566        [::std::mem::offset_of!(ss_plugin_table_writer_vtable, write_entry_field) - 40usize];
567};
568#[repr(C)]
569#[derive(Debug, Copy, Clone)]
570pub struct ss_plugin_table_writer_vtable_ext {
571    pub clear_table:
572        ::std::option::Option<unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> ss_plugin_rc>,
573    pub erase_table_entry: ::std::option::Option<
574        unsafe extern "C" fn(
575            t: *mut ss_plugin_table_t,
576            key: *const ss_plugin_state_data,
577        ) -> ss_plugin_rc,
578    >,
579    pub create_table_entry: ::std::option::Option<
580        unsafe extern "C" fn(t: *mut ss_plugin_table_t) -> *mut ss_plugin_table_entry_t,
581    >,
582    pub destroy_table_entry: ::std::option::Option<
583        unsafe extern "C" fn(t: *mut ss_plugin_table_t, e: *mut ss_plugin_table_entry_t),
584    >,
585    pub add_table_entry: ::std::option::Option<
586        unsafe extern "C" fn(
587            t: *mut ss_plugin_table_t,
588            key: *const ss_plugin_state_data,
589            entry: *mut ss_plugin_table_entry_t,
590        ) -> *mut ss_plugin_table_entry_t,
591    >,
592    pub write_entry_field: ::std::option::Option<
593        unsafe extern "C" fn(
594            t: *mut ss_plugin_table_t,
595            e: *mut ss_plugin_table_entry_t,
596            f: *const ss_plugin_table_field_t,
597            in_: *const ss_plugin_state_data,
598        ) -> ss_plugin_rc,
599    >,
600}
601#[allow(clippy::unnecessary_operation, clippy::identity_op)]
602const _: () = {
603    ["Size of ss_plugin_table_writer_vtable_ext"]
604        [::std::mem::size_of::<ss_plugin_table_writer_vtable_ext>() - 48usize];
605    ["Alignment of ss_plugin_table_writer_vtable_ext"]
606        [::std::mem::align_of::<ss_plugin_table_writer_vtable_ext>() - 8usize];
607    ["Offset of field: ss_plugin_table_writer_vtable_ext::clear_table"]
608        [::std::mem::offset_of!(ss_plugin_table_writer_vtable_ext, clear_table) - 0usize];
609    ["Offset of field: ss_plugin_table_writer_vtable_ext::erase_table_entry"]
610        [::std::mem::offset_of!(ss_plugin_table_writer_vtable_ext, erase_table_entry) - 8usize];
611    ["Offset of field: ss_plugin_table_writer_vtable_ext::create_table_entry"]
612        [::std::mem::offset_of!(ss_plugin_table_writer_vtable_ext, create_table_entry) - 16usize];
613    ["Offset of field: ss_plugin_table_writer_vtable_ext::destroy_table_entry"]
614        [::std::mem::offset_of!(ss_plugin_table_writer_vtable_ext, destroy_table_entry) - 24usize];
615    ["Offset of field: ss_plugin_table_writer_vtable_ext::add_table_entry"]
616        [::std::mem::offset_of!(ss_plugin_table_writer_vtable_ext, add_table_entry) - 32usize];
617    ["Offset of field: ss_plugin_table_writer_vtable_ext::write_entry_field"]
618        [::std::mem::offset_of!(ss_plugin_table_writer_vtable_ext, write_entry_field) - 40usize];
619};
620#[repr(C)]
621#[derive(Debug, Copy, Clone)]
622pub struct ss_plugin_table_input {
623    pub name: *const ::std::os::raw::c_char,
624    pub key_type: ss_plugin_state_type,
625    pub table: *mut ss_plugin_table_t,
626    pub reader: ss_plugin_table_reader_vtable,
627    pub writer: ss_plugin_table_writer_vtable,
628    pub fields: ss_plugin_table_fields_vtable,
629    pub reader_ext: *mut ss_plugin_table_reader_vtable_ext,
630    pub writer_ext: *mut ss_plugin_table_writer_vtable_ext,
631    pub fields_ext: *mut ss_plugin_table_fields_vtable_ext,
632}
633#[allow(clippy::unnecessary_operation, clippy::identity_op)]
634const _: () = {
635    ["Size of ss_plugin_table_input"][::std::mem::size_of::<ss_plugin_table_input>() - 152usize];
636    ["Alignment of ss_plugin_table_input"]
637        [::std::mem::align_of::<ss_plugin_table_input>() - 8usize];
638    ["Offset of field: ss_plugin_table_input::name"]
639        [::std::mem::offset_of!(ss_plugin_table_input, name) - 0usize];
640    ["Offset of field: ss_plugin_table_input::key_type"]
641        [::std::mem::offset_of!(ss_plugin_table_input, key_type) - 8usize];
642    ["Offset of field: ss_plugin_table_input::table"]
643        [::std::mem::offset_of!(ss_plugin_table_input, table) - 16usize];
644    ["Offset of field: ss_plugin_table_input::reader"]
645        [::std::mem::offset_of!(ss_plugin_table_input, reader) - 24usize];
646    ["Offset of field: ss_plugin_table_input::writer"]
647        [::std::mem::offset_of!(ss_plugin_table_input, writer) - 56usize];
648    ["Offset of field: ss_plugin_table_input::fields"]
649        [::std::mem::offset_of!(ss_plugin_table_input, fields) - 104usize];
650    ["Offset of field: ss_plugin_table_input::reader_ext"]
651        [::std::mem::offset_of!(ss_plugin_table_input, reader_ext) - 128usize];
652    ["Offset of field: ss_plugin_table_input::writer_ext"]
653        [::std::mem::offset_of!(ss_plugin_table_input, writer_ext) - 136usize];
654    ["Offset of field: ss_plugin_table_input::fields_ext"]
655        [::std::mem::offset_of!(ss_plugin_table_input, fields_ext) - 144usize];
656};
657#[repr(C)]
658#[derive(Debug, Copy, Clone)]
659pub struct ss_plugin_init_tables_input {
660    pub list_tables: ::std::option::Option<
661        unsafe extern "C" fn(
662            o: *mut ss_plugin_owner_t,
663            ntables: *mut u32,
664        ) -> *mut ss_plugin_table_info,
665    >,
666    pub get_table: ::std::option::Option<
667        unsafe extern "C" fn(
668            o: *mut ss_plugin_owner_t,
669            name: *const ::std::os::raw::c_char,
670            key_type: ss_plugin_state_type,
671        ) -> *mut ss_plugin_table_t,
672    >,
673    pub add_table: ::std::option::Option<
674        unsafe extern "C" fn(
675            o: *mut ss_plugin_owner_t,
676            in_: *const ss_plugin_table_input,
677        ) -> ss_plugin_rc,
678    >,
679    pub fields: ss_plugin_table_fields_vtable,
680    pub fields_ext: *mut ss_plugin_table_fields_vtable_ext,
681    pub reader_ext: *mut ss_plugin_table_reader_vtable_ext,
682    pub writer_ext: *mut ss_plugin_table_writer_vtable_ext,
683}
684#[allow(clippy::unnecessary_operation, clippy::identity_op)]
685const _: () = {
686    ["Size of ss_plugin_init_tables_input"]
687        [::std::mem::size_of::<ss_plugin_init_tables_input>() - 72usize];
688    ["Alignment of ss_plugin_init_tables_input"]
689        [::std::mem::align_of::<ss_plugin_init_tables_input>() - 8usize];
690    ["Offset of field: ss_plugin_init_tables_input::list_tables"]
691        [::std::mem::offset_of!(ss_plugin_init_tables_input, list_tables) - 0usize];
692    ["Offset of field: ss_plugin_init_tables_input::get_table"]
693        [::std::mem::offset_of!(ss_plugin_init_tables_input, get_table) - 8usize];
694    ["Offset of field: ss_plugin_init_tables_input::add_table"]
695        [::std::mem::offset_of!(ss_plugin_init_tables_input, add_table) - 16usize];
696    ["Offset of field: ss_plugin_init_tables_input::fields"]
697        [::std::mem::offset_of!(ss_plugin_init_tables_input, fields) - 24usize];
698    ["Offset of field: ss_plugin_init_tables_input::fields_ext"]
699        [::std::mem::offset_of!(ss_plugin_init_tables_input, fields_ext) - 48usize];
700    ["Offset of field: ss_plugin_init_tables_input::reader_ext"]
701        [::std::mem::offset_of!(ss_plugin_init_tables_input, reader_ext) - 56usize];
702    ["Offset of field: ss_plugin_init_tables_input::writer_ext"]
703        [::std::mem::offset_of!(ss_plugin_init_tables_input, writer_ext) - 64usize];
704};
705pub type ss_plugin_log_fn_t = ::std::option::Option<
706    unsafe extern "C" fn(
707        o: *mut ss_plugin_owner_t,
708        component: *const ::std::os::raw::c_char,
709        msg: *const ::std::os::raw::c_char,
710        sev: ss_plugin_log_severity,
711    ),
712>;
713#[repr(C)]
714#[derive(Debug, Copy, Clone)]
715pub struct ss_plugin_init_input {
716    pub config: *const ::std::os::raw::c_char,
717    pub owner: *mut ss_plugin_owner_t,
718    pub get_owner_last_error: ::std::option::Option<
719        unsafe extern "C" fn(o: *mut ss_plugin_owner_t) -> *const ::std::os::raw::c_char,
720    >,
721    pub tables: *const ss_plugin_init_tables_input,
722    pub log_fn: ss_plugin_log_fn_t,
723}
724#[allow(clippy::unnecessary_operation, clippy::identity_op)]
725const _: () = {
726    ["Size of ss_plugin_init_input"][::std::mem::size_of::<ss_plugin_init_input>() - 40usize];
727    ["Alignment of ss_plugin_init_input"][::std::mem::align_of::<ss_plugin_init_input>() - 8usize];
728    ["Offset of field: ss_plugin_init_input::config"]
729        [::std::mem::offset_of!(ss_plugin_init_input, config) - 0usize];
730    ["Offset of field: ss_plugin_init_input::owner"]
731        [::std::mem::offset_of!(ss_plugin_init_input, owner) - 8usize];
732    ["Offset of field: ss_plugin_init_input::get_owner_last_error"]
733        [::std::mem::offset_of!(ss_plugin_init_input, get_owner_last_error) - 16usize];
734    ["Offset of field: ss_plugin_init_input::tables"]
735        [::std::mem::offset_of!(ss_plugin_init_input, tables) - 24usize];
736    ["Offset of field: ss_plugin_init_input::log_fn"]
737        [::std::mem::offset_of!(ss_plugin_init_input, log_fn) - 32usize];
738};
739#[repr(C)]
740#[derive(Debug, Copy, Clone)]
741pub struct ss_plugin_field_extract_input {
742    pub owner: *mut ss_plugin_owner_t,
743    pub get_owner_last_error: ::std::option::Option<
744        unsafe extern "C" fn(o: *mut ss_plugin_owner_t) -> *const ::std::os::raw::c_char,
745    >,
746    pub num_fields: u32,
747    pub fields: *mut ss_plugin_extract_field,
748    pub table_reader: ss_plugin_table_reader_vtable,
749    pub table_reader_ext: *mut ss_plugin_table_reader_vtable_ext,
750    pub value_offsets: *mut ss_plugin_extract_value_offsets,
751}
752#[allow(clippy::unnecessary_operation, clippy::identity_op)]
753const _: () = {
754    ["Size of ss_plugin_field_extract_input"]
755        [::std::mem::size_of::<ss_plugin_field_extract_input>() - 80usize];
756    ["Alignment of ss_plugin_field_extract_input"]
757        [::std::mem::align_of::<ss_plugin_field_extract_input>() - 8usize];
758    ["Offset of field: ss_plugin_field_extract_input::owner"]
759        [::std::mem::offset_of!(ss_plugin_field_extract_input, owner) - 0usize];
760    ["Offset of field: ss_plugin_field_extract_input::get_owner_last_error"]
761        [::std::mem::offset_of!(ss_plugin_field_extract_input, get_owner_last_error) - 8usize];
762    ["Offset of field: ss_plugin_field_extract_input::num_fields"]
763        [::std::mem::offset_of!(ss_plugin_field_extract_input, num_fields) - 16usize];
764    ["Offset of field: ss_plugin_field_extract_input::fields"]
765        [::std::mem::offset_of!(ss_plugin_field_extract_input, fields) - 24usize];
766    ["Offset of field: ss_plugin_field_extract_input::table_reader"]
767        [::std::mem::offset_of!(ss_plugin_field_extract_input, table_reader) - 32usize];
768    ["Offset of field: ss_plugin_field_extract_input::table_reader_ext"]
769        [::std::mem::offset_of!(ss_plugin_field_extract_input, table_reader_ext) - 64usize];
770    ["Offset of field: ss_plugin_field_extract_input::value_offsets"]
771        [::std::mem::offset_of!(ss_plugin_field_extract_input, value_offsets) - 72usize];
772};
773#[repr(C)]
774#[derive(Debug, Copy, Clone)]
775pub struct ss_plugin_event_parse_input {
776    pub owner: *mut ss_plugin_owner_t,
777    pub get_owner_last_error: ::std::option::Option<
778        unsafe extern "C" fn(o: *mut ss_plugin_owner_t) -> *const ::std::os::raw::c_char,
779    >,
780    pub table_reader: ss_plugin_table_reader_vtable,
781    pub table_writer: ss_plugin_table_writer_vtable,
782    pub table_reader_ext: *mut ss_plugin_table_reader_vtable_ext,
783    pub table_writer_ext: *mut ss_plugin_table_writer_vtable_ext,
784}
785#[allow(clippy::unnecessary_operation, clippy::identity_op)]
786const _: () = {
787    ["Size of ss_plugin_event_parse_input"]
788        [::std::mem::size_of::<ss_plugin_event_parse_input>() - 112usize];
789    ["Alignment of ss_plugin_event_parse_input"]
790        [::std::mem::align_of::<ss_plugin_event_parse_input>() - 8usize];
791    ["Offset of field: ss_plugin_event_parse_input::owner"]
792        [::std::mem::offset_of!(ss_plugin_event_parse_input, owner) - 0usize];
793    ["Offset of field: ss_plugin_event_parse_input::get_owner_last_error"]
794        [::std::mem::offset_of!(ss_plugin_event_parse_input, get_owner_last_error) - 8usize];
795    ["Offset of field: ss_plugin_event_parse_input::table_reader"]
796        [::std::mem::offset_of!(ss_plugin_event_parse_input, table_reader) - 16usize];
797    ["Offset of field: ss_plugin_event_parse_input::table_writer"]
798        [::std::mem::offset_of!(ss_plugin_event_parse_input, table_writer) - 48usize];
799    ["Offset of field: ss_plugin_event_parse_input::table_reader_ext"]
800        [::std::mem::offset_of!(ss_plugin_event_parse_input, table_reader_ext) - 96usize];
801    ["Offset of field: ss_plugin_event_parse_input::table_writer_ext"]
802        [::std::mem::offset_of!(ss_plugin_event_parse_input, table_writer_ext) - 104usize];
803};
804#[repr(C)]
805#[derive(Debug, Copy, Clone)]
806pub struct ss_plugin_set_config_input {
807    pub config: *const ::std::os::raw::c_char,
808}
809#[allow(clippy::unnecessary_operation, clippy::identity_op)]
810const _: () = {
811    ["Size of ss_plugin_set_config_input"]
812        [::std::mem::size_of::<ss_plugin_set_config_input>() - 8usize];
813    ["Alignment of ss_plugin_set_config_input"]
814        [::std::mem::align_of::<ss_plugin_set_config_input>() - 8usize];
815    ["Offset of field: ss_plugin_set_config_input::config"]
816        [::std::mem::offset_of!(ss_plugin_set_config_input, config) - 0usize];
817};
818#[repr(transparent)]
819pub struct ss_plugin_routine_t(pub ::std::os::raw::c_void);
820#[repr(transparent)]
821pub struct ss_plugin_routine_state_t(pub ::std::os::raw::c_void);
822pub type ss_plugin_routine_fn_t = ::std::option::Option<
823    unsafe extern "C" fn(s: *mut ss_plugin_t, i: *mut ss_plugin_routine_state_t) -> ss_plugin_bool,
824>;
825#[repr(C)]
826#[derive(Debug, Copy, Clone)]
827pub struct ss_plugin_routine_vtable {
828    pub subscribe: ::std::option::Option<
829        unsafe extern "C" fn(
830            o: *mut ss_plugin_owner_t,
831            f: ss_plugin_routine_fn_t,
832            i: *mut ss_plugin_routine_state_t,
833        ) -> *mut ss_plugin_routine_t,
834    >,
835    pub unsubscribe: ::std::option::Option<
836        unsafe extern "C" fn(
837            o: *mut ss_plugin_owner_t,
838            r: *mut ss_plugin_routine_t,
839        ) -> ss_plugin_rc,
840    >,
841}
842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
843const _: () = {
844    ["Size of ss_plugin_routine_vtable"]
845        [::std::mem::size_of::<ss_plugin_routine_vtable>() - 16usize];
846    ["Alignment of ss_plugin_routine_vtable"]
847        [::std::mem::align_of::<ss_plugin_routine_vtable>() - 8usize];
848    ["Offset of field: ss_plugin_routine_vtable::subscribe"]
849        [::std::mem::offset_of!(ss_plugin_routine_vtable, subscribe) - 0usize];
850    ["Offset of field: ss_plugin_routine_vtable::unsubscribe"]
851        [::std::mem::offset_of!(ss_plugin_routine_vtable, unsubscribe) - 8usize];
852};
853#[repr(C)]
854#[derive(Debug, Copy, Clone)]
855pub struct ss_plugin_capture_listen_input {
856    pub owner: *mut ss_plugin_owner_t,
857    pub routine: *mut ss_plugin_routine_vtable,
858    pub table_reader_ext: *mut ss_plugin_table_reader_vtable_ext,
859    pub table_writer_ext: *mut ss_plugin_table_writer_vtable_ext,
860    pub get_owner_last_error: ::std::option::Option<
861        unsafe extern "C" fn(o: *mut ss_plugin_owner_t) -> *const ::std::os::raw::c_char,
862    >,
863}
864#[allow(clippy::unnecessary_operation, clippy::identity_op)]
865const _: () = {
866    ["Size of ss_plugin_capture_listen_input"]
867        [::std::mem::size_of::<ss_plugin_capture_listen_input>() - 40usize];
868    ["Alignment of ss_plugin_capture_listen_input"]
869        [::std::mem::align_of::<ss_plugin_capture_listen_input>() - 8usize];
870    ["Offset of field: ss_plugin_capture_listen_input::owner"]
871        [::std::mem::offset_of!(ss_plugin_capture_listen_input, owner) - 0usize];
872    ["Offset of field: ss_plugin_capture_listen_input::routine"]
873        [::std::mem::offset_of!(ss_plugin_capture_listen_input, routine) - 8usize];
874    ["Offset of field: ss_plugin_capture_listen_input::table_reader_ext"]
875        [::std::mem::offset_of!(ss_plugin_capture_listen_input, table_reader_ext) - 16usize];
876    ["Offset of field: ss_plugin_capture_listen_input::table_writer_ext"]
877        [::std::mem::offset_of!(ss_plugin_capture_listen_input, table_writer_ext) - 24usize];
878    ["Offset of field: ss_plugin_capture_listen_input::get_owner_last_error"]
879        [::std::mem::offset_of!(ss_plugin_capture_listen_input, get_owner_last_error) - 32usize];
880};
881pub type ss_plugin_async_event_handler_t = ::std::option::Option<
882    unsafe extern "C" fn(
883        o: *mut ss_plugin_owner_t,
884        evt: *const ss_plugin_event,
885        err: *mut ::std::os::raw::c_char,
886    ) -> ss_plugin_rc,
887>;
888#[repr(C)]
889#[derive(Debug, Copy, Clone)]
890pub struct plugin_api {
891    pub get_required_api_version:
892        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
893    pub get_init_schema: ::std::option::Option<
894        unsafe extern "C" fn(
895            schema_type: *mut ss_plugin_schema_type,
896        ) -> *const ::std::os::raw::c_char,
897    >,
898    pub init: ::std::option::Option<
899        unsafe extern "C" fn(
900            input: *const ss_plugin_init_input,
901            rc: *mut ss_plugin_rc,
902        ) -> *mut ss_plugin_t,
903    >,
904    pub destroy: ::std::option::Option<unsafe extern "C" fn(s: *mut ss_plugin_t)>,
905    pub get_last_error: ::std::option::Option<
906        unsafe extern "C" fn(s: *mut ss_plugin_t) -> *const ::std::os::raw::c_char,
907    >,
908    pub get_name: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
909    pub get_description:
910        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
911    pub get_contact: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
912    pub get_version: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
913    pub __bindgen_anon_1: plugin_api__bindgen_ty_1,
914    pub __bindgen_anon_2: plugin_api__bindgen_ty_2,
915    pub __bindgen_anon_3: plugin_api__bindgen_ty_3,
916    pub __bindgen_anon_4: plugin_api__bindgen_ty_4,
917    pub set_config: ::std::option::Option<
918        unsafe extern "C" fn(
919            s: *mut ss_plugin_t,
920            i: *const ss_plugin_set_config_input,
921        ) -> ss_plugin_rc,
922    >,
923    pub get_metrics: ::std::option::Option<
924        unsafe extern "C" fn(s: *mut ss_plugin_t, num_metrics: *mut u32) -> *mut ss_plugin_metric,
925    >,
926    pub __bindgen_anon_5: plugin_api__bindgen_ty_5,
927    pub get_required_event_schema_version: ::std::option::Option<
928        unsafe extern "C" fn(s: *mut ss_plugin_t) -> *const ::std::os::raw::c_char,
929    >,
930}
931#[repr(C)]
932#[derive(Debug, Copy, Clone)]
933pub struct plugin_api__bindgen_ty_1 {
934    pub get_id: ::std::option::Option<unsafe extern "C" fn() -> u32>,
935    pub get_event_source:
936        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
937    pub open: ::std::option::Option<
938        unsafe extern "C" fn(
939            s: *mut ss_plugin_t,
940            params: *const ::std::os::raw::c_char,
941            rc: *mut ss_plugin_rc,
942        ) -> *mut ss_instance_t,
943    >,
944    pub close:
945        ::std::option::Option<unsafe extern "C" fn(s: *mut ss_plugin_t, h: *mut ss_instance_t)>,
946    pub list_open_params: ::std::option::Option<
947        unsafe extern "C" fn(
948            s: *mut ss_plugin_t,
949            rc: *mut ss_plugin_rc,
950        ) -> *const ::std::os::raw::c_char,
951    >,
952    pub get_progress: ::std::option::Option<
953        unsafe extern "C" fn(
954            s: *mut ss_plugin_t,
955            h: *mut ss_instance_t,
956            progress_pct: *mut u32,
957        ) -> *const ::std::os::raw::c_char,
958    >,
959    pub event_to_string: ::std::option::Option<
960        unsafe extern "C" fn(
961            s: *mut ss_plugin_t,
962            evt: *const ss_plugin_event_input,
963        ) -> *const ::std::os::raw::c_char,
964    >,
965    pub next_batch: ::std::option::Option<
966        unsafe extern "C" fn(
967            s: *mut ss_plugin_t,
968            h: *mut ss_instance_t,
969            nevts: *mut u32,
970            evts: *mut *mut *mut ss_plugin_event,
971        ) -> ss_plugin_rc,
972    >,
973}
974#[allow(clippy::unnecessary_operation, clippy::identity_op)]
975const _: () = {
976    ["Size of plugin_api__bindgen_ty_1"]
977        [::std::mem::size_of::<plugin_api__bindgen_ty_1>() - 64usize];
978    ["Alignment of plugin_api__bindgen_ty_1"]
979        [::std::mem::align_of::<plugin_api__bindgen_ty_1>() - 8usize];
980    ["Offset of field: plugin_api__bindgen_ty_1::get_id"]
981        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, get_id) - 0usize];
982    ["Offset of field: plugin_api__bindgen_ty_1::get_event_source"]
983        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, get_event_source) - 8usize];
984    ["Offset of field: plugin_api__bindgen_ty_1::open"]
985        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, open) - 16usize];
986    ["Offset of field: plugin_api__bindgen_ty_1::close"]
987        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, close) - 24usize];
988    ["Offset of field: plugin_api__bindgen_ty_1::list_open_params"]
989        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, list_open_params) - 32usize];
990    ["Offset of field: plugin_api__bindgen_ty_1::get_progress"]
991        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, get_progress) - 40usize];
992    ["Offset of field: plugin_api__bindgen_ty_1::event_to_string"]
993        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, event_to_string) - 48usize];
994    ["Offset of field: plugin_api__bindgen_ty_1::next_batch"]
995        [::std::mem::offset_of!(plugin_api__bindgen_ty_1, next_batch) - 56usize];
996};
997#[repr(C)]
998#[derive(Debug, Copy, Clone)]
999pub struct plugin_api__bindgen_ty_2 {
1000    pub get_extract_event_types: ::std::option::Option<
1001        unsafe extern "C" fn(numtypes: *mut u32, s: *mut ss_plugin_t) -> *mut u16,
1002    >,
1003    pub get_extract_event_sources:
1004        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
1005    pub get_fields: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
1006    pub extract_fields: ::std::option::Option<
1007        unsafe extern "C" fn(
1008            s: *mut ss_plugin_t,
1009            evt: *const ss_plugin_event_input,
1010            in_: *const ss_plugin_field_extract_input,
1011        ) -> ss_plugin_rc,
1012    >,
1013}
1014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1015const _: () = {
1016    ["Size of plugin_api__bindgen_ty_2"]
1017        [::std::mem::size_of::<plugin_api__bindgen_ty_2>() - 32usize];
1018    ["Alignment of plugin_api__bindgen_ty_2"]
1019        [::std::mem::align_of::<plugin_api__bindgen_ty_2>() - 8usize];
1020    ["Offset of field: plugin_api__bindgen_ty_2::get_extract_event_types"]
1021        [::std::mem::offset_of!(plugin_api__bindgen_ty_2, get_extract_event_types) - 0usize];
1022    ["Offset of field: plugin_api__bindgen_ty_2::get_extract_event_sources"]
1023        [::std::mem::offset_of!(plugin_api__bindgen_ty_2, get_extract_event_sources) - 8usize];
1024    ["Offset of field: plugin_api__bindgen_ty_2::get_fields"]
1025        [::std::mem::offset_of!(plugin_api__bindgen_ty_2, get_fields) - 16usize];
1026    ["Offset of field: plugin_api__bindgen_ty_2::extract_fields"]
1027        [::std::mem::offset_of!(plugin_api__bindgen_ty_2, extract_fields) - 24usize];
1028};
1029#[repr(C)]
1030#[derive(Debug, Copy, Clone)]
1031pub struct plugin_api__bindgen_ty_3 {
1032    pub get_parse_event_types: ::std::option::Option<
1033        unsafe extern "C" fn(numtypes: *mut u32, s: *mut ss_plugin_t) -> *mut u16,
1034    >,
1035    pub get_parse_event_sources:
1036        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
1037    pub parse_event: ::std::option::Option<
1038        unsafe extern "C" fn(
1039            s: *mut ss_plugin_t,
1040            evt: *const ss_plugin_event_input,
1041            in_: *const ss_plugin_event_parse_input,
1042        ) -> ss_plugin_rc,
1043    >,
1044}
1045#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1046const _: () = {
1047    ["Size of plugin_api__bindgen_ty_3"]
1048        [::std::mem::size_of::<plugin_api__bindgen_ty_3>() - 24usize];
1049    ["Alignment of plugin_api__bindgen_ty_3"]
1050        [::std::mem::align_of::<plugin_api__bindgen_ty_3>() - 8usize];
1051    ["Offset of field: plugin_api__bindgen_ty_3::get_parse_event_types"]
1052        [::std::mem::offset_of!(plugin_api__bindgen_ty_3, get_parse_event_types) - 0usize];
1053    ["Offset of field: plugin_api__bindgen_ty_3::get_parse_event_sources"]
1054        [::std::mem::offset_of!(plugin_api__bindgen_ty_3, get_parse_event_sources) - 8usize];
1055    ["Offset of field: plugin_api__bindgen_ty_3::parse_event"]
1056        [::std::mem::offset_of!(plugin_api__bindgen_ty_3, parse_event) - 16usize];
1057};
1058#[repr(C)]
1059#[derive(Debug, Copy, Clone)]
1060pub struct plugin_api__bindgen_ty_4 {
1061    pub get_async_event_sources:
1062        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
1063    pub get_async_events:
1064        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
1065    pub set_async_event_handler: ::std::option::Option<
1066        unsafe extern "C" fn(
1067            s: *mut ss_plugin_t,
1068            owner: *mut ss_plugin_owner_t,
1069            handler: ss_plugin_async_event_handler_t,
1070        ) -> ss_plugin_rc,
1071    >,
1072    pub dump_state: ::std::option::Option<
1073        unsafe extern "C" fn(
1074            s: *mut ss_plugin_t,
1075            owner: *mut ss_plugin_owner_t,
1076            handler: ss_plugin_async_event_handler_t,
1077        ) -> ss_plugin_rc,
1078    >,
1079}
1080#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1081const _: () = {
1082    ["Size of plugin_api__bindgen_ty_4"]
1083        [::std::mem::size_of::<plugin_api__bindgen_ty_4>() - 32usize];
1084    ["Alignment of plugin_api__bindgen_ty_4"]
1085        [::std::mem::align_of::<plugin_api__bindgen_ty_4>() - 8usize];
1086    ["Offset of field: plugin_api__bindgen_ty_4::get_async_event_sources"]
1087        [::std::mem::offset_of!(plugin_api__bindgen_ty_4, get_async_event_sources) - 0usize];
1088    ["Offset of field: plugin_api__bindgen_ty_4::get_async_events"]
1089        [::std::mem::offset_of!(plugin_api__bindgen_ty_4, get_async_events) - 8usize];
1090    ["Offset of field: plugin_api__bindgen_ty_4::set_async_event_handler"]
1091        [::std::mem::offset_of!(plugin_api__bindgen_ty_4, set_async_event_handler) - 16usize];
1092    ["Offset of field: plugin_api__bindgen_ty_4::dump_state"]
1093        [::std::mem::offset_of!(plugin_api__bindgen_ty_4, dump_state) - 24usize];
1094};
1095#[repr(C)]
1096#[derive(Debug, Copy, Clone)]
1097pub struct plugin_api__bindgen_ty_5 {
1098    pub capture_open: ::std::option::Option<
1099        unsafe extern "C" fn(
1100            s: *mut ss_plugin_t,
1101            i: *const ss_plugin_capture_listen_input,
1102        ) -> ss_plugin_rc,
1103    >,
1104    pub capture_close: ::std::option::Option<
1105        unsafe extern "C" fn(
1106            s: *mut ss_plugin_t,
1107            i: *const ss_plugin_capture_listen_input,
1108        ) -> ss_plugin_rc,
1109    >,
1110}
1111#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1112const _: () = {
1113    ["Size of plugin_api__bindgen_ty_5"]
1114        [::std::mem::size_of::<plugin_api__bindgen_ty_5>() - 16usize];
1115    ["Alignment of plugin_api__bindgen_ty_5"]
1116        [::std::mem::align_of::<plugin_api__bindgen_ty_5>() - 8usize];
1117    ["Offset of field: plugin_api__bindgen_ty_5::capture_open"]
1118        [::std::mem::offset_of!(plugin_api__bindgen_ty_5, capture_open) - 0usize];
1119    ["Offset of field: plugin_api__bindgen_ty_5::capture_close"]
1120        [::std::mem::offset_of!(plugin_api__bindgen_ty_5, capture_close) - 8usize];
1121};
1122#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1123const _: () = {
1124    ["Size of plugin_api"][::std::mem::size_of::<plugin_api>() - 264usize];
1125    ["Alignment of plugin_api"][::std::mem::align_of::<plugin_api>() - 8usize];
1126    ["Offset of field: plugin_api::get_required_api_version"]
1127        [::std::mem::offset_of!(plugin_api, get_required_api_version) - 0usize];
1128    ["Offset of field: plugin_api::get_init_schema"]
1129        [::std::mem::offset_of!(plugin_api, get_init_schema) - 8usize];
1130    ["Offset of field: plugin_api::init"][::std::mem::offset_of!(plugin_api, init) - 16usize];
1131    ["Offset of field: plugin_api::destroy"][::std::mem::offset_of!(plugin_api, destroy) - 24usize];
1132    ["Offset of field: plugin_api::get_last_error"]
1133        [::std::mem::offset_of!(plugin_api, get_last_error) - 32usize];
1134    ["Offset of field: plugin_api::get_name"]
1135        [::std::mem::offset_of!(plugin_api, get_name) - 40usize];
1136    ["Offset of field: plugin_api::get_description"]
1137        [::std::mem::offset_of!(plugin_api, get_description) - 48usize];
1138    ["Offset of field: plugin_api::get_contact"]
1139        [::std::mem::offset_of!(plugin_api, get_contact) - 56usize];
1140    ["Offset of field: plugin_api::get_version"]
1141        [::std::mem::offset_of!(plugin_api, get_version) - 64usize];
1142    ["Offset of field: plugin_api::set_config"]
1143        [::std::mem::offset_of!(plugin_api, set_config) - 224usize];
1144    ["Offset of field: plugin_api::get_metrics"]
1145        [::std::mem::offset_of!(plugin_api, get_metrics) - 232usize];
1146    ["Offset of field: plugin_api::get_required_event_schema_version"]
1147        [::std::mem::offset_of!(plugin_api, get_required_event_schema_version) - 256usize];
1148};