| //! Trivial Shodan elf loader capsule | |
| use kernel::{AppId, AppSlice, Callback, Driver, ReturnCode, Shared}; | |
| use matcha_hal::dprintf; | |
| pub struct ElfLoaderCapsule {} | |
| impl Driver for ElfLoaderCapsule { | |
| fn subscribe(&self, _: usize, _: Option<Callback>, _: AppId) -> ReturnCode { | |
| return ReturnCode::EINVAL; | |
| } | |
| fn command(&self, minor_num: usize, _r2: usize, _r3: usize, _app_id: AppId) -> ReturnCode { | |
| dprintf!("ElfLoaderCapsule::command()\n"); | |
| if minor_num == matcha_config::CMD_ELF_LOADER_BOOT_SEL4 { | |
| matcha_utils::load_sel4(); | |
| return ReturnCode::SUCCESS; | |
| } | |
| return ReturnCode::EINVAL; | |
| } | |
| fn allow(&self, _: AppId, _: usize, _: Option<AppSlice<Shared, u8>>) -> ReturnCode { | |
| return ReturnCode::EINVAL; | |
| } | |
| } |