rvvm/
types.rs

1use std::marker::PhantomData;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub struct DeviceHandle<T> {
5    pub(crate) id: i32,
6    phantom: PhantomData<T>,
7}
8
9impl<T> DeviceHandle<T> {
10    pub(crate) const fn new(id: i32) -> Self {
11        Self {
12            id,
13            phantom: PhantomData,
14        }
15    }
16}
17
18crate::__ts_handler! {
19    name = TypeHandler,
20    raw = unsafe extern "C" fn(dev: *mut rvvm_sys::rvvm_mmio_dev_t)
21}
22
23crate::__ts_handler! {
24    name = RemoveHandler,
25    raw = RawTypeHandler
26}
27
28crate::__ts_handler! {
29    name = RwHandler,
30    raw = unsafe extern "C" fn(
31        dev: *mut rvvm_sys::rvvm_mmio_dev_t,
32        dest: *mut std::ffi::c_void,
33        offset: usize,
34        size: u8
35    ) -> bool
36}