Skip to content

Commit

Permalink
Move boards over to new capabilities
Browse files Browse the repository at this point in the history
  • Loading branch information
jwnrt committed Mar 3, 2023
1 parent 04beed1 commit ad0463a
Show file tree
Hide file tree
Showing 41 changed files with 201 additions and 230 deletions.
11 changes: 5 additions & 6 deletions boards/acd52832/src/main.rs
Expand Up @@ -7,7 +7,7 @@
#![deny(missing_docs)]

use capsules_core::virtualizers::virtual_alarm::VirtualMuxAlarm;
use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::hil;
Expand All @@ -22,7 +22,7 @@ use kernel::hil::time::{Alarm, Counter};
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::round_robin::RoundRobinSched;
#[allow(unused_imports)]
use kernel::{create_capability, debug, debug_gpio, static_init};
use kernel::{debug, debug_gpio, static_init};
use nrf52832::gpio::Pin;
use nrf52832::interrupt_service::Nrf52832DefaultPeripherals;
use nrf52832::rtc::Rtc;
Expand Down Expand Up @@ -186,10 +186,9 @@ pub unsafe fn main() {

// Create capabilities that the board needs to call certain protected kernel
// functions.
let process_management_capability =
create_capability!(capabilities::ProcessManagementCapability);
let main_loop_capability = create_capability!(capabilities::MainLoopCapability);
let memory_allocation_capability = create_capability!(capabilities::MemoryAllocationCapability);
let process_management_capability = unsafe { Capability::<ProcessManagement>::new() };
let main_loop_capability = unsafe { Capability::<MainLoop>::new() };
let memory_allocation_capability = unsafe { Capability::<MemoryAllocation>::new() };

let board_kernel = static_init!(kernel::Kernel, kernel::Kernel::new(&PROCESSES));

Expand Down
13 changes: 6 additions & 7 deletions boards/apollo3/lora_things_plus/src/main.rs
Expand Up @@ -40,7 +40,7 @@ use capsules_core::virtualizers::virtual_alarm::MuxAlarm;
use capsules_core::virtualizers::virtual_alarm::VirtualMuxAlarm;
use components::bme280::Bme280Component;
use components::ccs811::Ccs811Component;
use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::DynamicDeferredCall;
use kernel::dynamic_deferred_call::DynamicDeferredCallClientState;
Expand All @@ -49,7 +49,7 @@ use kernel::hil::led::LedHigh;
use kernel::hil::time::Counter;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::round_robin::RoundRobinSched;
use kernel::{create_capability, debug, static_init};
use kernel::{debug, static_init};

/// Support routines for debugging I/O.
pub mod io;
Expand Down Expand Up @@ -82,7 +82,7 @@ static mut BOARD: Option<&'static kernel::Kernel> = None;
static mut PLATFORM: Option<&'static LoRaThingsPlus> = None;
// Test access to main loop capability
#[cfg(test)]
static mut MAIN_CAP: Option<&dyn kernel::capabilities::MainLoopCapability> = None;
static MAIN_CAP: Capability<MainLoop> = unsafe { Capability::<MainLoop>::new() };
// Test access to alarm
static mut ALARM: Option<&'static MuxAlarm<'static, apollo3::stimer::STimer<'static>>> = None;
// Test access to sensors
Expand Down Expand Up @@ -205,8 +205,8 @@ unsafe fn setup() -> (
clkgen.set_clock_frequency(apollo3::clkgen::ClockFrequency::Freq48MHz);

// initialize capabilities
let process_mgmt_cap = create_capability!(capabilities::ProcessManagementCapability);
let memory_allocation_cap = create_capability!(capabilities::MemoryAllocationCapability);
let process_mgmt_cap = unsafe { Capability::<ProcessManagement>::new() };
let memory_allocation_cap = unsafe { Capability::<MemoryAllocation>::new() };

let dynamic_deferred_call_clients =
static_init!([DynamicDeferredCallClientState; 5], Default::default());
Expand Down Expand Up @@ -482,7 +482,7 @@ pub unsafe fn main() {
{
let (board_kernel, sf_lora_thing_plus_board, chip, _peripherals) = setup();

let main_loop_cap = create_capability!(capabilities::MainLoopCapability);
let main_loop_cap = unsafe { Capability::<MainLoop>::new() };

board_kernel.kernel_loop(
sf_lora_thing_plus_board,
Expand All @@ -504,7 +504,6 @@ fn test_runner(tests: &[&dyn Fn()]) {
BOARD = Some(board_kernel);
PLATFORM = Some(&sf_lora_thing_plus_board);
PERIPHERALS = Some(peripherals);
MAIN_CAP = Some(&create_capability!(capabilities::MainLoopCapability));

PLATFORM.map(|p| {
p.watchdog().setup();
Expand Down
2 changes: 1 addition & 1 deletion boards/apollo3/lora_things_plus/src/tests/mod.rs
Expand Up @@ -13,7 +13,7 @@ fn run_kernel_op(loops: usize) {
CHIP.unwrap(),
None::<&kernel::ipc::IPC<{ NUM_PROCS as u8 }>>,
true,
MAIN_CAP.unwrap(),
&MAIN_CAP,
);
}
}
Expand Down
13 changes: 6 additions & 7 deletions boards/apollo3/redboard_artemis_nano/src/main.rs
Expand Up @@ -16,7 +16,7 @@ use capsules_core::virtualizers::virtual_alarm::MuxAlarm;
use capsules_core::virtualizers::virtual_alarm::VirtualMuxAlarm;
use components::bme280::Bme280Component;
use components::ccs811::Ccs811Component;
use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::DynamicDeferredCall;
use kernel::dynamic_deferred_call::DynamicDeferredCallClientState;
Expand All @@ -25,7 +25,7 @@ use kernel::hil::led::LedHigh;
use kernel::hil::time::Counter;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::round_robin::RoundRobinSched;
use kernel::{create_capability, debug, static_init};
use kernel::{debug, static_init};

/// Support routines for debugging I/O.
pub mod io;
Expand Down Expand Up @@ -58,7 +58,7 @@ static mut BOARD: Option<&'static kernel::Kernel> = None;
static mut PLATFORM: Option<&'static RedboardArtemisNano> = None;
// Test access to main loop capability
#[cfg(test)]
static mut MAIN_CAP: Option<&dyn kernel::capabilities::MainLoopCapability> = None;
static MAIN_CAP: Capability<MainLoop> = unsafe { Capability::<MainLoop>::new() };
// Test access to alarm
static mut ALARM: Option<&'static MuxAlarm<'static, apollo3::stimer::STimer<'static>>> = None;
// Test access to sensors
Expand Down Expand Up @@ -181,8 +181,8 @@ unsafe fn setup() -> (
clkgen.set_clock_frequency(apollo3::clkgen::ClockFrequency::Freq48MHz);

// initialize capabilities
let process_mgmt_cap = create_capability!(capabilities::ProcessManagementCapability);
let memory_allocation_cap = create_capability!(capabilities::MemoryAllocationCapability);
let process_mgmt_cap = unsafe { Capability::<ProcessManagement>::new() };
let memory_allocation_cap = unsafe { Capability::<MemoryAllocation>::new() };

let dynamic_deferred_call_clients =
static_init!([DynamicDeferredCallClientState; 4], Default::default());
Expand Down Expand Up @@ -446,7 +446,7 @@ pub unsafe fn main() {
{
let (board_kernel, esp32_c3_board, chip, _peripherals) = setup();

let main_loop_cap = create_capability!(capabilities::MainLoopCapability);
let main_loop_cap = unsafe { Capability::<MainLoop>::new() };

board_kernel.kernel_loop(
esp32_c3_board,
Expand All @@ -468,7 +468,6 @@ fn test_runner(tests: &[&dyn Fn()]) {
BOARD = Some(board_kernel);
PLATFORM = Some(&esp32_c3_board);
PERIPHERALS = Some(peripherals);
MAIN_CAP = Some(&create_capability!(capabilities::MainLoopCapability));

PLATFORM.map(|p| {
p.watchdog().setup();
Expand Down
2 changes: 1 addition & 1 deletion boards/apollo3/redboard_artemis_nano/src/tests/mod.rs
Expand Up @@ -13,7 +13,7 @@ fn run_kernel_op(loops: usize) {
CHIP.unwrap(),
None::<&kernel::ipc::IPC<{ NUM_PROCS as u8 }>>,
true,
MAIN_CAP.unwrap(),
&MAIN_CAP,
);
}
}
Expand Down
8 changes: 4 additions & 4 deletions boards/arty_e21/src/main.rs
Expand Up @@ -8,13 +8,13 @@
use arty_e21_chip::chip::ArtyExxDefaultPeripherals;
use capsules_core::virtualizers::virtual_alarm::{MuxAlarm, VirtualMuxAlarm};

use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::hil;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::priority::PrioritySched;
use kernel::{create_capability, debug, static_init};
use kernel::{debug, static_init};

#[allow(dead_code)]
mod timer_test;
Expand Down Expand Up @@ -134,8 +134,8 @@ pub unsafe fn main() {
CHIP = Some(chip);
chip.initialize();

let process_mgmt_cap = create_capability!(capabilities::ProcessManagementCapability);
let main_loop_cap = create_capability!(capabilities::MainLoopCapability);
let process_mgmt_cap = unsafe { Capability::<ProcessManagement>::new() };
let main_loop_cap = unsafe { Capability::<MainLoop>::new() };

let board_kernel = static_init!(kernel::Kernel, kernel::Kernel::new(&PROCESSES));

Expand Down
11 changes: 5 additions & 6 deletions boards/clue_nrf52840/src/main.rs
Expand Up @@ -10,7 +10,7 @@

use capsules_core::virtualizers::virtual_aes_ccm::MuxAES128CCM;

use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::hil::buzzer::Buzzer;
Expand All @@ -25,7 +25,7 @@ use kernel::platform::mpu::MPU;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::round_robin::RoundRobinSched;
#[allow(unused_imports)]
use kernel::{create_capability, debug, debug_gpio, debug_verbose, static_init};
use kernel::{debug, debug_gpio, debug_verbose, static_init};

use nrf52840::gpio::Pin;
use nrf52840::interrupt_service::Nrf52840DefaultPeripherals;
Expand Down Expand Up @@ -295,10 +295,9 @@ pub unsafe fn main() {

// Create capabilities that the board needs to call certain protected kernel
// functions.
let process_management_capability =
create_capability!(capabilities::ProcessManagementCapability);
let main_loop_capability = create_capability!(capabilities::MainLoopCapability);
let memory_allocation_capability = create_capability!(capabilities::MemoryAllocationCapability);
let process_management_capability = unsafe { Capability::<ProcessManagement>::new() };
let main_loop_capability = unsafe { Capability::<MainLoop>::new() };
let memory_allocation_capability = unsafe { Capability::<MemoryAllocation>::new() };

//--------------------------------------------------------------------------
// DEBUG GPIO
Expand Down
13 changes: 6 additions & 7 deletions boards/esp32-c3-devkitM-1/src/main.rs
Expand Up @@ -11,14 +11,14 @@

use capsules_core::virtualizers::virtual_alarm::{MuxAlarm, VirtualMuxAlarm};
use esp32_c3::chip::Esp32C3DefaultPeripherals;
use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::platform::scheduler_timer::VirtualSchedulerTimer;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::priority::PrioritySched;
use kernel::utilities::registers::interfaces::ReadWriteable;
use kernel::{create_capability, debug, hil, static_init};
use kernel::{debug, hil, static_init};
use rv32i::csr;

pub mod io;
Expand Down Expand Up @@ -55,7 +55,7 @@ static mut BOARD: Option<&'static kernel::Kernel> = None;
static mut PLATFORM: Option<&'static Esp32C3Board> = None;
// Test access to main loop capability
#[cfg(test)]
static mut MAIN_CAP: Option<&dyn kernel::capabilities::MainLoopCapability> = None;
static MAIN_CAP: Capability<MainLoop> = unsafe { Capability::<MainLoop>::new() };
// Test access to alarm
static mut ALARM: Option<&'static MuxAlarm<'static, esp32_c3::timg::TimG<'static>>> = None;

Expand Down Expand Up @@ -154,8 +154,8 @@ unsafe fn setup() -> (
.use_pll_clock_source(PllFrequency::MHz320, CpuFrequency::MHz160);

// initialise capabilities
let process_mgmt_cap = create_capability!(capabilities::ProcessManagementCapability);
let memory_allocation_cap = create_capability!(capabilities::MemoryAllocationCapability);
let process_mgmt_cap = unsafe { Capability::<ProcessManagement>::new() };
let memory_allocation_cap = unsafe { Capability::<MemoryAllocation>::new() };

let board_kernel = static_init!(kernel::Kernel, kernel::Kernel::new(&PROCESSES));

Expand Down Expand Up @@ -340,7 +340,7 @@ pub unsafe fn main() {
{
let (board_kernel, esp32_c3_board, chip, _peripherals) = setup();

let main_loop_cap = create_capability!(capabilities::MainLoopCapability);
let main_loop_cap = unsafe { Capability::<MainLoop>::new() };

board_kernel.kernel_loop(
esp32_c3_board,
Expand All @@ -364,7 +364,6 @@ fn test_runner(tests: &[&dyn Fn()]) {
PERIPHERALS = Some(peripherals);
SCHEDULER =
Some(components::sched::priority::PriorityComponent::new(board_kernel).finalize(()));
MAIN_CAP = Some(&create_capability!(capabilities::MainLoopCapability));

PLATFORM.map(|p| {
p.watchdog().setup();
Expand Down
2 changes: 1 addition & 1 deletion boards/esp32-c3-devkitM-1/src/tests/mod.rs
Expand Up @@ -13,7 +13,7 @@ fn run_kernel_op(loops: usize) {
CHIP.unwrap(),
None::<&kernel::ipc::IPC<0>>,
true,
MAIN_CAP.unwrap(),
&MAIN_CAP,
);
}
}
Expand Down
11 changes: 5 additions & 6 deletions boards/hail/src/main.rs
Expand Up @@ -9,7 +9,7 @@
#![cfg_attr(not(doc), no_main)]
#![deny(missing_docs)]

use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::hil;
Expand All @@ -18,7 +18,7 @@ use kernel::hil::Controller;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::round_robin::RoundRobinSched;
#[allow(unused_imports)]
use kernel::{create_capability, debug, debug_gpio, static_init};
use kernel::{debug, debug_gpio, static_init};
use sam4l::chip::Sam4lDefaultPeripherals;

/// Support routines for debugging I/O.
Expand Down Expand Up @@ -266,10 +266,9 @@ pub unsafe fn main() {

// Create capabilities that the board needs to call certain protected kernel
// functions.
let process_management_capability =
create_capability!(capabilities::ProcessManagementCapability);
let main_loop_capability = create_capability!(capabilities::MainLoopCapability);
let memory_allocation_capability = create_capability!(capabilities::MemoryAllocationCapability);
let process_management_capability = unsafe { Capability::<ProcessManagement>::new() };
let main_loop_capability = unsafe { Capability::<MainLoop>::new() };
let memory_allocation_capability = unsafe { Capability::<MemoryAllocation>::new() };

// Configure kernel debug gpios as early as possible
kernel::debug::assign_gpios(
Expand Down
10 changes: 5 additions & 5 deletions boards/hifive1/src/main.rs
Expand Up @@ -11,7 +11,7 @@

use capsules_core::virtualizers::virtual_alarm::{MuxAlarm, VirtualMuxAlarm};
use e310_g002::interrupt_service::E310G002DefaultPeripherals;
use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::hil;
Expand All @@ -22,7 +22,7 @@ use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::cooperative::CooperativeSched;
use kernel::utilities::registers::interfaces::ReadWriteable;
use kernel::Kernel;
use kernel::{create_capability, debug, static_init};
use kernel::{debug, static_init};
use rv32i::csr;

pub mod io;
Expand Down Expand Up @@ -171,7 +171,7 @@ fn load_processes_not_inlined<C: Chip>(board_kernel: &'static Kernel, chip: &'st
)
};

let process_mgmt_cap = create_capability!(capabilities::ProcessManagementCapability);
let process_mgmt_cap = unsafe { Capability::<ProcessManagement>::new() };
kernel::process::load_processes(
board_kernel,
chip,
Expand Down Expand Up @@ -210,7 +210,7 @@ pub unsafe fn main() {
.prci
.set_clock_frequency(sifive::prci::ClockFrequency::Freq344Mhz);

let main_loop_cap = create_capability!(capabilities::MainLoopCapability);
let main_loop_cap = unsafe { Capability::<MainLoop>::new() };

let board_kernel = static_init!(kernel::Kernel, kernel::Kernel::new(&PROCESSES));

Expand Down Expand Up @@ -276,7 +276,7 @@ pub unsafe fn main() {
);
systick_virtual_alarm.setup();

let memory_allocation_cap = create_capability!(capabilities::MemoryAllocationCapability);
let memory_allocation_cap = unsafe { Capability::<MemoryAllocation>::new() };
let alarm = static_init!(
capsules_core::alarm::AlarmDriver<
'static,
Expand Down
10 changes: 5 additions & 5 deletions boards/hifive_inventor/src/main.rs
Expand Up @@ -9,15 +9,15 @@

use capsules_core::virtualizers::virtual_alarm::{MuxAlarm, VirtualMuxAlarm};
use e310_g003::interrupt_service::E310G003DefaultPeripherals;
use kernel::capabilities;
use kernel::capabilities::{Capability, MainLoop, MemoryAllocation, ProcessManagement};
use kernel::component::Component;
use kernel::dynamic_deferred_call::{DynamicDeferredCall, DynamicDeferredCallClientState};
use kernel::hil;
use kernel::platform::scheduler_timer::VirtualSchedulerTimer;
use kernel::platform::{KernelResources, SyscallDriverLookup};
use kernel::scheduler::cooperative::CooperativeSched;
use kernel::utilities::registers::interfaces::ReadWriteable;
use kernel::{create_capability, debug, static_init};
use kernel::{debug, static_init};
use rv32i::csr;

pub mod io;
Expand Down Expand Up @@ -152,10 +152,10 @@ pub unsafe fn main() {
peripherals.e310x.uart1.disable();

// initialize capabilities
let process_mgmt_cap = create_capability!(capabilities::ProcessManagementCapability);
let memory_allocation_cap = create_capability!(capabilities::MemoryAllocationCapability);
let process_mgmt_cap = unsafe { Capability::<ProcessManagement>::new() };
let memory_allocation_cap = unsafe { Capability::<MemoryAllocation>::new() };

let main_loop_cap = create_capability!(capabilities::MainLoopCapability);
let main_loop_cap = unsafe { Capability::<MainLoop>::new() };

let board_kernel = static_init!(kernel::Kernel, kernel::Kernel::new(&PROCESSES));

Expand Down

0 comments on commit ad0463a

Please sign in to comment.