0 Y� 355ʾÙcY 404 Not Found

Not Found

The requested URL was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

[ˆÕÜ ƒ|-‹Û¾Ù#À[/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2015-2024 Linaro Limited */ #ifndef __TEE_DRV_H #define __TEE_DRV_H #include #include #include #include #include #include /* * The file describes the API provided by the TEE subsystem to the * TEE client drivers. */ struct tee_device; /** * struct tee_context - driver specific context on file pointer data * @teedev: pointer to this drivers struct tee_device * @data: driver specific context data, managed by the driver * @refcount: reference counter for this structure * @releasing: flag that indicates if context is being released right now. * It is needed to break circular dependency on context during * shared memory release. * @supp_nowait: flag that indicates that requests in this context should not * wait for tee-supplicant daemon to be started if not present * and just return with an error code. It is needed for requests * that arises from TEE based kernel drivers that should be * non-blocking in nature. * @cap_memref_null: flag indicating if the TEE Client support shared * memory buffer with a NULL pointer. */ struct tee_context { struct tee_device *teedev; void *data; struct kref refcount; bool releasing; bool supp_nowait; bool cap_memref_null; }; /** * struct tee_shm - shared memory object * @ctx: context using the object * @paddr: physical address of the shared memory * @kaddr: virtual address of the shared memory * @size: size of shared memory * @offset: offset of buffer in user space * @pages: locked pages from userspace * @num_pages: number of locked pages * @refcount: reference counter * @flags: defined by TEE_SHM_* in tee_core.h * @id: unique id of a shared memory object on this device, shared * with user space * @sec_world_id: * secure world assigned id of this shared memory object, not * used by all drivers */ struct tee_shm { struct tee_context *ctx; phys_addr_t paddr; void *kaddr; size_t size; unsigned int offset; struct page **pages; size_t num_pages; refcount_t refcount; u32 flags; int id; u64 sec_world_id; }; struct tee_param_memref { size_t shm_offs; size_t size; struct tee_shm *shm; }; struct tee_param_value { u64 a; u64 b; u64 c; }; struct tee_param { u64 attr; union { struct tee_param_memref memref; struct tee_param_value value; } u; }; /** * tee_shm_alloc_kernel_buf() - Allocate kernel shared memory for a * particular TEE client driver * @ctx: The TEE context for shared memory allocation * @size: Shared memory allocation size * @returns a pointer to 'struct tee_shm' on success or an ERR_PTR on failure */ struct tee_shm *tee_shm_alloc_kernel_buf(struct tee_context *ctx, size_t size); /** * tee_shm_register_kernel_buf() - Register kernel shared memory for a * particular TEE client driver * @ctx: The TEE context for shared memory registration * @addr: Kernel buffer address * @length: Kernel buffer length * @returns a pointer to 'struct tee_shm' on success or an ERR_PTR on failure */ struct tee_shm *tee_shm_register_kernel_buf(struct tee_context *ctx, void *addr, size_t length); /** * tee_shm_free() - Free shared memory * @shm: Handle to shared memory to free */ void tee_shm_free(struct tee_shm *shm); /** * tee_shm_get_va() - Get virtual address of a shared memory plus an offset * @shm: Shared memory handle * @offs: Offset from start of this shared memory * @returns virtual addre