in optee-utee/src/tee_parameter.rs [115:151]
fn as_raw(&mut self) -> raw::TEE_Param {
match &mut self.content {
ParamContent::None => raw::TEE_Param {
memref: raw::Memref {
buffer: core::ptr::null_mut(),
size: 0,
},
},
ParamContent::MemrefInput { buffer } => raw::TEE_Param {
memref: raw::Memref {
buffer: (*buffer).as_ptr() as *mut core::ffi::c_void,
size: buffer.len(),
},
},
ParamContent::MemrefOutput { buffer, written: _ } => raw::TEE_Param {
memref: raw::Memref {
buffer: (*buffer).as_mut_ptr() as *mut core::ffi::c_void,
size: buffer.len(),
},
},
ParamContent::MemrefInout { buffer, written: _ } => raw::TEE_Param {
memref: raw::Memref {
buffer: (*buffer).as_mut_ptr() as *mut core::ffi::c_void,
size: buffer.len(),
},
},
ParamContent::ValueInput { a, b } => raw::TEE_Param {
value: raw::Value { a: *a, b: *b },
},
ParamContent::ValueInout { a, b } => raw::TEE_Param {
value: raw::Value { a: *a, b: *b },
},
ParamContent::ValueOutput { a, b } => raw::TEE_Param {
value: raw::Value { a: *a, b: *b },
},
}
}