firmware for my Touchscreen E-Paper Input Module for Framework Laptop 16
0

Configure Feed

Select the types of activity you want to include in your feed.

1#[repr(u8)] 2#[derive(Copy, Clone, Debug, Eq, PartialEq)] 3#[cfg_attr(feature = "defmt", derive(defmt::Format))] 4pub enum SyscallNumber { 5 Misc = 0, 6 Image = 1, 7 Input = 2, 8 Usb = 3, 9 Exec = 4, 10 CriticalSection = 5, 11 Flash = 6, 12} 13 14impl TryFrom<u8> for SyscallNumber { 15 type Error = (); 16 17 fn try_from(value: u8) -> Result<Self, Self::Error> { 18 match value { 19 x if x == SyscallNumber::Misc as u8 => Ok(SyscallNumber::Misc), 20 x if x == SyscallNumber::Image as u8 => Ok(SyscallNumber::Image), 21 x if x == SyscallNumber::Input as u8 => Ok(SyscallNumber::Input), 22 x if x == SyscallNumber::Usb as u8 => Ok(SyscallNumber::Usb), 23 x if x == SyscallNumber::Exec as u8 => Ok(SyscallNumber::Exec), 24 x if x == SyscallNumber::CriticalSection as u8 => Ok(SyscallNumber::CriticalSection), 25 x if x == SyscallNumber::Flash as u8 => Ok(SyscallNumber::Flash), 26 _ => Err(()), 27 } 28 } 29} 30 31/// Perform a raw system call. 32#[macro_export] 33#[cfg(all(target_os = "none", target_arch = "arm"))] 34macro_rules! syscall { 35 ( 36 $syscall_num:expr, 37 $( out $r0out:ident )? $( in $r0in:expr )? $(, 38 $( out $r1out:ident )? $( in $r1in:expr )? $(, 39 $( out $r2out:ident )? $( in $r2in:expr )? $(, 40 $( out $r3out:ident )? $( in $r3in:expr )? $(,)? 41 )? 42 )? 43 )? 44 ) => { 45 ::core::arch::asm!( 46 "svc #{syscall_num}", 47 $( in("r0") $r0in as usize, )? 48 $( lateout("r0") $r0out, )? 49 $( 50 $( in("r1") $r1in as usize, )? 51 $( lateout("r1") $r1out, )? 52 $( 53 $( in("r2") $r2in as usize, )? 54 $( lateout("r2") $r2out, )? 55 $( 56 $( in("r3") $r3in as usize, )? 57 $( lateout("r3") $r3out, )? 58 )? 59 )? 60 )? 61 syscall_num = const $syscall_num as u8, 62 ) 63 } 64} 65 66#[macro_export] 67#[cfg(not(all(target_os = "none", target_arch = "arm")))] 68macro_rules! syscall { 69 ( $( $_foo:tt )* ) => { panic!("Cannot use eepyOS syscalls on non-eepyOS platforms") }; 70}