  pub use crate::sched::round_robin::{RoundRobinProcessNode, RoundRobinSched};
 -pub use crate::sched::{Kernel, Scheduler};
 +pub use crate::sched::{Kernel, Scheduler, StorageLocation};
-
+ 
  // Export only select items from the process module. To remove the name conflict
  // this cannot be called `process`, so we use a shortened version. These
 diff --git a/kernel/src/memop.rs b/kernel/src/memop.rs
-index 348c746..5465c95 100644
+index 348c746a5..5465c95f4 100644
 --- a/kernel/src/memop.rs
 +++ b/kernel/src/memop.rs
 @@ -108,6 +108,25 @@ pub(crate) fn memop(process: &dyn ProcessType, op_type: usize, r1: usize) -> Ret
              ReturnCode::SUCCESS
          }
-
+ 
 +        // Op Type 12: Number of storage locations.
 +        12 => ReturnCode::SuccessWithValue { value: process.number_storage_locations() },
 +

     }
 }
diff --git a/kernel/src/process.rs b/kernel/src/process.rs
index 4dfde3b..0ceff3e 100644
--- a/kernel/src/process.rs
+++ b/kernel/src/process.rs
@@ -360,6 +360,15 @@ pub trait ProcessType {
     /// writeable flash region.
     fn get_writeable_flash_region(&self, region_index: usize) -> (u32, u32);

+    /// How many storage locations are defined for this process.
+    fn number_storage_locations(&self) -> usize;
+

+    );
+
     nrf52_components::NrfClockComponent::new().finalize(());
 
     let platform = Platform {
@@ -300,6 +337,7 @@ pub unsafe fn reset_handler() {
         temp,
