Refactoring-only CL - rename files to disambiguate capsule/HAL/etc. Change-Id: I9dfaccc1961e66cad6c24bc70d3c4b957f4ab75d
diff --git a/app/src/dprintf.rs b/app/src/dprintf.rs index c9c75e0..e4aa62e 100644 --- a/app/src/dprintf.rs +++ b/app/src/dprintf.rs
@@ -21,8 +21,8 @@ if cur.write_fmt(args).is_ok() { let pos = cur.position(); drop(cur); - let allow = syscalls::allow(DRIVER_NUM_DEBUG_UART, 0, &mut uart_buf); - let _result = syscalls::command(DRIVER_NUM_DEBUG_UART, 0, pos as usize, 0); + let allow = syscalls::allow(CAPSULE_DPRINTF, 0, &mut uart_buf); + let _result = syscalls::command(CAPSULE_DPRINTF, CMD_DPRINTF_PRINT, pos as usize, 0); drop(allow); } }
diff --git a/app/src/main.rs b/app/src/main.rs index dd4d4cb..f06d653 100644 --- a/app/src/main.rs +++ b/app/src/main.rs
@@ -15,7 +15,7 @@ dprintf!("sw/matcha/app/src/main.rs::main()\n"); dprintf!("Booting sel4 from TockOS app!\n"); - let _result = syscalls::command(DRIVER_NUM_ELF_LOADER, CMD_ELF_LOADER_BOOT_SEL4, 0, 0); + let _result = syscalls::command(CAPSULE_ELFLOADER, CMD_ELFLOADER_BOOT_SEL4, 0, 0); dprintf!("Booting sel4 from TockOS app done!\n"); Ok(())
diff --git a/capsules/src/debug_uart.rs b/capsules/src/dprintf_capsule.rs similarity index 91% rename from capsules/src/debug_uart.rs rename to capsules/src/dprintf_capsule.rs index f1e18f3..0026cbc 100644 --- a/capsules/src/debug_uart.rs +++ b/capsules/src/dprintf_capsule.rs
@@ -19,11 +19,11 @@ pub buffer: Option<AppSlice<Shared, u8>>, } -pub struct DebugUartCapsule { +pub struct DprintfCapsule { pub app_data_grant: Grant<AppData>, } -impl Driver for DebugUartCapsule { +impl Driver for DprintfCapsule { fn subscribe(&self, _: usize, _: Option<Callback>, _: AppId) -> ReturnCode { ReturnCode::EINVAL } @@ -35,7 +35,7 @@ let _ = self.app_data_grant.enter(app_id, |app_data, _| { if let Some(buf) = &app_data.buffer { - matcha_hal::debug_uart::send_sync(buf.as_ref(), r2); + matcha_hal::dprintf_hal::send_sync(buf.as_ref(), r2); } }); return ReturnCode::SUCCESS;
diff --git a/capsules/src/elf_loader.rs b/capsules/src/elfloader_capsule.rs similarity index 91% rename from capsules/src/elf_loader.rs rename to capsules/src/elfloader_capsule.rs index 84d9fc3..393fec5 100644 --- a/capsules/src/elf_loader.rs +++ b/capsules/src/elfloader_capsule.rs
@@ -13,7 +13,7 @@ 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 { + if minor_num == matcha_config::CMD_ELFLOADER_BOOT_SEL4 { matcha_utils::load_sel4(); return ReturnCode::SUCCESS; }
diff --git a/capsules/src/lib.rs b/capsules/src/lib.rs index bd4ff3f..1b59b4a 100644 --- a/capsules/src/lib.rs +++ b/capsules/src/lib.rs
@@ -1,7 +1,7 @@ #![forbid(unsafe_code)] #![no_std] -pub mod debug_uart; -pub mod elf_loader; -pub mod mailbox; -pub mod storage_manager; +pub mod dprintf_capsule; +pub mod elfloader_capsule; +pub mod mailbox_capsule; +pub mod storage_capsule;
diff --git a/capsules/src/mailbox.rs b/capsules/src/mailbox_capsule.rs similarity index 92% rename from capsules/src/mailbox.rs rename to capsules/src/mailbox_capsule.rs index 4f9676f..1b93b0d 100644 --- a/capsules/src/mailbox.rs +++ b/capsules/src/mailbox_capsule.rs
@@ -7,11 +7,11 @@ pub buffer: Option<AppSlice<Shared, u8>>, } -pub struct Mailbox { +pub struct MailboxCapsule { pub app_data_grant: Grant<AppData>, } -impl Driver for Mailbox { +impl Driver for MailboxCapsule { fn subscribe(&self, _: usize, _: Option<Callback>, _: AppId) -> ReturnCode { ReturnCode::EINVAL }
diff --git a/capsules/src/storage_manager.rs b/capsules/src/storage_capsule.rs similarity index 77% rename from capsules/src/storage_manager.rs rename to capsules/src/storage_capsule.rs index ab26383..be6f049 100644 --- a/capsules/src/storage_manager.rs +++ b/capsules/src/storage_capsule.rs
@@ -12,14 +12,14 @@ pub arg3: usize, } -pub struct StorageManagerCapsule { +pub struct StorageCapsule { app_data_grant: Grant<AppData>, } -impl StorageManagerCapsule { +impl StorageCapsule { pub fn new(app_data_grant: Grant<AppData>) -> Self { - dprintf!("StorageManager::new()"); - return StorageManagerCapsule { + dprintf!("StorageManager::new()\n"); + return StorageCapsule { app_data_grant: app_data_grant, }; } @@ -32,7 +32,7 @@ arg3: usize, ) -> ReturnCode { dprintf!( - "StorageManagerCapsule::handle_command({}, {}, {})", + "StorageCapsule::handle_command({}, {}, {})", minor_num, arg2, arg3 @@ -44,12 +44,12 @@ 0 => ReturnCode::SUCCESS, 1 => { if let Some(mut callback) = app_data.callback { - dprintf!("StorageManagerCapsule::handle_command : Calling callback!"); + dprintf!("StorageCapsule::handle_command : Calling callback!"); callback.schedule(1, 2, 3); app_data.callback = Some(callback); ReturnCode::SUCCESS } else { - dprintf!("StorageManagerCapsule::handle_command : No callback!"); + dprintf!("StorageCapsule::handle_command : No callback!"); ReturnCode::EINVAL } } @@ -63,11 +63,11 @@ minor_num: usize, callback: Option<Callback>, ) -> ReturnCode { - dprintf!("StorageManagerCapsule::handle_subscribe({})", minor_num); + dprintf!("StorageCapsule::handle_subscribe({})", minor_num); if callback.is_some() { - dprintf!("StorageManagerCapsule::handle_subscribe got Some callback"); + dprintf!("StorageCapsule::handle_subscribe got Some callback"); } else { - dprintf!("StorageManagerCapsule::handle_subscribe got None callback"); + dprintf!("StorageCapsule::handle_subscribe got None callback"); } app_data.callback = callback; return ReturnCode::SUCCESS; @@ -80,18 +80,18 @@ slice: Option<AppSlice<Shared, u8>>, ) -> ReturnCode { if let Some(slice) = slice { - dprintf!("StorageManagerCapsule::handle_allow({})", slice.len()); + dprintf!("StorageCapsule::handle_allow({})", slice.len()); app_data.buffer = Some(slice); } else { - dprintf!("StorageManagerCapsule::handle_allow(None)"); + dprintf!("StorageCapsule::handle_allow(None)"); } return ReturnCode::SUCCESS; } } -/// Driver impl just enters the app_data grant and delegates to StorageManagerCapsule. +/// Driver impl just enters the app_data grant and delegates to StorageCapsule. -impl Driver for StorageManagerCapsule { +impl Driver for StorageCapsule { fn subscribe(&self, minor_num: usize, callback: Option<Callback>, app_id: AppId) -> ReturnCode { self.app_data_grant .enter(app_id, |app_data, _| {
diff --git a/config/src/lib.rs b/config/src/lib.rs index 49d782c..08f6eaf 100644 --- a/config/src/lib.rs +++ b/config/src/lib.rs
@@ -7,10 +7,14 @@ // right now due to some sort of toolchain mismatch that we need to figure out // later. -pub const DRIVER_NUM_ALARM: usize = 0x00000; -pub const DRIVER_NUM_CONSOLE: usize = 0x00001; -pub const DRIVER_NUM_DEBUG_UART: usize = 0x00009; -pub const DRIVER_NUM_STORAGE_MANAGER: usize = 0x50003; -pub const DRIVER_NUM_ELF_LOADER: usize = 0x50004; +pub const CAPSULE_ALARM: usize = 0x00000; +pub const CAPSULE_CONSOLE: usize = 0x00001; +pub const CAPSULE_LLDB: usize = 0x00008; +pub const CAPSULE_DPRINTF: usize = 0x00009; +pub const CAPSULE_STORAGE: usize = 0x50003; +pub const CAPSULE_ELFLOADER: usize = 0x50004; +pub const CAPSULE_MAILBOX: usize = 0x50005; -pub const CMD_ELF_LOADER_BOOT_SEL4: usize = 10; +pub const CMD_ELFLOADER_BOOT_SEL4: usize = 10; + +pub const CMD_DPRINTF_PRINT: usize = 0;
diff --git a/hal/src/debug_uart.rs b/hal/src/dprintf_hal.rs similarity index 86% rename from hal/src/debug_uart.rs rename to hal/src/dprintf_hal.rs index 9dcc161..d6e5ffb 100644 --- a/hal/src/debug_uart.rs +++ b/hal/src/dprintf_hal.rs
@@ -27,9 +27,9 @@ #[macro_export] macro_rules! dprintf { ($msg:expr) => ({ - $crate::debug_uart::vdprintf(format_args!($msg)) + $crate::dprintf_hal::vdprintf(format_args!($msg)) }); ($fmt:expr, $($arg:tt)+) => ({ - $crate::debug_uart::vdprintf(format_args!($fmt, $($arg)+)) + $crate::dprintf_hal::vdprintf(format_args!($fmt, $($arg)+)) }); }
diff --git a/hal/src/lib.rs b/hal/src/lib.rs index bc607a6..6a929e7 100644 --- a/hal/src/lib.rs +++ b/hal/src/lib.rs
@@ -4,9 +4,9 @@ #![no_std] #![feature(asm)] -pub mod debug_uart; -pub mod mailbox; -pub mod plic; +pub mod dprintf_hal; +pub mod mailbox_hal; +pub mod plic_hal; pub mod plic_constants; // Software interrupt enable bits in MIE
diff --git a/hal/src/mailbox.rs b/hal/src/mailbox_hal.rs similarity index 95% rename from hal/src/mailbox.rs rename to hal/src/mailbox_hal.rs index d4acf4b..cff310d 100644 --- a/hal/src/mailbox.rs +++ b/hal/src/mailbox_hal.rs
@@ -46,14 +46,14 @@ } } -pub struct Mailbox { +pub struct MailboxHAL { regs: StaticRef<MailboxRegisters>, plic_wtirq: u32, plic_rtirq: u32, plic_eirq: u32, } -pub const MAILBOX: Mailbox = Mailbox { +pub const MAILBOX: MailboxHAL = MailboxHAL { regs: unsafe { StaticRef::new(MAILBOX_BASE as *mut MailboxRegisters) }, plic_wtirq: MAILBOX_WTIRQ, plic_rtirq: MAILBOX_RTIRQ, @@ -76,7 +76,7 @@ buf.offset(bit_index >> 5).write_volatile(bits); } -impl Mailbox { +impl MailboxHAL { // Synchronously send a message. Blocks the caller if there's no room in the // outbox. pub fn send_message_sync(&self, message: &[u32]) { @@ -101,7 +101,7 @@ self.regs.reg_intr_enable.set(INTR_ENABLE_BIT_RTIRQ); unsafe { - set_bit(plic::PLIC_EN0, self.plic_rtirq as isize); + set_bit(plic_hal::PLIC_EN0, self.plic_rtirq as isize); } // Wait for the read interrupt to fire. @@ -116,7 +116,7 @@ // Turn the interrupt and IRQ line back off. unsafe { - clear_bit(plic::PLIC_EN0, self.plic_rtirq as isize); + clear_bit(plic_hal::PLIC_EN0, self.plic_rtirq as isize); } self.regs.reg_intr_enable.set(0);
diff --git a/hal/src/plic.rs b/hal/src/plic_hal.rs similarity index 100% rename from hal/src/plic.rs rename to hal/src/plic_hal.rs
diff --git a/platform/src/chip.rs b/platform/src/chip.rs index b063c46..dd37838 100644 --- a/platform/src/chip.rs +++ b/platform/src/chip.rs
@@ -11,7 +11,7 @@ use crate::timer; use crate::uart; -use matcha_hal::plic; +use matcha_hal::plic_hal; PMPConfigMacro!(4); @@ -39,18 +39,18 @@ } pub unsafe fn enable_plic_interrupts(&self) { - plic::disable_all(); - plic::clear_all_pending(); - plic::enable_all(); + plic_hal::disable_all(); + plic_hal::clear_all_pending(); + plic_hal::enable_all(); } unsafe fn handle_plic_interrupts(&self) { - while let Some(interrupt) = plic::next_pending() { + while let Some(interrupt) = plic_hal::next_pending() { match interrupt { UART0_TX_WATERMARK..=UART0_RX_PARITY_ERR => uart::UART0.handle_interrupt(), _ => debug!("Pidx {}", interrupt), } - plic::complete(interrupt); + plic_hal::complete(interrupt); } } }
diff --git a/platform/src/main.rs b/platform/src/main.rs index 7d67cdf..9a811b2 100644 --- a/platform/src/main.rs +++ b/platform/src/main.rs
@@ -16,9 +16,9 @@ use kernel::Chip; use kernel::Platform; use kernel::{create_capability, debug, static_init}; -use matcha_capsules::debug_uart::DebugUartCapsule; -use matcha_capsules::elf_loader::ElfLoaderCapsule; -use matcha_capsules::storage_manager::StorageManagerCapsule; +use matcha_capsules::dprintf_capsule::DprintfCapsule; +use matcha_capsules::elfloader_capsule::ElfLoaderCapsule; +use matcha_capsules::storage_capsule::StorageCapsule; use matcha_config::*; use matcha_hal::dprintf; use rv32i::csr; @@ -62,15 +62,15 @@ /// A structure representing this platform that holds references to all /// capsules for this platform. We've included an alarm and console. struct MatchaPlatform { - console: &'static capsules::console::Console<'static>, - alarm: &'static capsules::alarm::AlarmDriver< + console_capsule: &'static capsules::console::Console<'static>, + alarm_capsule: &'static capsules::alarm::AlarmDriver< 'static, VirtualMuxAlarm<'static, crate::timer::RvTimer<'static>>, >, - debug_uart: &'static DebugUartCapsule, - storage_manager: &'static StorageManagerCapsule, - elf_loader: &'static ElfLoaderCapsule, - lldb: &'static capsules::low_level_debug::LowLevelDebug< + dprintf_capsule: &'static DprintfCapsule, + storage_capsule: &'static StorageCapsule, + elfloader_capsule: &'static ElfLoaderCapsule, + lldb_capsule: &'static capsules::low_level_debug::LowLevelDebug< 'static, capsules::virtual_uart::UartDevice<'static>, >, @@ -83,12 +83,12 @@ F: FnOnce(Option<&dyn kernel::Driver>) -> R, { match driver_num { - DRIVER_NUM_CONSOLE => f(Some(self.console)), - DRIVER_NUM_ALARM => f(Some(self.alarm)), - DRIVER_NUM_DEBUG_UART => f(Some(self.debug_uart)), - DRIVER_NUM_STORAGE_MANAGER => f(Some(self.storage_manager)), - DRIVER_NUM_ELF_LOADER => f(Some(self.elf_loader)), - capsules::low_level_debug::DRIVER_NUM => f(Some(self.lldb)), + CAPSULE_CONSOLE => f(Some(self.console_capsule)), + CAPSULE_ALARM => f(Some(self.alarm_capsule)), + CAPSULE_DPRINTF => f(Some(self.dprintf_capsule)), + CAPSULE_STORAGE => f(Some(self.storage_capsule)), + CAPSULE_ELFLOADER => f(Some(self.elfloader_capsule)), + CAPSULE_LLDB => f(Some(self.lldb_capsule)), _ => f(None), } } @@ -151,14 +151,14 @@ VirtualMuxAlarm<'static, crate::timer::RvTimer>, VirtualMuxAlarm::new(mux_alarm) ); - let alarm = static_init!( + let alarm_capsule = static_init!( capsules::alarm::AlarmDriver<'static, VirtualMuxAlarm<'static, crate::timer::RvTimer>>, capsules::alarm::AlarmDriver::new( virtual_alarm_user, board_kernel.create_grant(&memory_allocation_cap) ) ); - hil::time::Alarm::set_alarm_client(virtual_alarm_user, alarm); + hil::time::Alarm::set_alarm_client(virtual_alarm_user, alarm_capsule); let chip = static_init!( crate::chip::Matcha<VirtualMuxAlarm<'static, crate::timer::RvTimer>>, @@ -175,38 +175,40 @@ csr::CSR.mstatus.modify(csr::mstatus::mstatus::mie::SET); // Setup the console. - let console = components::console::ConsoleComponent::new(board_kernel, uart_mux).finalize(()); + let console_capsule = + components::console::ConsoleComponent::new(board_kernel, uart_mux).finalize(()); // Create the debugger object that handles calls to `debug!()`. components::debug_writer::DebugWriterComponent::new(uart_mux).finalize(()); - let lldb = components::lldb::LowLevelDebugComponent::new(board_kernel, uart_mux).finalize(()); + let lldb_capsule = + components::lldb::LowLevelDebugComponent::new(board_kernel, uart_mux).finalize(()); - let debug_uart_capsule = static_init!( - DebugUartCapsule, - DebugUartCapsule { + let dprintf_capsule = static_init!( + DprintfCapsule, + DprintfCapsule { app_data_grant: board_kernel.create_grant(&memory_allocation_cap) } ); - let storage_manager = static_init!( - matcha_capsules::storage_manager::StorageManagerCapsule, - matcha_capsules::storage_manager::StorageManagerCapsule::new( + let storage_capsule = static_init!( + matcha_capsules::storage_capsule::StorageCapsule, + matcha_capsules::storage_capsule::StorageCapsule::new( board_kernel.create_grant(&memory_allocation_cap) ) ); - let elf_loader = static_init!( - matcha_capsules::elf_loader::ElfLoaderCapsule, - matcha_capsules::elf_loader::ElfLoaderCapsule {} + let elfloader_capsule = static_init!( + matcha_capsules::elfloader_capsule::ElfLoaderCapsule, + matcha_capsules::elfloader_capsule::ElfLoaderCapsule {} ); let platform = MatchaPlatform { - console: console, - alarm: alarm, - debug_uart: debug_uart_capsule, - storage_manager: storage_manager, - elf_loader: elf_loader, - lldb: lldb, + console_capsule: console_capsule, + alarm_capsule: alarm_capsule, + dprintf_capsule: dprintf_capsule, + storage_capsule: storage_capsule, + elfloader_capsule: elfloader_capsule, + lldb_capsule: lldb_capsule, }; kernel::procs::load_processes(
diff --git a/utils/src/lib.rs b/utils/src/lib.rs index c18295b..03c45c6 100644 --- a/utils/src/lib.rs +++ b/utils/src/lib.rs
@@ -62,7 +62,7 @@ transmute(sel4_pend - elf_loader::elf_phys_min(capdl_segments)), transmute((*capdl_elf).e_entry), ]; - matcha_hal::mailbox::MAILBOX.send_message_sync(&message); + matcha_hal::mailbox_hal::MAILBOX.send_message_sync(&message); dprintf!("seL4 boot message posted\n"); SMC_CONTROL_BLOCK.write_volatile(entry_point); @@ -70,7 +70,7 @@ dprintf!("SMC started, waiting on ACK\n"); let mut reply : [u32;1] = [0]; - matcha_hal::mailbox::MAILBOX.recv_message_sync(&mut reply); + matcha_hal::mailbox_hal::MAILBOX.recv_message_sync(&mut reply); dprintf!("ACK = 0x{:08X} received.\n", reply[0]);