Skip to main content

fdf_sys/
bindings.rs

1// Copyright 2024 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Generated by sdk/lib/driver/runtime/rust/fdf_sys/bindgen.sh using bindgen 0.72.0
6
7#![allow(dead_code)]
8#![allow(non_camel_case_types)]
9#![allow(non_snake_case)]
10
11use libasync_sys::*;
12use zx_types::*;
13
14pub const DRIVER_REGISTRATION_VERSION_1: u32 = 1;
15pub const DRIVER_REGISTRATION_VERSION_MAX: u32 = 1;
16pub type fdf_handle_t = zx_handle_t;
17pub type fdf_txid_t = zx_txid_t;
18#[repr(C)]
19#[derive(Debug)]
20pub struct fdf_arena {
21    _unused: [u8; 0],
22}
23#[repr(C)]
24#[derive(Debug, Copy, Clone)]
25pub struct fdf_channel_call_args {
26    pub wr_arena: *mut fdf_arena,
27    pub wr_data: *mut ::core::ffi::c_void,
28    pub wr_num_bytes: u32,
29    pub wr_handles: *mut zx_handle_t,
30    pub wr_num_handles: u32,
31    pub rd_arena: *mut *mut fdf_arena,
32    pub rd_data: *mut *mut ::core::ffi::c_void,
33    pub rd_num_bytes: *mut u32,
34    pub rd_handles: *mut *mut zx_handle_t,
35    pub rd_num_handles: *mut u32,
36}
37#[allow(clippy::unnecessary_operation, clippy::identity_op)]
38const _: () = {
39    ["Size of fdf_channel_call_args"][::core::mem::size_of::<fdf_channel_call_args>() - 80usize];
40    ["Alignment of fdf_channel_call_args"]
41        [::core::mem::align_of::<fdf_channel_call_args>() - 8usize];
42    ["Offset of field: fdf_channel_call_args::wr_arena"]
43        [::core::mem::offset_of!(fdf_channel_call_args, wr_arena) - 0usize];
44    ["Offset of field: fdf_channel_call_args::wr_data"]
45        [::core::mem::offset_of!(fdf_channel_call_args, wr_data) - 8usize];
46    ["Offset of field: fdf_channel_call_args::wr_num_bytes"]
47        [::core::mem::offset_of!(fdf_channel_call_args, wr_num_bytes) - 16usize];
48    ["Offset of field: fdf_channel_call_args::wr_handles"]
49        [::core::mem::offset_of!(fdf_channel_call_args, wr_handles) - 24usize];
50    ["Offset of field: fdf_channel_call_args::wr_num_handles"]
51        [::core::mem::offset_of!(fdf_channel_call_args, wr_num_handles) - 32usize];
52    ["Offset of field: fdf_channel_call_args::rd_arena"]
53        [::core::mem::offset_of!(fdf_channel_call_args, rd_arena) - 40usize];
54    ["Offset of field: fdf_channel_call_args::rd_data"]
55        [::core::mem::offset_of!(fdf_channel_call_args, rd_data) - 48usize];
56    ["Offset of field: fdf_channel_call_args::rd_num_bytes"]
57        [::core::mem::offset_of!(fdf_channel_call_args, rd_num_bytes) - 56usize];
58    ["Offset of field: fdf_channel_call_args::rd_handles"]
59        [::core::mem::offset_of!(fdf_channel_call_args, rd_handles) - 64usize];
60    ["Offset of field: fdf_channel_call_args::rd_num_handles"]
61        [::core::mem::offset_of!(fdf_channel_call_args, rd_num_handles) - 72usize];
62};
63impl Default for fdf_channel_call_args {
64    fn default() -> Self {
65        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
66        unsafe {
67            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
68            s.assume_init()
69        }
70    }
71}
72pub type fdf_channel_call_args_t = fdf_channel_call_args;
73pub const FDF_SCHEDULER_ROLE_OPTION_NO_SYNC_CALLS: u32 = 1;
74pub const FDF_DISPATCHER_OPTION_SYNCHRONIZED: u32 = 0;
75pub const FDF_DISPATCHER_OPTION_UNSYNCHRONIZED: u32 = 1;
76pub const FDF_DISPATCHER_OPTION_ALLOW_SYNC_CALLS: u32 = 2;
77pub const FDF_DISPATCHER_OPTION_NO_THREAD_MIGRATION: u32 = 4;
78pub const FDF_DISPATCHER_OPTION_SYNCHRONIZATION_MASK: u32 = 1;
79pub const FDF_CHANNEL_WAIT_OPTION_FORCE_ASYNC_CANCEL: u32 = 1;
80pub type fdf_arena_t = fdf_arena;
81pub type fdf_arena_tag_t = u32;
82unsafe extern "C" {
83    pub fn fdf_arena_create(
84        options: u32,
85        tag: fdf_arena_tag_t,
86        out_arena: *mut *mut fdf_arena_t,
87    ) -> zx_status_t;
88}
89unsafe extern "C" {
90    pub fn fdf_arena_allocate(arena: *mut fdf_arena_t, bytes: usize) -> *mut ::core::ffi::c_void;
91}
92unsafe extern "C" {
93    pub fn fdf_arena_free(arena: *mut fdf_arena_t, ptr: *mut ::core::ffi::c_void);
94}
95unsafe extern "C" {
96    pub fn fdf_arena_contains(
97        arena: *mut fdf_arena_t,
98        ptr: *const ::core::ffi::c_void,
99        num_bytes: usize,
100    ) -> bool;
101}
102unsafe extern "C" {
103    pub fn fdf_arena_add_ref(arena: *mut fdf_arena_t);
104}
105unsafe extern "C" {
106    pub fn fdf_arena_drop_ref(arena: *mut fdf_arena_t);
107}
108#[repr(C)]
109#[derive(Debug)]
110pub struct fdf_dispatcher {
111    _unused: [u8; 0],
112}
113pub type fdf_dispatcher_t = fdf_dispatcher;
114pub type fdf_dispatcher_shutdown_observer_t = fdf_dispatcher_shutdown_observer;
115pub type fdf_dispatcher_shutdown_handler_t = ::core::option::Option<
116    unsafe extern "C" fn(
117        dispatcher: *mut fdf_dispatcher_t,
118        observer: *mut fdf_dispatcher_shutdown_observer_t,
119    ),
120>;
121#[repr(C)]
122#[derive(Debug, Default, Copy, Clone)]
123pub struct fdf_dispatcher_shutdown_observer {
124    pub handler: fdf_dispatcher_shutdown_handler_t,
125}
126#[allow(clippy::unnecessary_operation, clippy::identity_op)]
127const _: () = {
128    ["Size of fdf_dispatcher_shutdown_observer"]
129        [::core::mem::size_of::<fdf_dispatcher_shutdown_observer>() - 8usize];
130    ["Alignment of fdf_dispatcher_shutdown_observer"]
131        [::core::mem::align_of::<fdf_dispatcher_shutdown_observer>() - 8usize];
132    ["Offset of field: fdf_dispatcher_shutdown_observer::handler"]
133        [::core::mem::offset_of!(fdf_dispatcher_shutdown_observer, handler) - 0usize];
134};
135unsafe extern "C" {
136    pub fn fdf_dispatcher_create(
137        options: u32,
138        name: *const ::core::ffi::c_char,
139        name_len: usize,
140        scheduler_role: *const ::core::ffi::c_char,
141        scheduler_role_len: usize,
142        observer: *mut fdf_dispatcher_shutdown_observer_t,
143        out_dispatcher: *mut *mut fdf_dispatcher_t,
144    ) -> zx_status_t;
145}
146unsafe extern "C" {
147    pub fn fdf_dispatcher_get_async_dispatcher(
148        dispatcher: *mut fdf_dispatcher_t,
149    ) -> *mut async_dispatcher_t;
150}
151unsafe extern "C" {
152    pub fn fdf_dispatcher_downcast_async_dispatcher(
153        async_dispatcher: *mut async_dispatcher_t,
154    ) -> *mut fdf_dispatcher_t;
155}
156unsafe extern "C" {
157    pub fn fdf_dispatcher_get_current_dispatcher() -> *mut fdf_dispatcher_t;
158}
159unsafe extern "C" {
160    pub fn fdf_dispatcher_get_options(dispatcher: *const fdf_dispatcher_t) -> u32;
161}
162unsafe extern "C" {
163    pub fn fdf_dispatcher_shutdown_async(dispatcher: *mut fdf_dispatcher_t);
164}
165unsafe extern "C" {
166    pub fn fdf_dispatcher_destroy(dispatcher: *mut fdf_dispatcher_t);
167}
168unsafe extern "C" {
169    pub fn fdf_dispatcher_seal(dispatcher: *mut fdf_dispatcher_t, option: u32) -> zx_status_t;
170}
171unsafe extern "C" {
172    pub fn fdf_dispatcher_get_always_on_dispatcher(
173        dispatcher: *mut fdf_dispatcher_t,
174    ) -> *mut fdf_dispatcher_t;
175}
176unsafe extern "C" {
177    pub fn fdf_dispatcher_register_wake_vector(
178        dispatcher: *mut fdf_dispatcher_t,
179        handle: zx_handle_t,
180        signals: zx_signals_t,
181    ) -> zx_status_t;
182}
183unsafe extern "C" {
184    pub fn fdf_dispatcher_unregister_wake_vector(
185        dispatcher: *mut fdf_dispatcher_t,
186        handle: zx_handle_t,
187        signals: zx_signals_t,
188    ) -> zx_status_t;
189}
190unsafe extern "C" {
191    pub fn fdf_handle_close(handle: fdf_handle_t);
192}
193unsafe extern "C" {
194    pub fn fdf_channel_create(
195        options: u32,
196        out0: *mut fdf_handle_t,
197        out1: *mut fdf_handle_t,
198    ) -> zx_status_t;
199}
200unsafe extern "C" {
201    pub fn fdf_channel_write(
202        channel: fdf_handle_t,
203        options: u32,
204        arena: *mut fdf_arena_t,
205        data: *mut ::core::ffi::c_void,
206        num_bytes: u32,
207        handles: *mut zx_handle_t,
208        num_handles: u32,
209    ) -> zx_status_t;
210}
211unsafe extern "C" {
212    pub fn fdf_channel_read(
213        channel: fdf_handle_t,
214        options: u32,
215        out_arena: *mut *mut fdf_arena_t,
216        out_data: *mut *mut ::core::ffi::c_void,
217        out_num_bytes: *mut u32,
218        out_handles: *mut *mut zx_handle_t,
219        out_num_handles: *mut u32,
220    ) -> zx_status_t;
221}
222unsafe extern "C" {
223    pub fn fdf_channel_wait_async(
224        dispatcher: *mut fdf_dispatcher,
225        channel_read: *mut fdf_channel_read,
226        options: u32,
227    ) -> zx_status_t;
228}
229unsafe extern "C" {
230    pub fn fdf_channel_cancel_wait(handle: fdf_handle_t) -> zx_status_t;
231}
232unsafe extern "C" {
233    pub fn fdf_channel_call(
234        handle: fdf_handle_t,
235        options: u32,
236        deadline: zx_time_t,
237        args: *const fdf_channel_call_args_t,
238    ) -> zx_status_t;
239}
240pub type fdf_channel_read_t = fdf_channel_read;
241pub type fdf_channel_read_handler_t = ::core::option::Option<
242    unsafe extern "C" fn(
243        dispatcher: *mut fdf_dispatcher_t,
244        read: *mut fdf_channel_read_t,
245        status: zx_status_t,
246    ),
247>;
248#[repr(C)]
249pub struct fdf_channel_read {
250    pub state: async_state_t,
251    pub handler: fdf_channel_read_handler_t,
252    pub channel: fdf_handle_t,
253    pub options: u32,
254}
255#[allow(clippy::unnecessary_operation, clippy::identity_op)]
256const _: () = {
257    ["Size of fdf_channel_read"][::core::mem::size_of::<fdf_channel_read>() - 32usize];
258    ["Alignment of fdf_channel_read"][::core::mem::align_of::<fdf_channel_read>() - 8usize];
259    ["Offset of field: fdf_channel_read::state"]
260        [::core::mem::offset_of!(fdf_channel_read, state) - 0usize];
261    ["Offset of field: fdf_channel_read::handler"]
262        [::core::mem::offset_of!(fdf_channel_read, handler) - 16usize];
263    ["Offset of field: fdf_channel_read::channel"]
264        [::core::mem::offset_of!(fdf_channel_read, channel) - 24usize];
265    ["Offset of field: fdf_channel_read::options"]
266        [::core::mem::offset_of!(fdf_channel_read, options) - 28usize];
267};
268impl Default for fdf_channel_read {
269    fn default() -> Self {
270        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
271        unsafe {
272            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
273            s.assume_init()
274        }
275    }
276}
277impl ::core::fmt::Debug for fdf_channel_read {
278    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
279        write!(f, "fdf_channel_read {{ handler: {:?} }}", self.handler)
280    }
281}
282pub type fdf_env_driver_shutdown_observer_t = fdf_env_driver_shutdown_observer;
283pub type fdf_env_driver_shutdown_handler_t = ::core::option::Option<
284    unsafe extern "C" fn(
285        driver: *const ::core::ffi::c_void,
286        observer: *mut fdf_env_driver_shutdown_observer_t,
287    ),
288>;
289#[repr(C)]
290#[derive(Debug, Default, Copy, Clone)]
291pub struct fdf_env_driver_shutdown_observer {
292    pub handler: fdf_env_driver_shutdown_handler_t,
293}
294#[allow(clippy::unnecessary_operation, clippy::identity_op)]
295const _: () = {
296    ["Size of fdf_env_driver_shutdown_observer"]
297        [::core::mem::size_of::<fdf_env_driver_shutdown_observer>() - 8usize];
298    ["Alignment of fdf_env_driver_shutdown_observer"]
299        [::core::mem::align_of::<fdf_env_driver_shutdown_observer>() - 8usize];
300    ["Offset of field: fdf_env_driver_shutdown_observer::handler"]
301        [::core::mem::offset_of!(fdf_env_driver_shutdown_observer, handler) - 0usize];
302};
303pub type fdf_env_stall_scanner_t = fdf_env_stall_scanner;
304pub type fdf_env_stall_scan_begin = ::core::option::Option<
305    unsafe extern "C" fn(scanner: *mut fdf_env_stall_scanner_t, duration: zx_duration_mono_t),
306>;
307#[repr(C)]
308#[derive(Debug, Default, Copy, Clone)]
309pub struct fdf_env_stall_scanner {
310    pub handler: fdf_env_stall_scan_begin,
311}
312#[allow(clippy::unnecessary_operation, clippy::identity_op)]
313const _: () = {
314    ["Size of fdf_env_stall_scanner"][::core::mem::size_of::<fdf_env_stall_scanner>() - 8usize];
315    ["Alignment of fdf_env_stall_scanner"]
316        [::core::mem::align_of::<fdf_env_stall_scanner>() - 8usize];
317    ["Offset of field: fdf_env_stall_scanner::handler"]
318        [::core::mem::offset_of!(fdf_env_stall_scanner, handler) - 0usize];
319};
320pub type fdf_env_resume_requester_t = fdf_env_resume_requester;
321pub type fdf_env_resume_request = ::core::option::Option<
322    unsafe extern "C" fn(requester: *mut fdf_env_resume_requester_t) -> zx_status_t,
323>;
324#[repr(C)]
325#[derive(Debug, Default, Copy, Clone)]
326pub struct fdf_env_resume_requester {
327    pub handler: fdf_env_resume_request,
328}
329#[allow(clippy::unnecessary_operation, clippy::identity_op)]
330const _: () = {
331    ["Size of fdf_env_resume_requester"]
332        [::core::mem::size_of::<fdf_env_resume_requester>() - 8usize];
333    ["Alignment of fdf_env_resume_requester"]
334        [::core::mem::align_of::<fdf_env_resume_requester>() - 8usize];
335    ["Offset of field: fdf_env_resume_requester::handler"]
336        [::core::mem::offset_of!(fdf_env_resume_requester, handler) - 0usize];
337};
338pub type fdf_env_suspend_completer_t = fdf_env_suspend_completer;
339pub type fdf_env_suspend_complete =
340    ::core::option::Option<unsafe extern "C" fn(completer: *mut fdf_env_suspend_completer_t)>;
341#[repr(C)]
342#[derive(Debug, Default, Copy, Clone)]
343pub struct fdf_env_suspend_completer {
344    pub handler: fdf_env_suspend_complete,
345}
346#[allow(clippy::unnecessary_operation, clippy::identity_op)]
347const _: () = {
348    ["Size of fdf_env_suspend_completer"]
349        [::core::mem::size_of::<fdf_env_suspend_completer>() - 8usize];
350    ["Alignment of fdf_env_suspend_completer"]
351        [::core::mem::align_of::<fdf_env_suspend_completer>() - 8usize];
352    ["Offset of field: fdf_env_suspend_completer::handler"]
353        [::core::mem::offset_of!(fdf_env_suspend_completer, handler) - 0usize];
354};
355unsafe extern "C" {
356    pub fn fdf_env_start(options: u32) -> zx_status_t;
357}
358unsafe extern "C" {
359    pub fn fdf_env_reset();
360}
361unsafe extern "C" {
362    pub fn fdf_env_dispatcher_create_with_owner(
363        driver: *const ::core::ffi::c_void,
364        options: u32,
365        name: *const ::core::ffi::c_char,
366        name_len: usize,
367        scheduler_role: *const ::core::ffi::c_char,
368        scheduler_role_len: usize,
369        observer: *mut fdf_dispatcher_shutdown_observer_t,
370        out_dispatcher: *mut *mut fdf_dispatcher_t,
371    ) -> zx_status_t;
372}
373unsafe extern "C" {
374    pub fn fdf_env_dispatcher_dump(dispatcher: *mut fdf_dispatcher_t);
375}
376unsafe extern "C" {
377    pub fn fdf_env_dispatcher_get_dump_deprecated(
378        dispatcher: *mut fdf_dispatcher_t,
379        out_dump: *mut *mut ::core::ffi::c_char,
380    );
381}
382unsafe extern "C" {
383    pub fn fdf_env_shutdown_dispatchers_async(
384        driver: *const ::core::ffi::c_void,
385        observer: *mut fdf_env_driver_shutdown_observer_t,
386    ) -> zx_status_t;
387}
388unsafe extern "C" {
389    pub fn fdf_env_destroy_all_dispatchers();
390}
391unsafe extern "C" {
392    pub fn fdf_env_register_driver_entry(driver: *const ::core::ffi::c_void);
393}
394unsafe extern "C" {
395    pub fn fdf_env_register_driver_exit();
396}
397unsafe extern "C" {
398    pub fn fdf_env_get_current_driver() -> *const ::core::ffi::c_void;
399}
400unsafe extern "C" {
401    pub fn fdf_env_dispatcher_has_queued_tasks(dispatcher: *mut fdf_dispatcher_t) -> bool;
402}
403unsafe extern "C" {
404    pub fn fdf_env_get_thread_limit(
405        scheduler_role: *const ::core::ffi::c_char,
406        scheduler_role_len: usize,
407    ) -> u32;
408}
409unsafe extern "C" {
410    pub fn fdf_env_set_thread_limit(
411        scheduler_role: *const ::core::ffi::c_char,
412        scheduler_role_len: usize,
413        max_threads: u32,
414    ) -> zx_status_t;
415}
416unsafe extern "C" {
417    #[doc = " Returns the currently set options for the scheduler role as a uint32_t bitmask."]
418    pub fn fdf_env_get_scheduler_role_opts(
419        scheduler_role: *const ::core::ffi::c_char,
420        scheduler_role_len: usize,
421    ) -> u32;
422}
423unsafe extern "C" {
424    pub fn fdf_env_set_scheduler_role_opts(
425        scheduler_role: *const ::core::ffi::c_char,
426        scheduler_role_len: usize,
427        options: u32,
428    ) -> zx_status_t;
429}
430unsafe extern "C" {
431    pub fn fdf_env_add_allowed_scheduler_role_for_driver(
432        driver: *const ::core::ffi::c_void,
433        role: *const ::core::ffi::c_char,
434        role_length: usize,
435    );
436}
437unsafe extern "C" {
438    pub fn fdf_env_get_driver_on_tid(
439        tid: zx_koid_t,
440        out_driver: *mut *const ::core::ffi::c_void,
441    ) -> zx_status_t;
442}
443unsafe extern "C" {
444    pub fn fdf_env_scan_threads_for_stalls();
445}
446unsafe extern "C" {
447    pub fn fdf_env_scan_threads_for_stalls2() -> zx_duration_mono_t;
448}
449unsafe extern "C" {
450    pub fn fdf_env_register_stall_scanner(scanner: *mut fdf_env_stall_scanner_t);
451}
452unsafe extern "C" {
453    pub fn fdf_env_register_resume_requester(
454        driver: *const ::core::ffi::c_void,
455        requester: *mut fdf_env_resume_requester_t,
456    );
457}
458unsafe extern "C" {
459    pub fn fdf_env_driver_suspend(
460        driver: *const ::core::ffi::c_void,
461        completer: *mut fdf_env_suspend_completer_t,
462    );
463}
464unsafe extern "C" {
465    pub fn fdf_env_driver_resume(driver: *const ::core::ffi::c_void);
466}
467unsafe extern "C" {
468    pub fn fdf_testing_create_unmanaged_dispatcher(
469        driver: *const ::core::ffi::c_void,
470        options: u32,
471        name: *const ::core::ffi::c_char,
472        name_len: usize,
473        observer: *mut fdf_dispatcher_shutdown_observer_t,
474        out_dispatcher: *mut *mut fdf_dispatcher_t,
475    ) -> zx_status_t;
476}
477unsafe extern "C" {
478    pub fn fdf_testing_set_default_dispatcher(dispatcher: *mut fdf_dispatcher_t) -> zx_status_t;
479}
480unsafe extern "C" {
481    pub fn fdf_testing_run(deadline: zx_time_t, once: bool) -> zx_status_t;
482}
483unsafe extern "C" {
484    pub fn fdf_testing_run_until_idle() -> zx_status_t;
485}
486unsafe extern "C" {
487    pub fn fdf_testing_quit();
488}
489unsafe extern "C" {
490    pub fn fdf_testing_reset_quit() -> zx_status_t;
491}
492pub type fdf_token_t = fdf_token;
493pub type fdf_token_transfer_handler_t = ::core::option::Option<
494    unsafe extern "C" fn(
495        dispatcher: *mut fdf_dispatcher_t,
496        token: *mut fdf_token_t,
497        status: zx_status_t,
498        handle: fdf_handle_t,
499    ),
500>;
501#[repr(C)]
502#[derive(Debug, Default, Copy, Clone)]
503pub struct fdf_token {
504    pub handler: fdf_token_transfer_handler_t,
505}
506#[allow(clippy::unnecessary_operation, clippy::identity_op)]
507const _: () = {
508    ["Size of fdf_token"][::core::mem::size_of::<fdf_token>() - 8usize];
509    ["Alignment of fdf_token"][::core::mem::align_of::<fdf_token>() - 8usize];
510    ["Offset of field: fdf_token::handler"][::core::mem::offset_of!(fdf_token, handler) - 0usize];
511};
512unsafe extern "C" {
513    pub fn fdf_token_register(
514        token: zx_handle_t,
515        dispatcher: *mut fdf_dispatcher_t,
516        handler: *mut fdf_token_t,
517    ) -> zx_status_t;
518}
519unsafe extern "C" {
520    pub fn fdf_token_receive(token: zx_handle_t, handle: *mut fdf_handle_t) -> zx_status_t;
521}
522unsafe extern "C" {
523    pub fn fdf_token_transfer(token: zx_handle_t, handle: fdf_handle_t) -> zx_status_t;
524}
525#[repr(C)]
526#[derive(Debug, Default, Copy, Clone)]
527pub struct DriverRegistration {
528    pub version: u64,
529    pub v1: DriverRegistration_driver_registration_v1,
530}
531#[repr(C)]
532#[derive(Debug, Default, Copy, Clone)]
533pub struct DriverRegistration_driver_registration_v1 {
534    pub initialize: ::core::option::Option<
535        unsafe extern "C" fn(server_handle: fdf_handle_t) -> *mut ::core::ffi::c_void,
536    >,
537    pub destroy: ::core::option::Option<unsafe extern "C" fn(token: *mut ::core::ffi::c_void)>,
538}
539#[allow(clippy::unnecessary_operation, clippy::identity_op)]
540const _: () = {
541    ["Size of DriverRegistration_driver_registration_v1"]
542        [::core::mem::size_of::<DriverRegistration_driver_registration_v1>() - 16usize];
543    ["Alignment of DriverRegistration_driver_registration_v1"]
544        [::core::mem::align_of::<DriverRegistration_driver_registration_v1>() - 8usize];
545    ["Offset of field: DriverRegistration_driver_registration_v1::initialize"]
546        [::core::mem::offset_of!(DriverRegistration_driver_registration_v1, initialize) - 0usize];
547    ["Offset of field: DriverRegistration_driver_registration_v1::destroy"]
548        [::core::mem::offset_of!(DriverRegistration_driver_registration_v1, destroy) - 8usize];
549};
550#[allow(clippy::unnecessary_operation, clippy::identity_op)]
551const _: () = {
552    ["Size of DriverRegistration"][::core::mem::size_of::<DriverRegistration>() - 24usize];
553    ["Alignment of DriverRegistration"][::core::mem::align_of::<DriverRegistration>() - 8usize];
554    ["Offset of field: DriverRegistration::version"]
555        [::core::mem::offset_of!(DriverRegistration, version) - 0usize];
556    ["Offset of field: DriverRegistration::v1"]
557        [::core::mem::offset_of!(DriverRegistration, v1) - 8usize];
558};