MCPcopy Create free account
hub / github.com/LPC4/Full-Stack / frame_sizes

Function frame_sizes

tests/integration/kernel_modules.rs:185–206  ·  view source on GitHub ↗

Parse ` :` / `; Allocate stack frame: N bytes` pairs out of asm text.

(asm: &str)

Source from the content-addressed store, hash-verified

183 current.take(),
184 rest.trim()
185 .strip_suffix(" bytes")
186 .and_then(|s| s.parse().ok()),
187 ) {
188 out.push((name, size));
189 }
190 }
191 }
192 out
193}
194
195// Compile every kernel function and assert no frame exceeds the safe ceiling.
196#[test]
197fn kernel_frames_stay_within_immediate_range() {
198 let mut p = CompilationPipeline::new();
199 p.set_target_mode(TargetMode::Kernel);
200 p.set_write_artifacts(false);
201 p.set_string_prefix(Some("__kern_str_".to_owned()));
202
203 p.set_type_prelude(get_stdlib_type_prelude());
204 let mut sources: Vec<(&str, String)> = get_stdlib_modules_for_mode(TargetMode::Kernel)
205 .iter()
206 .map(|(n, s)| (*n, (*s).to_owned()))
207 .collect();
208 sources.push(("my_kernel", kernel::MY_KERNEL.to_owned()));
209

Calls 3

pushMethod · 0.80
containsMethod · 0.45
parseMethod · 0.45