1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * (C) Copyright 2022 Linaro Limited 4 */ 5 6 #ifndef _OPTEE_SERVICE_H 7 #define _OPTEE_SERVICE_H 8 9 /* 10 * struct optee_service - Discoverable OP-TEE service 11 * 12 * @driver_name - Name of the related driver 13 * @uuid - UUID of the OP-TEE service related to the driver 14 * 15 * Use macro OPTEE_SERVICE_DRIVER() to register a driver related to an 16 * OP-TEE service discovered when driver asks OP-TEE services enumaration. 17 */ 18 struct optee_service { 19 const char *driver_name; 20 const struct tee_optee_ta_uuid uuid; 21 }; 22 23 #ifdef CONFIG_OPTEE_SERVICE_DISCOVERY 24 #define OPTEE_SERVICE_DRIVER(__name, __uuid, __drv_name) \ 25 ll_entry_declare(struct optee_service, __name, optee_service) = { \ 26 .uuid = __uuid, \ 27 .driver_name = __drv_name, \ 28 } 29 #else 30 #define OPTEE_SERVICE_DRIVER(__name, __uuid, __drv_name) \ 31 static int __name##__COUNTER__ __always_unused 32 #endif 33 34 #endif /* _OPTEE_SERVICE_H */ 35