Skip to main content

TEEC_RegisterSharedMemory

Function TEEC_RegisterSharedMemory 

Source
#[unsafe(no_mangle)]
pub extern "C" fn TEEC_RegisterSharedMemory( ctx: *mut TEEC_Context, shm: *mut TEEC_SharedMemory, ) -> TEEC_Result
Expand description

TEEC_RegisterSharedMemory() - 将现有内存块注册为在指定上下文作用域内的 共享内存块。

@param ctx 已初始化的 TEE 上下文。 @param sharedMem 要注册的共享内存结构指针。

@return TEEC_SUCCESS 注册成功。 @return TEEC_ERROR_OUT_OF_MEMORY 内存不足。 @return TEEC_Result 其他错误。

Examples found in repository?
examples/cc-teec.rs (line 374)
362fn register_shared_memory(
363    ctx: &mut raw::TEEC_Context,
364    buffer: *mut c_void,
365    size: usize,
366    flags: u32,
367) -> Result<raw::TEEC_SharedMemory> {
368    // SAFETY: `TEEC_SharedMemory` 是 POD 类型,零初始化是有效的。
369    let mut shm: raw::TEEC_SharedMemory = unsafe { mem::zeroed() };
370    shm.buffer = buffer;
371    shm.size = size;
372    shm.flags = flags;
373
374    let res = TEEC_RegisterSharedMemory(ctx, &mut shm);
375    if res != raw::TEEC_SUCCESS {
376        return Err(Error::from_raw_os_error(res as i32));
377    }
378
379    Ok(shm)
380}