use crate::*;
pub(crate) fn new() -> Item {
let docs = docs!();
let name = "serial".into();
let items = vec![
item! {
fn read "usr" {
ptr: *mut u8,
len: usize,
} -> usize
},
item! {
fn write "usw" {
ptr: *const u8,
len: usize,
} -> usize
},
item! {
enum Event {
Read = 0,
Write = 1,
}
},
item! {
fn register "use" {
event: usize,
handler_func: fn { data: *const void },
handler_data: *const void,
} -> ()
},
item! {
fn unregister "usd" {
event: usize,
} -> ()
},
item! {
fn flush "usf" {} -> ()
},
];
Item::Mod(Mod { docs, name, items })
}