Skip to content

Commit 80d5d60

Browse files
Formatted code
Signed-off-by: Ioan-Cristian CÎRSTEA <ioan.cirstea@oxidos.io>
1 parent 72eca77 commit 80d5d60

36 files changed

Lines changed: 1021 additions & 934 deletions

arch/cortex-m/src/mpu.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,10 @@
77
//! Implementation of the memory protection unit for the Cortex-M0+, Cortex-M3,
88
//! Cortex-M4, and Cortex-M7.
99
10-
use kernel::platform::mmu::{
11-
Asid,
12-
MPU as MpuTrait,
13-
MpuMmuCommon,
14-
};
1510
use kernel::memory_management::pages::Page4KiB;
1611
use kernel::memory_management::permissions::Permissions;
1712
use kernel::memory_management::regions::PhysicalProtectedAllocatedRegion;
13+
use kernel::platform::mmu::{Asid, MpuMmuCommon, MPU as MpuTrait};
1814
use kernel::utilities::math;
1915
use kernel::utilities::registers::interfaces::Writeable;
2016
use kernel::utilities::registers::{register_bitfields, FieldValue, ReadOnly, ReadWrite};
@@ -142,9 +138,7 @@ impl<const NUM_REGIONS: usize, const MIN_REGION_SIZE: usize> MPU<NUM_REGIONS, MI
142138
const RAM_REGION_INDEX: usize = 1;
143139

