fix: storage tables grow (handles, open files, encrypted opens, grants: Slots/Vec, no 8/16 caps; release follows all narrowed grants); storage says FULL, init spawn STORAGE_BUSY (was NOT_FOUND), pm BUSY; cap slots per process 64 -> 255

This commit is contained in:
2026-10-28 16:17:36 +01:00
parent 3b71f29f4c
commit 1f2134fcec
19 changed files with 208 additions and 128 deletions

View File

@@ -1,7 +1,8 @@
use crate::macros::bounded;
// Kani runs the real kernel with tiny tables; see kernel/src/proofs.
bounded!(CapSlot, u8, 0, if cfg!(kani) { 3 } else { 63 });
// 254 at most: `start_arg` hands a slot over as its value plus one, in a byte.
bounded!(CapSlot, u8, 0, if cfg!(kani) { 3 } else { 254 });
bounded!(Priority, u8, 0, 31);
// A caller a server thread saved to answer later; a thread keeps up to 8.
bounded!(SavedReply, u8, 0, 7);

View File

@@ -43,6 +43,8 @@ pub mod reply {
/// The limits do not fit in what is left of the client's allowance.
pub const OVER_ALLOWANCE: usize = 2;
pub const ERROR: usize = 3;
/// Storage has no connection free to read the program through.
pub const STORAGE_BUSY: usize = 4;
}
/// Pages in bits 0..32, endpoints, notifications and regions a byte each

View File

@@ -75,4 +75,6 @@ pub mod reply {
pub const GRANTED: usize = 11;
/// Outside the caller's scope, beyond its rights, or no grant at all.
pub const DENIED: usize = 12;
/// Every connection is in use (`MAX_CLIENTS`): try again later.
pub const FULL: usize = 13;
}