前面我们对整个OPTEE驱动的工作逻辑有了个了解,这里来站在REE侧调用OP-TEE的过程。
在Linux用户空间对文件系统中的文件执行打开、关闭、读写以及ioctl操作时,最终都会穿透到Linux内核空间执行具体的操作。
而从**用户空间陷入到内核空间是通过系统调用(systemcall)**来实现的(关于syscall的实现可自行查阅资料了解),进入Linux内核空间后,系统会调用相应的驱动来获取设备对应的file_operations变量,该结构体变量中存放了对文件进行各种操作的具体函数指针。
所以从用户空间对文件进行操作时,其整个过程大致如图9-2所示。(这也说明在linux中什么都是文件)
调用libteec库中按照GP标准定义的API或tee_supplicant执行具体操作时都会经历图所示的流程。
这个过程再详细的就是Linux字符设备驱动的开放相关,我后面会学习这个Linux驱动开发相关的东西,到时候做个记录,放在Linux驱动中。
下面来详细来看看在OPTEE驱动中重要的结构体变量