CA/TA参数传输中tmpref,memref和Value的区别
生活随笔
收集整理的這篇文章主要介紹了
CA/TA参数传输中tmpref,memref和Value的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先看一個示例,展示了tmpref和memref的區別, 其中:
- local buffer、buffer on heap 為tmpref
- explicit shared memory buffer 為memref
Shared Memory Buffer Lifetime
對于這三種buf,如下做出了一個總結
總結
在TEEC_OpenSession()或TEEC_InvokeCommand()調用時:
- 如果是tmpref(local buf、heap buf),那么在teec_pre_process_tmpref()中會先調用TEEC_RegisterSharedMemory(),先到kernel中alloc_pages()一塊內存,然后mmap()到到shadow_buffer ,. 然后走non zero-copy流程,將tmpref拷貝到shadow_buffer
- 如果是memref,說明已經調用過TEEC_AllocateSharedMemory(),該內存是在Kernel通過alloc_pages分配的,走zero-copy流程,無需數據拷貝
總結
以上是生活随笔為你收集整理的CA/TA参数传输中tmpref,memref和Value的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TEEC_Context和TEEC_In
- 下一篇: TEEC_RegisterSharedM