TEEC_RegisterSharedMemory和TEEC_AllocateSharedMemory的区别
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的区别相关推荐
- TEEC_AllocateSharedMemory()和 TEEC_RegisterSharedMemory()的总结
TEEC_AllocateSharedMemory(): 在Kernel中分配一块内存,返回CA端(UserSpace),CA端再调用mmap().在TEEC_OpenSession()和TEEC_I ...
- CA/TA参数传输中tmpref,memref和Value的区别
先看一个示例,展示了tmpref和memref的区别, 其中: local buffer.buffer on heap 为tmpref explicit shared memory buffer 为m ...
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别
最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
- Python2 与 Python3 区别
Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...
- Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别
Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...
- HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)
TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...
- python二进制打开(rb)和文本格式打开(r)什么区别?
使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...
最新文章
- 一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
- 错误---获取Input的值为空字符串
- [HAOI 2010]软件安装
- 04.Java网络编程(转载)
- Fedora 11 上安装subversion 和apache服务器
- Python赋值、打包和解包,90%人不清楚的知识点!
- 【电设控制与图像训练题】【激光打靶】【openmv测试代码以及效果】
- 内存分配器ptmalloc,jemalloc,tcmalloc调研与对比
- Qt总结之二十二:Qt控件QObject
- window.location.reload(false);window.location.reload(true);history.Go(0)区别
- bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB
- MATLAB怎么做出三叶玫瑰线,matlab复习题
- 平方和误差函数--代价函数(机器学习)
- CAD二次开发--ZOOM自定义缩放到视口区域,解决SelectCrossingWindow等方法对视口外实体不起作用的问题
- QQ合并的聊天记录可以通过什么方式转换成链接,点开链接就能看合并的聊天记录?
- 谈谈区块链的常用架构
- Ubuntu18.04安装教程(很详细)
- 实验一Linux开发环境搭建与LED点亮
- 搜索引擎Solr环境搭建详解
- 基于物联网的智慧农业解决方案
热门文章
- python str转dict_在python中将str转换为dict
- 新基建将引发全国用电量暴涨近两成,如何应对
- linux runable进程查询,关于Linux下进程的详解【进程查看与管理】
- phpstudy搭建网站使用php,教你用phpstudy搭建本地服务并建dedecms网站
- ad软件 pcb如何走线过孔_【经验】关于高速PCB设计的一些经典问答
- ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测
- IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)
- Py之yacs:yacs的简介、安装、使用方法之详细攻略
- 成功解决OSError: cannot open resource File F:Python36\lib\site-packages\PIL\ImageFont.py, self.font
- OS_CORE.C(4)