sp1_recursion_core/chips/mem/
mod.rs

1pub mod constant;
2pub mod variable;
3
4pub use constant::MemoryChip as MemoryConstChip;
5pub use variable::MemoryChip as MemoryVarChip;
6
7use sp1_derive::AlignedBorrow;
8
9use crate::Address;
10
11pub const NUM_MEM_ACCESS_COLS: usize = core::mem::size_of::<MemoryAccessCols<u8>>();
12
13/// Data describing in what manner to access a particular memory block.
14#[derive(AlignedBorrow, Debug, Clone, Copy)]
15#[repr(C)]
16pub struct MemoryAccessColsChips<F: Copy> {
17    /// The address to access.
18    pub addr: Address<F>,
19    /// The multiplicity which to read/write.
20    /// "Positive" values indicate a write, and "negative" values indicate a read.
21    pub mult: F,
22}
23
24/// Avoids cbindgen naming collisions.
25pub type MemoryAccessCols<F> = MemoryAccessColsChips<F>;