Lines Matching refs:arg

15 static void handle_rpc_func_cmd_get_time(struct optee_msg_arg *arg)
19 if (arg->num_params != 1)
21 if ((arg->params[0].attr & OPTEE_MSG_ATTR_TYPE_MASK) !=
26 arg->params[0].u.value.a = ts.tv_sec;
27 arg->params[0].u.value.b = ts.tv_nsec;
29 arg->ret = TEEC_SUCCESS;
32 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
37 struct optee_msg_arg *arg)
52 if (arg->num_params != ARRAY_SIZE(attr)) {
53 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
57 params = kmalloc_array(arg->num_params, sizeof(struct tee_param),
60 arg->ret = TEEC_ERROR_OUT_OF_MEMORY;
64 if (optee->ops->from_msg_param(optee, params, arg->num_params,
65 arg->params))
68 for (i = 0; i < arg->num_params; i++) {
105 arg->ret = TEEC_ERROR_COMMUNICATION;
108 if (optee->ops->to_msg_param(optee, arg->params,
109 arg->num_params, params))
110 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
112 arg->ret = TEEC_SUCCESS;
120 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
124 struct optee_msg_arg *arg)
126 arg->ret = TEEC_ERROR_NOT_SUPPORTED;
131 struct optee_msg_arg *arg)
133 if (arg->num_params != 1)
136 if ((arg->params[0].attr & OPTEE_MSG_ATTR_TYPE_MASK) !=
140 switch (arg->params[0].u.value.a) {
142 if (optee_notif_wait(optee, arg->params[0].u.value.b))
146 if (optee_notif_send(optee, arg->params[0].u.value.b))
153 arg->ret = TEEC_SUCCESS;
156 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
159 static void handle_rpc_func_cmd_wait(struct optee_msg_arg *arg)
163 if (arg->num_params != 1)
166 if ((arg->params[0].attr & OPTEE_MSG_ATTR_TYPE_MASK) !=
170 msec_to_wait = arg->params[0].u.value.a;
175 arg->ret = TEEC_SUCCESS;
178 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
182 struct optee_msg_arg *arg)
186 arg->ret_origin = TEEC_ORIGIN_COMMS;
188 params = kmalloc_array(arg->num_params, sizeof(struct tee_param),
191 arg->ret = TEEC_ERROR_OUT_OF_MEMORY;
195 if (optee->ops->from_msg_param(optee, params, arg->num_params,
196 arg->params)) {
197 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
201 arg->ret = optee_supp_thrd_req(ctx, arg->cmd, arg->num_params, params);
203 if (optee->ops->to_msg_param(optee, arg->params, arg->num_params,
205 arg->ret = TEEC_ERROR_BAD_PARAMETERS;
259 struct optee_msg_arg *arg)
261 switch (arg->cmd) {
263 handle_rpc_func_cmd_get_time(arg);
266 handle_rpc_func_cmd_wq(optee, arg);
269 handle_rpc_func_cmd_wait(arg);
272 handle_rpc_func_cmd_i2c_transfer(ctx, arg);
275 handle_rpc_supp_cmd(ctx, optee, arg);