Home
last modified time | relevance | path

Searched full:shm (Results 1 – 25 of 140) sorted by relevance

123456

/linux/drivers/tee/
H A Dtee_shm.c21 struct tee_shm shm; member
42 static void release_registered_pages(struct tee_shm *shm) in release_registered_pages() argument
44 if (shm->pages) { in release_registered_pages()
45 if (shm->flags & TEE_SHM_USER_MAPPED) in release_registered_pages()
46 unpin_user_pages(shm->pages, shm->num_pages); in release_registered_pages()
48 shm_put_kernel_pages(shm->pages, shm->num_pages); in release_registered_pages()
50 kfree(shm->pages); in release_registered_pages()
54 static void tee_shm_release(struct tee_device *teedev, struct tee_shm *shm) in tee_shm_release() argument
56 void *p = shm; in tee_shm_release()
58 if (shm->flags & TEE_SHM_DMA_MEM) { in tee_shm_release()
[all …]
H A Dtee_shm_pool.c12 static int pool_op_gen_alloc(struct tee_shm_pool *pool, struct tee_shm *shm, in pool_op_gen_alloc() argument
26 shm->kaddr = (void *)va; in pool_op_gen_alloc()
27 shm->paddr = gen_pool_virt_to_phys(genpool, va); in pool_op_gen_alloc()
28 shm->size = s; in pool_op_gen_alloc()
33 shm->flags &= ~TEE_SHM_DYNAMIC; in pool_op_gen_alloc()
37 static void pool_op_gen_free(struct tee_shm_pool *pool, struct tee_shm *shm) in pool_op_gen_free() argument
39 gen_pool_free(pool->private_data, (unsigned long)shm->kaddr, in pool_op_gen_free()
40 shm->size); in pool_op_gen_free()
41 shm->kaddr = NULL; in pool_op_gen_free()
H A Dtee_core.c260 struct tee_shm *shm; in tee_ioctl_shm_alloc() local
269 shm = tee_shm_alloc_user_buf(ctx, data.size); in tee_ioctl_shm_alloc()
270 if (IS_ERR(shm)) in tee_ioctl_shm_alloc()
271 return PTR_ERR(shm); in tee_ioctl_shm_alloc()
273 data.id = shm->id; in tee_ioctl_shm_alloc()
274 data.size = shm->size; in tee_ioctl_shm_alloc()
279 ret = tee_shm_get_fd(shm); in tee_ioctl_shm_alloc()
286 tee_shm_put(shm); in tee_ioctl_shm_alloc()
296 struct tee_shm *shm; in tee_ioctl_shm_register() local
305 shm = tee_shm_register_user_buf(ctx, data.addr, data.length); in tee_ioctl_shm_register()
[all …]
H A Dtee_heap.c342 struct tee_shm *shm, in tee_heap_update_from_dma_buf() argument
357 shm->size = buf->size; in tee_heap_update_from_dma_buf()
360 buf->offs, shm, parent_shm); in tee_heap_update_from_dma_buf()
384 struct tee_shm *shm __always_unused, in tee_heap_update_from_dma_buf()
435 struct tee_shm *shm, in protmem_pool_op_static_update_shm() argument
440 shm->paddr = stp->pa_base + offs; in protmem_pool_op_static_update_shm()
/linux/drivers/tee/qcomtee/
H A Dshm.c44 struct tee_shm *shm; in qcomtee_msg_buffers_alloc() local
68 shm = tee_shm_alloc_priv_buf(ctx, size); in qcomtee_msg_buffers_alloc()
69 if (IS_ERR(shm)) in qcomtee_msg_buffers_alloc()
70 return PTR_ERR(shm); in qcomtee_msg_buffers_alloc()
73 oic->in_shm = shm; in qcomtee_msg_buffers_alloc()
74 shm = tee_shm_alloc_priv_buf(ctx, MAX_OUTBOUND_BUFFER_SIZE); in qcomtee_msg_buffers_alloc()
75 if (IS_ERR(shm)) { in qcomtee_msg_buffers_alloc()
78 return PTR_ERR(shm); in qcomtee_msg_buffers_alloc()
81 oic->out_shm = shm; in qcomtee_msg_buffers_alloc()
102 static int qcomtee_shm_register(struct tee_context *ctx, struct tee_shm *shm, in qcomtee_shm_register() argument
[all …]
H A Dmem_obj.c37 struct tee_shm *shm; member
68 tee_shm_put(mem_object->shm); in qcomtee_mem_object_release()
91 struct tee_shm *shm; in qcomtee_memobj_param_to_object() local
98 shm = tee_shm_get_from_id(ctx, param->u.objref.id); in qcomtee_memobj_param_to_object()
99 if (IS_ERR(shm)) in qcomtee_memobj_param_to_object()
100 return PTR_ERR(shm); in qcomtee_memobj_param_to_object()
105 &qcomtee_mem_object_ops, "tee-shm-%d", in qcomtee_memobj_param_to_object()
106 shm->id); in qcomtee_memobj_param_to_object()
108 tee_shm_put(shm); in qcomtee_memobj_param_to_object()
113 mem_object->paddr = shm->paddr; in qcomtee_memobj_param_to_object()
[all …]
/linux/drivers/tee/amdtee/
H A Dshm_pool.c11 static int pool_op_alloc(struct tee_shm_pool *pool, struct tee_shm *shm, in pool_op_alloc() argument
26 shm->kaddr = (void *)va; in pool_op_alloc()
27 shm->paddr = __psp_pa((void *)va); in pool_op_alloc()
28 shm->size = PAGE_SIZE << order; in pool_op_alloc()
31 rc = amdtee_map_shmem(shm); in pool_op_alloc()
34 shm->kaddr = NULL; in pool_op_alloc()
41 static void pool_op_free(struct tee_shm_pool *pool, struct tee_shm *shm) in pool_op_free() argument
44 amdtee_unmap_shmem(shm); in pool_op_free()
45 free_pages((unsigned long)shm->kaddr, get_order(shm->size)); in pool_op_free()
46 shm->kaddr = NULL; in pool_op_free()
H A Dcore.c155 u32 get_buffer_id(struct tee_shm *shm) in get_buffer_id() argument
157 struct amdtee_context_data *ctxdata = shm->ctx->data; in get_buffer_id()
163 if (shmdata->kaddr == shm->kaddr) { in get_buffer_id()
343 int amdtee_map_shmem(struct tee_shm *shm) in amdtee_map_shmem() argument
351 if (!shm) in amdtee_map_shmem()
359 shmem.kaddr = shm->kaddr; in amdtee_map_shmem()
360 shmem.size = shm->size; in amdtee_map_shmem()
373 shmnode->kaddr = shm->kaddr; in amdtee_map_shmem()
375 ctxdata = shm->ctx->data; in amdtee_map_shmem()
385 void amdtee_unmap_shmem(struct tee_shm *shm) in amdtee_unmap_shmem() argument
[all …]
/linux/drivers/tee/optee/
H A Dsmc_abi.c50 * A typical OP-TEE private shm allocation is 224 bytes (argument struct
86 struct tee_shm *shm; in from_msg_param_tmp_mem() local
93 shm = (struct tee_shm *)(unsigned long)mp->u.tmem.shm_ref; in from_msg_param_tmp_mem()
94 if (!shm) { in from_msg_param_tmp_mem()
96 p->u.memref.shm = NULL; in from_msg_param_tmp_mem()
100 rc = tee_shm_get_pa(shm, 0, &pa); in from_msg_param_tmp_mem()
105 p->u.memref.shm = shm; in from_msg_param_tmp_mem()
113 struct tee_shm *shm; in from_msg_param_reg_mem() local
118 shm = (struct tee_shm *)(unsigned long)mp->u.rmem.shm_ref; in from_msg_param_reg_mem()
120 if (shm) { in from_msg_param_reg_mem()
[all …]
H A Dffa_abi.c42 struct tee_shm *shm; member
62 struct tee_shm *shm = NULL; in optee_shm_from_ffa_handle() local
69 shm = r->shm; in optee_shm_from_ffa_handle()
72 return shm; in optee_shm_from_ffa_handle()
75 static int optee_shm_add_ffa_handle(struct optee *optee, struct tee_shm *shm, in optee_shm_add_ffa_handle() argument
84 r->shm = shm; in optee_shm_add_ffa_handle()
127 struct tee_shm *shm = NULL; in from_msg_param_ffa_mem() local
136 shm = optee_shm_from_ffa_handle(optee, mp->u.fmem.global_id); in from_msg_param_ffa_mem()
137 p->u.memref.shm = shm; in from_msg_param_ffa_mem()
139 if (shm) { in from_msg_param_ffa_mem()
[all …]
H A Dcall.c38 struct tee_shm *shm; member
238 tee_shm_free(entry->shm); in optee_shm_arg_cache_uninit()
311 entry->shm = res; in optee_get_msg_arg()
317 res = tee_shm_get_va(entry->shm, offs); in optee_get_msg_arg()
325 *shm_ret = entry->shm; in optee_get_msg_arg()
369 struct tee_shm *shm; in optee_open_session() local
378 &entry, &shm, &offs); in optee_open_session()
413 if (optee->ops->do_call_with_arg(ctx, shm, offs, in optee_open_session()
473 struct tee_shm *shm; in optee_close_session_helper() local
476 msg_arg = optee_get_msg_arg(ctx, 0, &entry, &shm, &offs); in optee_close_session_helper()
[all …]
H A Drpc.c88 msg.buf = params[2].u.memref.shm->kaddr; in handle_rpc_func_cmd_i2c_transfer()
220 struct tee_shm *shm; in optee_rpc_cmd_alloc_suppl() local
233 shm = tee_shm_get_from_id(optee->supp.ctx, param.u.value.c); in optee_rpc_cmd_alloc_suppl()
235 return shm; in optee_rpc_cmd_alloc_suppl()
238 void optee_rpc_cmd_free_suppl(struct tee_context *ctx, struct tee_shm *shm) in optee_rpc_cmd_free_suppl() argument
244 param.u.value.b = tee_shm_get_id(shm); in optee_rpc_cmd_free_suppl()
258 tee_shm_put(shm); in optee_rpc_cmd_free_suppl()
331 buf = tee_shm_get_va(params[1].u.memref.shm, in handle_rpc_func_rpmb_probe_next()
392 p0 = tee_shm_get_va(params[0].u.memref.shm, in handle_rpc_func_rpmb_frames()
394 p1 = tee_shm_get_va(params[1].u.memref.shm, in handle_rpc_func_rpmb_frames()
H A Dprotmem.c182 struct tee_shm *shm, in protmem_pool_op_dyn_update_shm() argument
223 struct tee_shm *shm; in get_protmem_config() local
233 params[1].u.memref.shm = shm_param; in get_protmem_config()
237 &shm, &offs); in get_protmem_config()
249 rc = optee->ops->do_call_with_arg(optee->ctx, shm, offs, false); in get_protmem_config()
/linux/drivers/tee/tstee/
H A Dcore.c167 struct tee_shm *shm = NULL; in tstee_invoke_func() local
194 shm = tee_shm_get_from_id(ctx, shm_id); in tstee_invoke_func()
195 if (IS_ERR(shm)) in tstee_invoke_func()
196 return PTR_ERR(shm); in tstee_invoke_func()
198 if (shm->size < req_len) { in tstee_invoke_func()
205 handle = shm->sec_world_id; in tstee_invoke_func()
232 if (shm && shm->size >= ffa_args[TS_RPC_SERVICE_RESP_LEN]) in tstee_invoke_func()
236 if (shm) in tstee_invoke_func()
237 tee_shm_put(shm); in tstee_invoke_func()
242 static int tstee_shm_register(struct tee_context *ctx, struct tee_shm *shm, in tstee_shm_register() argument
[all …]
/linux/drivers/media/platform/samsung/s5p-mfc/
H A Ds5p_mfc_opr_v5.c224 ctx->shm.size = buf_size->shm; in s5p_mfc_alloc_instance_buffer_v5()
225 ret = s5p_mfc_alloc_priv_buf(dev, BANK_L_CTX, &ctx->shm); in s5p_mfc_alloc_instance_buffer_v5()
233 ctx->shm.ofs = ctx->shm.dma - dev->dma_base[BANK_L_CTX]; in s5p_mfc_alloc_instance_buffer_v5()
234 BUG_ON(ctx->shm.ofs & ((1 << MFC_BANK1_ALIGN_ORDER) - 1)); in s5p_mfc_alloc_instance_buffer_v5()
236 memset(ctx->shm.virt, 0, buf_size->shm); in s5p_mfc_alloc_instance_buffer_v5()
245 s5p_mfc_release_priv_buf(ctx->dev, &ctx->shm); in s5p_mfc_release_instance_buffer_v5()
263 *(u32 *)(ctx->shm.virt + ofs) = data; in s5p_mfc_write_info_v5()
271 return *(u32 *)(ctx->shm.virt + ofs); in s5p_mfc_read_info_v5()
358 mfc_write(dev, ctx->shm.ofs, S5P_FIMV_SI_CH0_HOST_WR_ADR); in s5p_mfc_set_shared_buffer()
681 unsigned int shm; in s5p_mfc_set_enc_params() local
[all …]
/linux/drivers/nvmem/
H A Dstm32-bsec-optee-ta.c142 struct tee_shm *shm; in stm32_bsec_optee_ta_read() local
168 shm = tee_shm_alloc_kernel_buf(ctx, num_bytes); in stm32_bsec_optee_ta_read()
169 if (IS_ERR(shm)) { in stm32_bsec_optee_ta_read()
170 ret = PTR_ERR(shm); in stm32_bsec_optee_ta_read()
175 param[1].u.memref.shm = shm; in stm32_bsec_optee_ta_read()
186 shm_buf = tee_shm_get_va(shm, 0); in stm32_bsec_optee_ta_read()
196 tee_shm_free(shm); in stm32_bsec_optee_ta_read()
207 { struct tee_shm *shm; in stm32_bsec_optee_ta_write() local
233 shm = tee_shm_alloc_kernel_buf(ctx, bytes); in stm32_bsec_optee_ta_write()
234 if (IS_ERR(shm)) { in stm32_bsec_optee_ta_write()
[all …]
/linux/drivers/rtc/
H A Drtc-optee.c136 * @shm: Memory pool shared with RTC device.
146 struct tee_shm *shm; member
166 param[0].u.memref.shm = priv->shm; in optee_rtc_readtime()
173 optee_tm = tee_shm_get_va(priv->shm, 0); in optee_rtc_readtime()
205 param[0].u.memref.shm = priv->shm; in optee_rtc_settime()
208 optee_tm = tee_shm_get_va(priv->shm, 0); in optee_rtc_settime()
293 param[0].u.memref.shm = priv->shm; in optee_rtc_read_alarm()
300 optee_alarm = tee_shm_get_va(priv->shm, 0); in optee_rtc_read_alarm()
339 param[0].u.memref.shm = priv->shm; in optee_rtc_set_alarm()
342 optee_alarm = tee_shm_get_va(priv->shm, 0); in optee_rtc_set_alarm()
[all …]
/linux/tools/testing/selftests/futex/functional/
H A Dfutex_wait.c9 #include <sys/shm.h>
108 void *shm; in TEST() local
118 shm = mmap(NULL, sizeof(f_private), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); in TEST()
119 if (shm == MAP_FAILED) in TEST()
122 memcpy(shm, &f_private, sizeof(f_private)); in TEST()
124 futex = shm; in TEST()
133 res = futex_wake(shm, 1, 0); in TEST()
141 munmap(shm, sizeof(f_private)); in TEST()
/linux/Documentation/devicetree/bindings/spi/
H A Dnuvoton,wpcm450-fiu.yaml35 nuvoton,shm:
37 description: a phandle to the SHM block (see ../arm/nuvoton,shm.yaml)
55 nuvoton,shm = <&shm>;
/linux/drivers/firmware/qcom/
H A Dqcom_tzmem.c78 /* List of machines that are known to not support SHM bridge correctly. */
109 dev_info(qcom_tzmem_dev, "SHM Bridge not supported\n"); in qcom_tzmem_init()
114 * qcom_tzmem_shm_bridge_create() - Create a SHM bridge.
117 * @handle: Handle to the SHM bridge.
119 * On platforms that support SHM bridge, this function creates a SHM bridge
121 * must be passed to qcom_tzmem_shm_bridge_delete() to free the SHM bridge.
142 "SHM Bridge failed: ret %d paddr 0x%pa, size %zu\n", in qcom_tzmem_shm_bridge_create()
153 * qcom_tzmem_shm_bridge_delete() - Delete a SHM bridge.
154 * @handle: Handle to the SHM bridge.
156 * On platforms that support SHM bridge, this function deletes the SHM bridge
/linux/security/keys/trusted-keys/
H A Dtrusted_tee.c76 dev_err(pvt_data.dev, "shm register failed\n"); in trusted_tee_seal()
85 param[0].u.memref.shm = reg_shm; in trusted_tee_seal()
89 param[1].u.memref.shm = reg_shm; in trusted_tee_seal()
123 dev_err(pvt_data.dev, "shm register failed\n"); in trusted_tee_unseal()
132 param[0].u.memref.shm = reg_shm; in trusted_tee_unseal()
136 param[1].u.memref.shm = reg_shm; in trusted_tee_unseal()
169 dev_err(pvt_data.dev, "key shm register failed\n"); in trusted_tee_get_random()
178 param[0].u.memref.shm = reg_shm; in trusted_tee_get_random()
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/
H A Dgsp.c188 args->messageQueueInitArguments.sharedMemPhysAddr = gsp->shm.mem.addr; in r570_gsp_set_rmargs()
189 args->messageQueueInitArguments.pageTableEntryCount = gsp->shm.ptes.nr; in r570_gsp_set_rmargs()
191 (u8 *)gsp->shm.cmdq.ptr - (u8 *)gsp->shm.mem.data; in r570_gsp_set_rmargs()
193 (u8 *)gsp->shm.msgq.ptr - (u8 *)gsp->shm.mem.data; in r570_gsp_set_rmargs()
/linux/ipc/
H A Dshm.c3 * linux/ipc/shm.c
7 * Fixed the shm swap deallocation (shm_unuse()), August 1998 Andrea Arcangeli.
9 * /proc/sysvipc/shm support (c) 1999 Dragos Acostachioaie <dragos@iname.com>
11 * SMP thread shm, Jean-Luc Boyard <jean-luc.boyard@siemens.fr>
31 #include <linux/shm.h>
32 #include <uapi/linux/shm.h>
68 * The task created the shm object, for
160 ipc_init_proc_interface("sysvipc/shm", in shm_init()
303 /* This is called by fork, once for every shm attach. */
349 * shm_may_destroy - identifies whether shm segment should be destroyed now
[all …]
/linux/include/uapi/linux/
H A Dshm.h21 #define SHMALL (ULONG_MAX - (1UL << 24)) /* max shm system wide (pages) */
100 __kernel_ulong_t shm_tot; /* total allocated shm */
101 __kernel_ulong_t shm_rss; /* total resident shm */
102 __kernel_ulong_t shm_swp; /* total swapped shm */
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/
H A Dgsp.c1142 gsp->shm.cmdq.size = 0x40000; in r535_gsp_shared_init()
1143 gsp->shm.msgq.size = 0x40000; in r535_gsp_shared_init()
1145 gsp->shm.ptes.nr = (gsp->shm.cmdq.size + gsp->shm.msgq.size) >> GSP_PAGE_SHIFT; in r535_gsp_shared_init()
1146 gsp->shm.ptes.nr += DIV_ROUND_UP(gsp->shm.ptes.nr * sizeof(u64), GSP_PAGE_SIZE); in r535_gsp_shared_init()
1147 gsp->shm.ptes.size = ALIGN(gsp->shm.ptes.nr * sizeof(u64), GSP_PAGE_SIZE); in r535_gsp_shared_init()
1149 ret = nvkm_gsp_mem_ctor(gsp, gsp->shm.ptes.size + in r535_gsp_shared_init()
1150 gsp->shm.cmdq.size + in r535_gsp_shared_init()
1151 gsp->shm.msgq.size, in r535_gsp_shared_init()
1152 &gsp->shm.mem); in r535_gsp_shared_init()
1156 gsp->shm.ptes.ptr = gsp->shm.mem.data; in r535_gsp_shared_init()
[all …]

123456