Struct kernel::processbuffer::ReadableProcessByte
source · pub struct ReadableProcessByte { /* private fields */ }
Expand description
Read-only wrapper around a Cell
This type is used in providing the ReadableProcessSlice
. The
memory over which a ReadableProcessSlice
exists must never be
written to by the kernel. However, it may either exist in flash
(read-only memory) or RAM (read-writeable memory). Consequently, a
process may allow
memory overlapping with a
ReadOnlyProcessBuffer
also simultaneously through a
ReadWriteProcessBuffer
. Hence, the kernel can have two
references to the same memory, where one can lead to mutation of
the memory contents. Therefore, the kernel must use Cell
s
around the bytes shared with userspace, to avoid violating Rust’s
aliasing rules.
This read-only wrapper around a Cell
only exposes methods
which are safe to call on a process-shared read-only allow
memory.