TEEC_AllocateSharedMemory

在Kernel中调用alloc_pages分配若干块共享内存(最小单位为page)

TEEC_RegisterSharedMemory

将共享内存以page为单位,转换成物理地址后,在call到TEE中进行注册.

总结

在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流程,无需数据拷贝

TEEC_RegisterSharedMemory和TEEC_AllocateSharedMemory的区别相关推荐

  1. TEEC_AllocateSharedMemory()和 TEEC_RegisterSharedMemory()的总结

    TEEC_AllocateSharedMemory(): 在Kernel中分配一块内存,返回CA端(UserSpace),CA端再调用mmap().在TEEC_OpenSession()和TEEC_I ...

  2. CA/TA参数传输中tmpref,memref和Value的区别

    先看一个示例,展示了tmpref和memref的区别, 其中: local buffer.buffer on heap 为tmpref explicit shared memory buffer 为m ...

  3. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  4. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  5. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  6. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  7. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  8. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  9. python二进制打开(rb)和文本格式打开(r)什么区别?

    使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...

最新文章

  1. 一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
  2. 错误---获取Input的值为空字符串
  3. [HAOI 2010]软件安装
  4. 04.Java网络编程(转载)
  5. Fedora 11 上安装subversion 和apache服务器
  6. Python赋值、打包和解包,90%人不清楚的知识点!
  7. 【电设控制与图像训练题】【激光打靶】【openmv测试代码以及效果】
  8. 内存分配器ptmalloc,jemalloc,tcmalloc调研与对比
  9. Qt总结之二十二:Qt控件QObject
  10. window.location.reload(false);window.location.reload(true);history.Go(0)区别
  11. bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB
  12. MATLAB怎么做出三叶玫瑰线,matlab复习题
  13. 平方和误差函数--代价函数(机器学习)
  14. CAD二次开发--ZOOM自定义缩放到视口区域,解决SelectCrossingWindow等方法对视口外实体不起作用的问题
  15. QQ合并的聊天记录可以通过什么方式转换成链接,点开链接就能看合并的聊天记录?
  16. 谈谈区块链的常用架构
  17. Ubuntu18.04安装教程(很详细)
  18. 实验一Linux开发环境搭建与LED点亮
  19. 搜索引擎Solr环境搭建详解
  20. 基于物联网的智慧农业解决方案

热门文章

  1. python str转dict_在python中将str转换为dict
  2. 新基建将引发全国用电量暴涨近两成,如何应对
  3. linux runable进程查询,关于Linux下进程的详解【进程查看与管理】
  4. phpstudy搭建网站使用php,教你用phpstudy搭建本地服务并建dedecms网站
  5. ad软件 pcb如何走线过孔_【经验】关于高速PCB设计的一些经典问答
  6. ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测
  7. IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)
  8. Py之yacs:yacs的简介、安装、使用方法之详细攻略
  9. 成功解决OSError: cannot open resource File F:Python36\lib\site-packages\PIL\ImageFont.py, self.font
  10. OS_CORE.C(4)