MCPcopy Create free account
hub / github.com/PLSysSec/wave / wasm2c_marshal_and_writeback_filestat

Function wasm2c_marshal_and_writeback_filestat

src/writeback.rs:139–162  ·  view source on GitHub ↗
(
    ctx: &mut VmCtx,
    addr: usize,
    res: RuntimeResult<FileStat>,
)

Source from the content-addressed store, hash-verified

137#[ensures(ctx_safe(ctx))]
138#[ensures(trace_safe(trace, ctx))]
139pub fn wasm2c_marshal_and_writeback_filestat(
140 ctx: &mut VmCtx,
141 addr: usize,
142 res: RuntimeResult<FileStat>,
143) -> u32 {
144 if !ctx.fits_in_lin_mem_usize(addr, 64) {
145 return RuntimeError::Eoverflow.into();
146 }
147 //log::debug!("wasm2c_marshal_and_writeback_filestat: {:?}", result);
148 match res {
149 Ok(r) => {
150 ctx.write_u64(addr, r.dev);
151 ctx.write_u64(addr + 8, r.ino);
152 ctx.write_u64(addr + 16, r.filetype.to_wasi() as u64);
153 ctx.write_u64(addr + 24, r.nlink);
154 ctx.write_u64(addr + 32, r.size);
155 ctx.write_u64(addr + 40, r.atim.nsec());
156 ctx.write_u64(addr + 48, r.mtim.nsec());
157 ctx.write_u64(addr + 56, r.ctim.nsec());
158 0
159 }
160 Err(err) => err.into(),
161 }
162}
163
164#[with_ghost_var(trace: &mut Trace)]
165#[requires(ctx_safe(ctx))]

Calls 4

fits_in_lin_mem_usizeMethod · 0.80
write_u64Method · 0.80
to_wasiMethod · 0.80
nsecMethod · 0.80

Tested by

no test coverage detected