• Home
  • Raw
  • Download

Lines Matching refs:arg

33 static void handle_rpc_func_cmd_get_time(struct optee_msg_arg *arg)  in handle_rpc_func_cmd_get_time()  argument
37 if (arg->num_params != 1) in handle_rpc_func_cmd_get_time()
39 if ((arg->params[0].attr & OPTEE_MSG_ATTR_TYPE_MASK) != in handle_rpc_func_cmd_get_time()
44 arg->params[0].u.value.a = ts.tv_sec; in handle_rpc_func_cmd_get_time()
45 arg->params[0].u.value.b = ts.tv_nsec; in handle_rpc_func_cmd_get_time()
47 arg->ret = TEEC_SUCCESS; in handle_rpc_func_cmd_get_time()
50 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_get_time()
55 struct optee_msg_arg *arg) in handle_rpc_func_cmd_i2c_transfer() argument
69 if (arg->num_params != ARRAY_SIZE(attr)) { in handle_rpc_func_cmd_i2c_transfer()
70 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_i2c_transfer()
74 params = kmalloc_array(arg->num_params, sizeof(struct tee_param), in handle_rpc_func_cmd_i2c_transfer()
77 arg->ret = TEEC_ERROR_OUT_OF_MEMORY; in handle_rpc_func_cmd_i2c_transfer()
81 if (optee_from_msg_param(params, arg->num_params, arg->params)) in handle_rpc_func_cmd_i2c_transfer()
84 for (i = 0; i < arg->num_params; i++) { in handle_rpc_func_cmd_i2c_transfer()
121 arg->ret = TEEC_ERROR_COMMUNICATION; in handle_rpc_func_cmd_i2c_transfer()
124 if (optee_to_msg_param(arg->params, arg->num_params, params)) in handle_rpc_func_cmd_i2c_transfer()
125 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_i2c_transfer()
127 arg->ret = TEEC_SUCCESS; in handle_rpc_func_cmd_i2c_transfer()
135 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_i2c_transfer()
139 struct optee_msg_arg *arg) in handle_rpc_func_cmd_i2c_transfer() argument
141 arg->ret = TEEC_ERROR_NOT_SUPPORTED; in handle_rpc_func_cmd_i2c_transfer()
188 struct optee_msg_arg *arg) in handle_rpc_func_cmd_wq() argument
190 if (arg->num_params != 1) in handle_rpc_func_cmd_wq()
193 if ((arg->params[0].attr & OPTEE_MSG_ATTR_TYPE_MASK) != in handle_rpc_func_cmd_wq()
197 switch (arg->params[0].u.value.a) { in handle_rpc_func_cmd_wq()
199 wq_sleep(&optee->wait_queue, arg->params[0].u.value.b); in handle_rpc_func_cmd_wq()
202 wq_wakeup(&optee->wait_queue, arg->params[0].u.value.b); in handle_rpc_func_cmd_wq()
208 arg->ret = TEEC_SUCCESS; in handle_rpc_func_cmd_wq()
211 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_wq()
214 static void handle_rpc_func_cmd_wait(struct optee_msg_arg *arg) in handle_rpc_func_cmd_wait() argument
218 if (arg->num_params != 1) in handle_rpc_func_cmd_wait()
221 if ((arg->params[0].attr & OPTEE_MSG_ATTR_TYPE_MASK) != in handle_rpc_func_cmd_wait()
225 msec_to_wait = arg->params[0].u.value.a; in handle_rpc_func_cmd_wait()
230 arg->ret = TEEC_SUCCESS; in handle_rpc_func_cmd_wait()
233 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_wait()
237 struct optee_msg_arg *arg) in handle_rpc_supp_cmd() argument
241 arg->ret_origin = TEEC_ORIGIN_COMMS; in handle_rpc_supp_cmd()
243 params = kmalloc_array(arg->num_params, sizeof(struct tee_param), in handle_rpc_supp_cmd()
246 arg->ret = TEEC_ERROR_OUT_OF_MEMORY; in handle_rpc_supp_cmd()
250 if (optee_from_msg_param(params, arg->num_params, arg->params)) { in handle_rpc_supp_cmd()
251 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_supp_cmd()
255 arg->ret = optee_supp_thrd_req(ctx, arg->cmd, arg->num_params, params); in handle_rpc_supp_cmd()
257 if (optee_to_msg_param(arg->params, arg->num_params, params)) in handle_rpc_supp_cmd()
258 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_supp_cmd()
288 struct optee_msg_arg *arg, in handle_rpc_func_cmd_shm_alloc() argument
296 arg->ret_origin = TEEC_ORIGIN_COMMS; in handle_rpc_func_cmd_shm_alloc()
298 if (!arg->num_params || in handle_rpc_func_cmd_shm_alloc()
299 arg->params[0].attr != OPTEE_MSG_ATTR_TYPE_VALUE_INPUT) { in handle_rpc_func_cmd_shm_alloc()
300 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_shm_alloc()
304 for (n = 1; n < arg->num_params; n++) { in handle_rpc_func_cmd_shm_alloc()
305 if (arg->params[n].attr != OPTEE_MSG_ATTR_TYPE_NONE) { in handle_rpc_func_cmd_shm_alloc()
306 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_shm_alloc()
311 sz = arg->params[0].u.value.b; in handle_rpc_func_cmd_shm_alloc()
312 switch (arg->params[0].u.value.a) { in handle_rpc_func_cmd_shm_alloc()
321 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_shm_alloc()
326 arg->ret = TEEC_ERROR_OUT_OF_MEMORY; in handle_rpc_func_cmd_shm_alloc()
331 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_shm_alloc()
344 arg->ret = TEEC_ERROR_OUT_OF_MEMORY; in handle_rpc_func_cmd_shm_alloc()
350 arg->ret = TEEC_ERROR_OUT_OF_MEMORY; in handle_rpc_func_cmd_shm_alloc()
357 arg->params[0].attr = OPTEE_MSG_ATTR_TYPE_TMEM_OUTPUT | in handle_rpc_func_cmd_shm_alloc()
363 arg->params[0].u.tmem.buf_ptr = virt_to_phys(pages_list) | in handle_rpc_func_cmd_shm_alloc()
366 arg->params[0].u.tmem.size = tee_shm_get_size(shm); in handle_rpc_func_cmd_shm_alloc()
367 arg->params[0].u.tmem.shm_ref = (unsigned long)shm; in handle_rpc_func_cmd_shm_alloc()
372 arg->params[0].attr = OPTEE_MSG_ATTR_TYPE_TMEM_OUTPUT; in handle_rpc_func_cmd_shm_alloc()
373 arg->params[0].u.tmem.buf_ptr = pa; in handle_rpc_func_cmd_shm_alloc()
374 arg->params[0].u.tmem.size = sz; in handle_rpc_func_cmd_shm_alloc()
375 arg->params[0].u.tmem.shm_ref = (unsigned long)shm; in handle_rpc_func_cmd_shm_alloc()
378 arg->ret = TEEC_SUCCESS; in handle_rpc_func_cmd_shm_alloc()
410 struct optee_msg_arg *arg) in handle_rpc_func_cmd_shm_free() argument
414 arg->ret_origin = TEEC_ORIGIN_COMMS; in handle_rpc_func_cmd_shm_free()
416 if (arg->num_params != 1 || in handle_rpc_func_cmd_shm_free()
417 arg->params[0].attr != OPTEE_MSG_ATTR_TYPE_VALUE_INPUT) { in handle_rpc_func_cmd_shm_free()
418 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_shm_free()
422 shm = (struct tee_shm *)(unsigned long)arg->params[0].u.value.b; in handle_rpc_func_cmd_shm_free()
423 switch (arg->params[0].u.value.a) { in handle_rpc_func_cmd_shm_free()
431 arg->ret = TEEC_ERROR_BAD_PARAMETERS; in handle_rpc_func_cmd_shm_free()
433 arg->ret = TEEC_SUCCESS; in handle_rpc_func_cmd_shm_free()
455 struct optee_msg_arg *arg; in handle_rpc_func_cmd() local
457 arg = tee_shm_get_va(shm, 0); in handle_rpc_func_cmd()
458 if (IS_ERR(arg)) { in handle_rpc_func_cmd()
463 switch (arg->cmd) { in handle_rpc_func_cmd()
465 handle_rpc_func_cmd_get_time(arg); in handle_rpc_func_cmd()
468 handle_rpc_func_cmd_wq(optee, arg); in handle_rpc_func_cmd()
471 handle_rpc_func_cmd_wait(arg); in handle_rpc_func_cmd()
475 handle_rpc_func_cmd_shm_alloc(ctx, optee, arg, call_ctx); in handle_rpc_func_cmd()
478 handle_rpc_func_cmd_shm_free(ctx, arg); in handle_rpc_func_cmd()
481 handle_rpc_func_cmd_i2c_transfer(ctx, arg); in handle_rpc_func_cmd()
484 handle_rpc_supp_cmd(ctx, arg); in handle_rpc_func_cmd()