zoukankan      html  css  js  c++  java
  • GP TEE Client API基本概念

    TEE Client API关键原则是:

    C语言

    阻塞式函数

    源码级别的可移植性

    客户端内存分配

    零拷贝数据传输

    通过指针共享内存

    专注于定义基础通信机制

    TEE Client AP基础概念:

    TEE Context:TEE Context是CA和TEE之间的逻辑连接的抽象。

    必须先初始化TEE Context,然后才能在该TEE Context所表示的TEE中创建CA与TA间的会话。当不再需要与TEE的连接时,应终止TEE Context,从而释放系统资源。

    Session:Session是CA和TA之间的逻辑连接的抽象。会话由CA在特定的TEE Context内打开。

    在创建新会话时,CA必须使用UUID标识其希望连接的TA。

    Command:Command是一个会话中CA和TA的通信单元。

    当启动新命令时,CA通过传递数字标识符来标识其希望执行TA中的对应功能,并提供TA需要的数据。命令调用将阻塞CA线程,等待来自TA的答复,CA可以使用多线程来并发处理多个命令。

    Operation Payload:OpenSession和InvokeCommand可以携带payload,载荷存储在TEEC_Parameter数据结构中,可以携带四个TEEC_Parameter。

    每个Parameter是内存引用或值参数,内存引用参数用于通过共享内存缓冲区交换数据,值参数以两个32位整数的形式携带少量数据。

    内存引用包含已注册内存引用或临时内存引用,注册内存引用是在操作之前创建的共享内存块中的区域,临时内存引用直接指定了CA拥有的一块内存缓冲区,该缓冲区在执行操作期间由TEE Client API临时注册。

    Shared Memory:共享内存是在CA内存空间中分配的内存区域,可用于在CA和TA之间传输数据。

    共享内存可以是现有的CA内存,该内存随后通过TEE Client API注册,也可以是CA使用TEE Client API分配的内存。共享内存可以注册或分配一次,然后在多个命令中使用,甚至可以在多个会话中使用,前提是它们存在于创建共享内存的TEE Context范围内。

    零拷贝数据传输——在可能的情况下,TEE Client API下的通信通道的实现应尝试将共享内存直接映射到TA内存空间,从而实现真正的零拷贝数据传输。CA开发人员应注意,让TEE Client API使用TEEC_AllocateSharedMemory函数分配内存缓冲区可最大程度地利用零拷贝交换成功共享它。

    Memory References:内存引用是某个特定操作实际共享的字节范围,表示为TEEC_MemoryReference或TEEC_TempMemoryReference数据结构。

    内存引用类型包含有,

    TEEC_MEMREF_TEMP_INPUT、TEEC_MEMREF_TEMP_OUTPUT、TEEC_MEMREF_TEMP_INOUT,临时内存引用预示着该参数指向要共享的内存缓冲区,而不是指向共享内存控制结构。在执行操作期间,此CA缓冲区将被临时共享。

    TEEC_MEMREF_WHOLE,整个内存引用实现了一种轻量级的机制,可以共享整个父级共享内存块,而无需复制内存引用中共享内存结构控制字段的内容。使用此内存类型时,整个共享内存区域将与父共享内存指定的方向标志共享。

    TEEC_MEMREF_PARTIAL_INPUT、TEEC_MEMREF_PARTIAL_OUTPUT、TEEC_MEMREF_PARTIAL_INOUT,部分内存引用是指父共享内存块的子区域,允许该块内的任何区域与TA共享。

    Resource Cleanup:

    释放Shared Memory时,客户端代码必须确保在挂起的操作中未引用它

    关闭会话时,会话中不得有任何待处理的操作

    在终止TEE Context时,其范围内不得有任何打开的会话

  • 相关阅读:
    P1030 求先序排列 P1305 新二叉树
    spfa
    Clairewd’s message ekmp
    Cyclic Nacklace hdu3746 kmp 最小循环节
    P1233 木棍加工 dp LIS
    P1052 过河 线性dp 路径压缩
    Best Reward 拓展kmp
    Period kmp
    Substrings kmp
    Count the string kmp
  • 原文地址:https://www.cnblogs.com/caidi/p/14692865.html
Copyright © 2011-2022 走看看