Lines Matching refs:u

25 int qcomtee_next_arg_type(struct qcomtee_arg *u, int i,  in qcomtee_next_arg_type()  argument
28 while (u[i].type != QCOMTEE_ARG_TYPE_INV && u[i].type != type) in qcomtee_next_arg_type()
397 struct qcomtee_arg *u) in qcomtee_prepare_msg() argument
409 qcomtee_args_len(u)); in qcomtee_prepare_msg()
416 qcomtee_arg_for_each_input_buffer(i, u) { in qcomtee_prepare_msg()
420 msg->args[ib].b.size = u[i].b.size; in qcomtee_prepare_msg()
424 if (!(u[i].flags & QCOMTEE_ARG_FLAGS_UADDR)) in qcomtee_prepare_msg()
425 memcpy(msgptr, u[i].b.addr, u[i].b.size); in qcomtee_prepare_msg()
426 else if (copy_from_user(msgptr, u[i].b.uaddr, u[i].b.size)) in qcomtee_prepare_msg()
429 offset += qcomtee_msg_offset_align(u[i].b.size); in qcomtee_prepare_msg()
434 qcomtee_arg_for_each_output_buffer(i, u) { in qcomtee_prepare_msg()
437 msg->args[ob].b.size = u[i].b.size; in qcomtee_prepare_msg()
439 offset += qcomtee_msg_offset_align(u[i].b.size); in qcomtee_prepare_msg()
444 qcomtee_arg_for_each_input_object(i, u) { in qcomtee_prepare_msg()
445 if (qcomtee_object_id_get(oic, u[i].o, &msg->args[io].o)) { in qcomtee_prepare_msg()
457 qcomtee_arg_for_each_output_object(i, u) in qcomtee_prepare_msg()
480 static int qcomtee_update_args(struct qcomtee_arg *u, in qcomtee_update_args() argument
491 qcomtee_arg_for_each_input_buffer(i, u) in qcomtee_update_args()
495 qcomtee_arg_for_each_output_buffer(i, u) { in qcomtee_update_args()
498 u[i].b.size = msg->args[ob].b.size; in qcomtee_update_args()
502 if (!(u[i].flags & QCOMTEE_ARG_FLAGS_UADDR)) in qcomtee_update_args()
503 memcpy(u[i].b.addr, msgptr, u[i].b.size); in qcomtee_update_args()
504 else if (copy_to_user(u[i].b.uaddr, msgptr, u[i].b.size)) in qcomtee_update_args()
511 qcomtee_arg_for_each_input_object(i, u) in qcomtee_update_args()
515 qcomtee_arg_for_each_output_object(i, u) { in qcomtee_update_args()
516 if (qcomtee_object_qtee_init(oic, &u[i].o, msg->args[oo].o)) in qcomtee_update_args()
547 oic->u[i].b.addr = in qcomtee_prepare_args()
549 oic->u[i].b.size = msg->args[i].b.size; in qcomtee_prepare_args()
550 oic->u[i].type = QCOMTEE_ARG_TYPE_IB; in qcomtee_prepare_args()
554 oic->u[i].b.addr = in qcomtee_prepare_args()
556 oic->u[i].b.size = msg->args[i].b.size; in qcomtee_prepare_args()
557 oic->u[i].type = QCOMTEE_ARG_TYPE_OB; in qcomtee_prepare_args()
561 if (qcomtee_object_qtee_init(oic, &oic->u[i].o, msg->args[i].o)) in qcomtee_prepare_args()
564 oic->u[i].type = QCOMTEE_ARG_TYPE_IO; in qcomtee_prepare_args()
568 oic->u[i].type = QCOMTEE_ARG_TYPE_OO; in qcomtee_prepare_args()
571 oic->u[i].type = QCOMTEE_ARG_TYPE_INV; in qcomtee_prepare_args()
585 qcomtee_arg_for_each_input_buffer(i, oic->u) in qcomtee_update_msg()
589 qcomtee_arg_for_each_output_buffer(i, oic->u) { in qcomtee_update_msg()
591 if (msg->args[ob].b.size < oic->u[i].b.size) in qcomtee_update_msg()
594 msg->args[ob].b.size = oic->u[i].b.size; in qcomtee_update_msg()
599 qcomtee_arg_for_each_input_object(i, oic->u) in qcomtee_update_msg()
603 qcomtee_arg_for_each_output_object(i, oic->u) { in qcomtee_update_msg()
604 if (qcomtee_object_id_get(oic, oic->u[i].o, &msg->args[oo].o)) { in qcomtee_update_msg()
662 qcomtee_arg_for_each_input_buffer(i, oic->u) in qcomtee_cb_object_invoke()
663 qcomtee_object_put(oic->u[i].o); in qcomtee_cb_object_invoke()
668 errno = object->ops->dispatch(oic, object, op, oic->u); in qcomtee_cb_object_invoke()
717 static void qcomtee_qtee_objects_put(struct qcomtee_arg *u) in qcomtee_qtee_objects_put() argument
721 qcomtee_arg_for_each_input_object(i, u) { in qcomtee_qtee_objects_put()
722 if (typeof_qcomtee_object(u[i].o) == QCOMTEE_OBJECT_TYPE_CB) in qcomtee_qtee_objects_put()
723 qcomtee_object_put(u[i].o); in qcomtee_qtee_objects_put()
743 struct qcomtee_arg *u, int *result) in qcomtee_object_do_invoke_internal() argument
751 ret = qcomtee_msg_buffers_alloc(oic, u); in qcomtee_object_do_invoke_internal()
753 qcomtee_qtee_objects_put(u); in qcomtee_object_do_invoke_internal()
758 ret = qcomtee_prepare_msg(oic, object, op, u); in qcomtee_object_do_invoke_internal()
760 qcomtee_qtee_objects_put(u); in qcomtee_object_do_invoke_internal()
804 qcomtee_qtee_objects_put(u); in qcomtee_object_do_invoke_internal()
826 if (!*result && qcomtee_update_args(u, oic)) { in qcomtee_object_do_invoke_internal()
828 qcomtee_arg_for_each_output_object(i, u) in qcomtee_object_do_invoke_internal()
829 qcomtee_object_put(u[i].o); in qcomtee_object_do_invoke_internal()
850 struct qcomtee_arg *u, int *result) in qcomtee_object_do_invoke() argument
866 return qcomtee_object_do_invoke_internal(oic, object, op, u, result); in qcomtee_object_do_invoke()
882 struct qcomtee_arg u[3] = { 0 }; in qcomtee_object_get_client_env() local
885 u[0].o = NULL_QCOMTEE_OBJECT; in qcomtee_object_get_client_env()
886 u[0].type = QCOMTEE_ARG_TYPE_IO; in qcomtee_object_get_client_env()
887 u[1].type = QCOMTEE_ARG_TYPE_OO; in qcomtee_object_get_client_env()
889 QCOMTEE_ROOT_OP_REG_WITH_CREDENTIALS, u, in qcomtee_object_get_client_env()
894 return u[1].o; in qcomtee_object_get_client_env()
901 struct qcomtee_arg u[3] = { 0 }; in qcomtee_object_get_service() local
904 u[0].b.addr = &uid; in qcomtee_object_get_service()
905 u[0].b.size = sizeof(uid); in qcomtee_object_get_service()
906 u[0].type = QCOMTEE_ARG_TYPE_IB; in qcomtee_object_get_service()
907 u[1].type = QCOMTEE_ARG_TYPE_OO; in qcomtee_object_get_service()
909 u, &result); in qcomtee_object_get_service()
914 return u[1].o; in qcomtee_object_get_service()