144140
pub unsafe fn new(registers: StaticRef<MpuRegisters>) -> Self {
145-
let mpu = Self {
146-
registers,
147-
};
141+
let mpu = Self { registers };
148142

149143
// Mark all regions as empty.
150144
for region_index in 0..NUM_REGIONS {
@@ -171,14 +165,13 @@ impl<const NUM_REGIONS: usize, const MIN_REGION_SIZE: usize> MPU<NUM_REGIONS, MI
171165
index: usize,
172166
protected_region: &PhysicalProtectedAllocatedRegion<Page4KiB>,
173167
) {
174-
let starting_pointer = protected_region.get_starting_pointer()
175-
.infallible_cast();
168+
let starting_pointer = protected_region.get_starting_pointer().infallible_cast();
176169
let raw_starting_pointer = unsafe { starting_pointer.to_raw() };
177170
let protected_length_bytes = protected_region.get_protected_length_bytes();
178171
let permissions = protected_region.get_permissions();
179172

180173
if let Some(cortex_m_region) = CortexMRegion::new(
181-
raw_starting_pointer,
174+
raw_starting_pointer,
182175
protected_length_bytes.get(),
183176
index,
184177
None,

arch/cortex-m/src/syscall.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ use core::ops::Range;
1414
use core::ptr::{self, addr_of, addr_of_mut, read_volatile, write_volatile};
1515
use kernel::errorcode::ErrorCode;
1616
use kernel::memory_management::pointers::{
17-
ImmutableKernelVirtualPointer,
18-
ImmutableUserVirtualPointer,
17+
ImmutableKernelVirtualPointer, ImmutableUserVirtualPointer,
1918
};
2019

2120
use crate::CortexMVariant;
@@ -274,7 +273,10 @@ impl<A: CortexMVariant> kernel::syscall::UserspaceKernelBoundary for SysCall<A>
274273
user_accessible_memory_start: &ImmutableUserVirtualPointer<u8>,
275274
user_app_brk: &ImmutableUserVirtualPointer<u8>,
276275
state: &mut CortexMStoredState,
277-
) -> (kernel::syscall::ContextSwitchReason, Option<ImmutableUserVirtualPointer<u8>>) {
276+
) -> (
277+
kernel::syscall::ContextSwitchReason,
278+
Option<ImmutableUserVirtualPointer<u8>>,
279+
) {
278280
let user_accessible_memory_start_address = user_accessible_memory_start.get_address();
279281
let user_app_brk_address = user_app_brk.get_address();
280282

arch/riscv/src/pmp.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
// Copyright Tock Contributors 2022.
44

55
use core::cell::Cell;
6-
use core::num::NonZeroUsize;
76
use core::fmt;
7+
use core::num::NonZeroUsize;
88

99
use kernel::memory_management::pages::Page4KiB;
1010
use kernel::memory_management::permissions::Permissions;
@@ -838,11 +838,8 @@ impl<const MAX_REGIONS: usize, P: TORUserPMP<MAX_REGIONS> + 'static> PMPUserMPU<
838838
#[allow(clippy::let_unit_value)]
839839
let _: () = P::CONST_ASSERT_CHECK;
840840

841-
const DEFAULT_REGION: (TORUserPMPCFG, *const u8, *const u8) = (
842-
TORUserPMPCFG::OFF,
843-
core::ptr::null(),
844-
core::ptr::null(),
845-
);
841+
const DEFAULT_REGION: (TORUserPMPCFG, *const u8, *const u8) =
842+
(TORUserPMPCFG::OFF, core::ptr::null(), core::ptr::null());
846843

847844
PMPUserMPU {
848845
regions: MapCell::new([DEFAULT_REGION; MAX_REGIONS]),
@@ -876,8 +873,8 @@ impl<const MAX_REGIONS: usize, P: TORUserPMP<MAX_REGIONS> + 'static> PMPUserMPU<
876873
}
877874
}
878875

879-
impl<const MAX_REGIONS: usize, P: TORUserPMP<MAX_REGIONS> + 'static> kernel::platform::mmu::MpuMmuCommon
880-
for PMPUserMPU<MAX_REGIONS, P>
876+
impl<const MAX_REGIONS: usize, P: TORUserPMP<MAX_REGIONS> + 'static>
877+
kernel::platform::mmu::MpuMmuCommon for PMPUserMPU<MAX_REGIONS, P>
881878
{
882879
type Granule = Page4KiB;
883880

arch/riscv/src/syscall.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ use core::ops::Range;
1111
use crate::csr::mcause;
1212
use kernel::errorcode::ErrorCode;
1313
use kernel::memory_management::pointers::{
14-
ImmutableKernelVirtualPointer,
15-
ImmutableUserVirtualPointer,
14+
ImmutableKernelVirtualPointer, ImmutableUserVirtualPointer,
1615
};
1716
use kernel::syscall::ContextSwitchReason;
1817

arch/x86/src/boundary/boundary_impl.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ use core::fmt::Write;
77
use crate::registers::bits32::eflags::{EFlags, EFLAGS};
88

99
use kernel::memory_management::pointers::{
10-
ImmutableKernelVirtualPointer,
11-
ImmutableUserVirtualPointer,
10+
ImmutableKernelVirtualPointer, ImmutableUserVirtualPointer,
1211
};
1312
use kernel::process::FunctionCall;
1413
use kernel::syscall::{ContextSwitchReason, Syscall, SyscallReturn, UserspaceKernelBoundary};
@@ -56,7 +55,9 @@ impl UserspaceKernelBoundary for Boundary {
5655
user_app_brk: &ImmutableUserVirtualPointer<u8>,
5756
state: &mut Self::StoredState,
5857
) -> Result<(), ()> {
59-
if user_app_brk.get_address().get() - user_accessible_memory_start.get_address().get() < Self::MIN_APP_BRK {
58+
if user_app_brk.get_address().get() - user_accessible_memory_start.get_address().get()
59+
< Self::MIN_APP_BRK
60+
{
6061
return Err(());
6162
}
6263

arch/x86/src/mmu.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,15 @@
44

55
// todo: this module needs some polish
66

7-
use crate::registers::bits32::paging::{
8-
PAddr, PDEntry, PTEntry, PD, PDFLAGS, PT, PTFLAGS,
9-
};
7+
use crate::registers::bits32::paging::{PAddr, PDEntry, PTEntry, PD, PDFLAGS, PT, PTFLAGS};
108
use crate::registers::controlregs::{self, CR0, CR4};
119
use crate::registers::tlb;
1210
use core::fmt;
1311
use kernel::memory_management::pages::Page4KiB;
1412
use kernel::memory_management::permissions::Permissions;
15-
use kernel::memory_management::pointers::{
16-
MutableUserVirtualPointer,
17-
MutablePhysicalPointer,
18-
};
13+
use kernel::memory_management::pointers::{MutablePhysicalPointer, MutableUserVirtualPointer};
1914
use kernel::memory_management::regions::UserMappedProtectedAllocatedRegion;
20-
use kernel::platform::mmu::{
21-
Asid,
22-
};
15+
use kernel::platform::mmu::Asid;
2316
use kernel::utilities::cells::OptionalCell;
2417
use tock_registers::LocalRegisterCopy;
2518

@@ -380,7 +373,8 @@ impl kernel::platform::mmu::MMU for MMU<'_> {
380373
}
381374

382375
self.add_user_region(mapped_region);
383-
self.cached_user_prog_region.set(CachedRegion::new(mapped_region));
376+
self.cached_user_prog_region
377+
.set(CachedRegion::new(mapped_region));
384378

385379
unsafe { tlb::flush_all() };
386380
}
@@ -394,7 +388,8 @@ impl kernel::platform::mmu::MMU for MMU<'_> {
394388
}
395389

396390
self.add_user_region(mapped_region);
397-
self.cached_user_ram_region.set(CachedRegion::new(mapped_region));
391+
self.cached_user_ram_region
392+
.set(CachedRegion::new(mapped_region));
398393

399394
unsafe { tlb::flush_all() };
400395
}

boards/qemu_i486_q35/src/linker.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ extern "C" {
5656
///
5757
/// 1. `start` and `end` are not page-aligned.
5858
/// 2. address(`start`) >= address(`end`)
59-
unsafe fn get_mutable_physical_slice(start: *mut u8, end: *mut u8) -> MutablePhysicalSlice<'static, Page4KiB> {
59+
unsafe fn get_mutable_physical_slice(
60+
start: *mut u8,
61+
end: *mut u8,
62+
) -> MutablePhysicalSlice<'static, Page4KiB> {
6063
// PANIC: the function's precondition ensures that `start` is page-aligned.
6164
let start = MutablePointer::new(start.cast()).unwrap();
6265
// PANIC: the function's precondition ensures that `end` is page-aligned.
@@ -96,7 +99,7 @@ pub(crate) unsafe fn get_kernel_prog_region() -> MutablePhysicalSlice<'static, P
9699
let kernel_prog_start = core::ptr::addr_of_mut!(_sprog);
97100
let kernel_prog_end = core::ptr::addr_of_mut!(_eprog);
98101

99-
// SAFETY:
102+
// SAFETY:
100103
//
101104
// 1. the function's precondition ensures that `get_kernel_prog_region()` is called only once
102105
// and as such `get_mutable_physical_slice()` too.
@@ -114,7 +117,7 @@ pub(crate) unsafe fn get_kernel_ram_region() -> MutablePhysicalSlice<'static, Pa
114117
let kernel_ram_start = core::ptr::addr_of_mut!(_sram);
115118
let kernel_ram_end = core::ptr::addr_of_mut!(_eram);
116119

117-
// SAFETY:
120+
// SAFETY:
118121
//
119122
// 1. the function's precondition ensures that `get_kernel_ram_region()` is called only once
120123
// and as such `get_mutable_physical_slice()` too.
@@ -128,7 +131,7 @@ pub(crate) unsafe fn get_kernel_peripheral_region() -> MutablePhysicalSlice<'sta
128131
let kernel_peripheral_start = core::ptr::addr_of_mut!(_speripheral);
129132
let kernel_peripheral_end = core::ptr::addr_of_mut!(_eperipheral);
130133

131-
// SAFETY:
134+
// SAFETY:
132135
//
133136
// 1. the function's precondition ensures that `get_kernel_peripheral_region()` is called only
134137
// once and as such `get_mutable_physical_slice()` too.

boards/qemu_i486_q35/src/main.rs

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ use kernel::platform::{KernelResources, SyscallDriverLookup};
2727
use kernel::process::Process;
2828
use kernel::scheduler::cooperative::CooperativeSched;
2929
use kernel::syscall::SyscallDriver;
30-
use kernel::{create_capability, static_init, Kernel};
3130
use kernel::utilities::cells::OptionalCell;
3231
use kernel::utilities::slices::NonEmptyMutableSlice;
32+
use kernel::{create_capability, static_init, Kernel};
3333

3434
use x86::registers::bits32::paging::{PDEntry, PTEntry, PD, PT};
3535
use x86::registers::irq;
@@ -52,7 +52,8 @@ const NUM_PROCS: usize = 4;
5252

5353
// Actual memory for holding the active process structures. Need an empty list
5454
// at least.
55-
static mut PROCESSES: [OptionalCell<&'static dyn Process>; NUM_PROCS] = [const { OptionalCell::empty() }; NUM_PROCS];
55+
static mut PROCESSES: [OptionalCell<&'static dyn Process>; NUM_PROCS] =
56+
[const { OptionalCell::empty() }; NUM_PROCS];
5657

5758
// Reference to the chip for panic dumps
5859
static mut CHIP: Option<&'static Pc> = None;
@@ -174,12 +175,14 @@ unsafe extern "cdecl" fn main() {
174175
use kernel::memory_management::pages::Page4KiB;
175176
let apps_ram = core::slice::from_raw_parts_mut(
176177
(core::ptr::addr_of_mut!(linker::_sappmem) as usize) as *mut Page4KiB,
177-
core::ptr::addr_of!(linker::_eappmem) as usize - core::ptr::addr_of!(linker::_sappmem) as usize,
178+
core::ptr::addr_of!(linker::_eappmem) as usize
179+
- core::ptr::addr_of!(linker::_sappmem) as usize,
178180
);
179181

180182
// PANIC: the linker script ensures that the RAM region is not empty.
181183
let non_empty_ram_memory = NonEmptyMutableSlice::new(apps_ram).unwrap();
182-
let physical_ram_memory = kernel::memory_management::slices::MutablePhysicalSlice::new(non_empty_ram_memory);
184+
let physical_ram_memory =
185+
kernel::memory_management::slices::MutablePhysicalSlice::new(non_empty_ram_memory);
183186

184187
type RamAllocator = kernel::memory_management::allocators::StaticAllocator<'static, Page4KiB>;
185188
let ram_allocator = RamAllocator::new(physical_ram_memory);
@@ -189,15 +192,39 @@ unsafe extern "cdecl" fn main() {
189192
let physical_kernel_ram_memory = linker::get_kernel_ram_region();
190193
let physical_kernel_peripheral_memory = linker::get_kernel_peripheral_region();
191194

192-
let allocated_kernel_rom_memory = kernel::memory_management::regions::PhysicalAllocatedRegion::new(physical_kernel_rom_memory);
193-
let allocated_kernel_prog_memory = kernel::memory_management::regions::PhysicalAllocatedRegion::new(physical_kernel_prog_memory);
194-
let allocated_kernel_ram_memory = kernel::memory_management::regions::PhysicalAllocatedRegion::new(physical_kernel_ram_memory);
195-
let allocated_kernel_peripheral_memory = kernel::memory_management::regions::PhysicalAllocatedRegion::new(physical_kernel_peripheral_memory);
196-
197-
let mapped_kernel_rom_memory = kernel::memory_management::regions::MappedAllocatedRegion::new_flat(allocated_kernel_rom_memory);
198-
let mapped_kernel_prog_memory = kernel::memory_management::regions::MappedAllocatedRegion::new_flat(allocated_kernel_prog_memory);
199-
let mapped_kernel_ram_memory = kernel::memory_management::regions::MappedAllocatedRegion::new_flat(allocated_kernel_ram_memory);
200-
let mapped_kernel_peripheral_memory = kernel::memory_management::regions::MappedAllocatedRegion::new_flat(allocated_kernel_peripheral_memory);
195+
let allocated_kernel_rom_memory =
196+
kernel::memory_management::regions::PhysicalAllocatedRegion::new(
197+
physical_kernel_rom_memory,
198+
);
199+
let allocated_kernel_prog_memory =
200+
kernel::memory_management::regions::PhysicalAllocatedRegion::new(
201+
physical_kernel_prog_memory,
202+
);
203+
let allocated_kernel_ram_memory =
204+
kernel::memory_management::regions::PhysicalAllocatedRegion::new(
205+
physical_kernel_ram_memory,
206+
);
207+
let allocated_kernel_peripheral_memory =
208+
kernel::memory_management::regions::PhysicalAllocatedRegion::new(
209+
physical_kernel_peripheral_memory,
210+
);
211+
212+
let mapped_kernel_rom_memory =
213+
kernel::memory_management::regions::MappedAllocatedRegion::new_flat(
214+
allocated_kernel_rom_memory,
215+
);
216+
let mapped_kernel_prog_memory =
217+
kernel::memory_management::regions::MappedAllocatedRegion::new_flat(
218+
allocated_kernel_prog_memory,
219+
);
220+
let mapped_kernel_ram_memory =
221+
kernel::memory_management::regions::MappedAllocatedRegion::new_flat(
222+
allocated_kernel_ram_memory,
223+
);
224+
let mapped_kernel_peripheral_memory =
225+
kernel::memory_management::regions::MappedAllocatedRegion::new_flat(
226+
allocated_kernel_peripheral_memory,
227+
);
201228

202229
// Create a board kernel instance
203230
let board_kernel = static_init!(

boards/qemu_rv32_virt/src/linker.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ extern "C" {
6060
///
6161
/// 1. `start` and `end` are not page-aligned.
6262
/// 2. address(`start`) >= address(`end`)
63-
unsafe fn get_mutable_physical_slice(start: *mut u8, end: *mut u8) -> MutablePhysicalSlice<'static, Page4KiB> {
63+
unsafe fn get_mutable_physical_slice(
64+
start: *mut u8,
65+
end: *mut u8,
66+
) -> MutablePhysicalSlice<'static, Page4KiB> {
6467
// PANIC: the function's precondition ensures that `start` is page-aligned.
6568
let start = MutablePointer::new(start.cast()).unwrap();
6669
// PANIC: the function's precondition ensures that `end` is page-aligned.
@@ -100,7 +103,7 @@ pub(crate) unsafe fn get_kernel_prog_region() -> MutablePhysicalSlice<'static, P
100103
let kernel_prog_start = core::ptr::addr_of_mut!(_sprog);
101104
let kernel_prog_end = core::ptr::addr_of_mut!(_eprog);
102105

103-
// SAFETY:
106+
// SAFETY:
104107
//
105108
// 1. the function's precondition ensures that `get_kernel_prog_region()` is called only once
106109
// and as such `get_mutable_physical_slice()` too.
@@ -118,7 +121,7 @@ pub(crate) unsafe fn get_kernel_ram_region() -> MutablePhysicalSlice<'static, Pa
118121
let kernel_ram_start = core::ptr::addr_of_mut!(_sram);
119122
let kernel_ram_end = core::ptr::addr_of_mut!(_eram);
120123

121-
// SAFETY:
124+
// SAFETY:
122125
//
123126
// 1. the function's precondition ensures that `get_kernel_ram_region()` is called only once
124127
// and as such `get_mutable_physical_slice()` too.
@@ -132,7 +135,7 @@ pub(crate) unsafe fn get_kernel_peripheral_region() -> MutablePhysicalSlice<'sta
132135
let kernel_peripheral_start = core::ptr::addr_of_mut!(_speripheral);
133136
let kernel_peripheral_end = core::ptr::addr_of_mut!(_eperipheral);
134137

135-
// SAFETY:
138+
// SAFETY:
136139
//
137140
// 1. the function's precondition ensures that `get_kernel_peripheral_region()` is called only
138141
// once and as such `get_mutable_physical_slice()` too.

0 commit comments

Comments
 (0)