openvm_circuit/system/program/
mod.rs1use openvm_cpu_backend::CpuBackend;
2use openvm_instructions::instruction::Instruction;
3use openvm_stark_backend::{prover::CommittedTraceData, StarkProtocolConfig};
4
5#[cfg(test)]
6pub mod tests;
7
8mod air;
9mod bus;
10pub mod trace;
11
12pub use air::*;
13pub use bus::*;
14
15const EXIT_CODE_FAIL: usize = 1;
16
17pub struct ProgramChip<SC: StarkProtocolConfig> {
19 pub(super) filtered_exec_frequencies: Vec<u32>,
22 pub(super) cached: Option<CommittedTraceData<CpuBackend<SC>>>,
23 _marker: std::marker::PhantomData<SC>,
24}
25
26impl<SC: StarkProtocolConfig> ProgramChip<SC> {
27 pub(super) fn unloaded() -> Self {
28 Self {
29 filtered_exec_frequencies: Vec::new(),
30 cached: None,
31 _marker: std::marker::PhantomData,
32 }
33 }
34}