OP-TEE driver(四):驱动与共享内存的相关操作

OP-TEE驱动与OP-TEE之间共享内存的注册和分配,当libteec库和tee_supplicant需要分配或注册与安全世界状态之间的共享内存时,可通过调用OP-TEE驱动的ioctl方法来实现,ioctl函数将调用tee_ioctl_shm_alloc函数来实现具体的共享内存的分配、注册共享内存的操作。

该函数的内容如下:

        static int tee_ioctl_shm_alloc(struct tee_context *ctx,
                          struct tee_ioctl_shm_alloc_data __user *udata)
        {
            long ret;
            struct tee_ioctl_shm_alloc_data data;
            struct tee_shm *shm;
            /* 将userspace传递的参数数据复制到kernel的buffer中 */
            if (copy_from_user(&data, udata, sizeof(data)))
                return -EFAULT;
            if (data.flags)
                return -EINVAL;
            /* 将共享内存的ID值设置成-1,以便分配好共享内存之后重新赋值 */
            data.id = -1;
            /* 调用tee_shm_all函数,从驱动与secure world之间的共享内存池中分配对应大小的内存,并
            设定对应的ID值 */
            shm = tee_shm_alloc(ctx, data.size, TEE_SHM_MAP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_Hcoco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值