Lines Matching full:object

19  * qcomtee_object provides object refcounting, ID allocation for objects hosted
22 * To invoke an object in QTEE, the user calls qcomtee_object_do_invoke()
26 * After boot, QTEE provides a static object %ROOT_QCOMTEE_OBJECT (type of
27 * %QCOMTEE_OBJECT_TYPE_ROOT). The root object is invoked to pass the user's
39 * QTEE (this is called a callback object). It issues qcomtee_object_user_init()
40 * to set the dispatch() operation for the callback object and set its type
43 * core.c holds an object table for callback objects. An object ID is assigned
44 * to each callback object, which is an index to the object table. QTEE uses
47 * If QTEE invokes a callback object in the kernel, the dispatch() operation is
53 * enum qcomtee_object_type - Object types.
54 * @QCOMTEE_OBJECT_TYPE_TEE: object hosted on QTEE.
55 * @QCOMTEE_OBJECT_TYPE_CB: object hosted on kernel.
56 * @QCOMTEE_OBJECT_TYPE_ROOT: 'primordial' object.
57 * @QCOMTEE_OBJECT_TYPE_NULL: NULL object.
59 * The primordial object is used for bootstrapping the IPC connection between
74 * @QCOMTEE_ARG_TYPE_OO: output object (OO).
76 * @QCOMTEE_ARG_TYPE_IO: input object (IO).
109 * struct qcomtee_arg - Argument for QTEE object invocation.
113 * @o: object instance if the type of argument is an object.
140 /* Context needs to notify the current object. */
146 * struct qcomtee_object_invoke_ctx - QTEE context for object invocation.
150 * @object: current object invoked in this callback context.
163 struct qcomtee_object *object; member
186 * qcomtee_object_do_invoke() - Submit an invocation for an object.
188 * @object: object being invoked.
189 * @op: requested operation on the object.
193 * The caller is responsible for keeping track of the refcount for each object,
194 * including @object. On return, the caller loses ownership of all input
197 * @object can be of %QCOMTEE_OBJECT_TYPE_ROOT or %QCOMTEE_OBJECT_TYPE_TEE.
202 struct qcomtee_object *object, u32 op,
206 * struct qcomtee_object_operations - Callback object operations.
207 * @release: release the object if QTEE is not using it.
212 void (*release)(struct qcomtee_object *object);
214 struct qcomtee_object *object, u32 op,
217 struct qcomtee_object *object, int err);
221 * struct qcomtee_object - QTEE or kernel object.
222 * @name: object name.
224 * @object_type: object type as &enum qcomtee_object_type.
225 * @info: extra information for the object.
227 * @work: work for async operations on the object.
238 /* TEE context for QTEE object async requests. */
252 typeof_qcomtee_object(struct qcomtee_object *object) in typeof_qcomtee_object() argument
254 if (object == NULL_QCOMTEE_OBJECT) in typeof_qcomtee_object()
256 return object->object_type; in typeof_qcomtee_object()
259 static inline const char *qcomtee_object_name(struct qcomtee_object *object) in qcomtee_object_name() argument
261 if (object == NULL_QCOMTEE_OBJECT) in qcomtee_object_name()
264 if (!object->name) in qcomtee_object_name()
266 return object->name; in qcomtee_object_name()
270 * qcomtee_object_user_init() - Initialize an object for the user.
271 * @object: object to initialize.
272 * @ot: type of object as &enum qcomtee_object_type.
274 * @fmt: name assigned to the object.
278 int qcomtee_object_user_init(struct qcomtee_object *object,
283 /* Object release is RCU protected. */
284 int qcomtee_object_get(struct qcomtee_object *object);
285 void qcomtee_object_put(struct qcomtee_object *object);