memref
rng_size = param[0].u.memref.size;
param[0].u.memref.shm = pvt_data->entropy_shm_pool;
param[0].u.memref.size = req_size;
param[0].u.memref.shm_offs = 0;
temp_buf = tee_shm_get_va(shm, command_params[1].u.memref.shm_offs);
.u.memref = {
.u.memref = {
param[1].u.memref.shm = channel->tee_shm;
param[1].u.memref.size = msg_size;
param[2].u.memref.shm = channel->tee_shm;
param[2].u.memref.size = SCMI_SHMEM_MAX_PAYLOAD_SIZE;
channel->rx_len = param[2].u.memref.size;
nbytes = min_t(u32, rbytes, param[0].u.memref.size);
param[0].u.memref.shm = pvt_data.fw_shm_pool;
param[0].u.memref.size = MAX_SHM_MEM_SZ;
param[0].u.memref.shm_offs = 0;
param[0].u.memref.size = buf_size;
param[0].u.memref.shm = shm;
param[1].u.memref.shm = shm;
param[1].u.memref.size = num_bytes;
param[1].u.memref.shm = shm;
param[1].u.memref.size = bytes;
param[1].u.memref.size = nb_lock * 4;
param[0].u.memref.size = sizeof(struct ta_pmf_shared_memory);
param[0].u.memref.shm = dev->fw_shm_pool;
param[0].u.memref.shm_offs = 0;
param[0].u.memref.shm = priv->shm;
param[0].u.memref.size = sizeof(struct optee_rtc_time);
if (param[0].u.memref.size != sizeof(*optee_tm))
param[0].u.memref.shm = priv->shm;
param[0].u.memref.size = sizeof(struct optee_rtc_time);
param[0].u.memref.shm = priv->shm;
param[0].u.memref.size = sizeof(struct optee_rtc_alarm);
if (param[0].u.memref.size != sizeof(*optee_alarm))
param[0].u.memref.shm = priv->shm;
param[0].u.memref.size = sizeof(struct optee_rtc_alarm);
param[0].u.memref.shm = priv->shm;
param[0].u.memref.size = sizeof(*info);
if (param[0].u.memref.size != sizeof(*info))
struct memref mref;
tee[i].u.memref.shm_offs = amd->params[i].mref.offset;
tee[i].u.memref.size = amd->params[i].mref.size;
u32 buf_id = (u32)tee[i].u.memref.shm->sec_world_id;
amd->params[i].mref.offset = tee[i].u.memref.shm_offs;
amd->params[i].mref.size = tee[i].u.memref.size;
param[0].u.memref.shm = device_shm;
param[0].u.memref.size = *shm_size;
param[0].u.memref.shm_offs = 0;
*shm_size = param[0].u.memref.size;
p->u.memref.size = mp->u.fmem.size;
p->u.memref.shm = shm;
p->u.memref.shm_offs = offs_low | offs_high << 32;
struct tee_shm *shm = p->u.memref.shm;
u64 shm_offs = p->u.memref.shm_offs;
mp->u.fmem.size = p->u.memref.size;
params[1].u.memref.size = *ma_count * sizeof(*mem_attrs);
params[1].u.memref.size);
params[1].u.memref.shm = shm_param;
*ma_count < params[1].u.memref.size / sizeof(*mem_attrs)) {
*ma_count = params[1].u.memref.size / sizeof(*mem_attrs);
params[1].u.memref.size);
buf = tee_shm_get_va(params[1].u.memref.shm,
params[1].u.memref.shm_offs);
if (params[1].u.memref.size < rdev->descr.dev_id_len) {
params[1].u.memref.size = rdev->descr.dev_id_len;
p0 = tee_shm_get_va(params[0].u.memref.shm,
params[0].u.memref.shm_offs);
p1 = tee_shm_get_va(params[1].u.memref.shm,
params[1].u.memref.shm_offs);
if (rpmb_route_frames(rdev, p0, params[0].u.memref.size, p1,
params[1].u.memref.size)) {
msg.buf = params[2].u.memref.shm->kaddr;
msg.len = params[2].u.memref.size;
p->u.memref.shm_offs = mp->u.tmem.buf_ptr - pa;
p->u.memref.shm = shm;
p->u.memref.size = mp->u.rmem.size;
p->u.memref.shm_offs = mp->u.rmem.offs;
p->u.memref.shm = shm;
p->u.memref.shm_offs = 0;
p->u.memref.shm = NULL;
mp->u.tmem.shm_ref = (unsigned long)p->u.memref.shm;
mp->u.tmem.size = p->u.memref.size;
if (!p->u.memref.shm) {
rc = tee_shm_get_pa(p->u.memref.shm, p->u.memref.shm_offs, &pa);
mp->u.rmem.shm_ref = (unsigned long)p->u.memref.shm;
mp->u.rmem.size = p->u.memref.size;
mp->u.rmem.offs = p->u.memref.shm_offs;
if (tee_shm_is_dynamic(p->u.memref.shm))
p->u.memref.size = mp->u.tmem.size;
p->u.memref.shm_offs = 0;
p->u.memref.shm = NULL;
if (tee_param_is_memref(params + n) && params[n].u.memref.shm)
tee_shm_put(params[n].u.memref.shm);
p->u.memref.size = param[n + num_meta].u.memref.size;
struct tee_param_memref *memref,
memref->shm_offs = ip->a + offs;
memref->size = ip->b;
memref->shm = shm;
rc = param_from_user_memref(ctx, ¶ms[n].u.memref,
if (put_user((u64)p->u.memref.size, &up->b))
if (tee_param_is_memref(params + n) && params[n].u.memref.shm)
tee_shm_put(params[n].u.memref.shm);
ip.b = p->u.memref.size;
if (!p->u.memref.shm) {
ip.a = p->u.memref.shm_offs;
ip.c = p->u.memref.shm->id;
p->u.memref.shm = NULL;
p->u.memref.shm_offs = 0;
p->u.memref.size = ip.b;
struct tee_param_memref memref;
param[0].u.memref.shm = reg_shm;
param[0].u.memref.size = p->blob_len;
param[0].u.memref.shm_offs = sizeof(p->key);
param[1].u.memref.shm = reg_shm;
param[1].u.memref.size = sizeof(p->key);
param[1].u.memref.shm_offs = 0;
p->key_len = param[1].u.memref.size;
param[0].u.memref.shm = reg_shm;
param[0].u.memref.size = key_len;
param[0].u.memref.shm_offs = 0;
ret = param[0].u.memref.size;
param[0].u.memref.shm = reg_shm;
param[0].u.memref.size = p->key_len;
param[0].u.memref.shm_offs = 0;
param[1].u.memref.shm = reg_shm;
param[1].u.memref.size = sizeof(p->blob);
param[1].u.memref.shm_offs = sizeof(p->key);
p->blob_len = param[1].u.memref.size;