1*1bb92983SJerome Forissier /* SPDX-License-Identifier: BSD-2-Clause */ 2a32a96edSJens Wiklander /* 3a32a96edSJens Wiklander * Copyright (c) 2016-2017, Linaro Limited 4a32a96edSJens Wiklander */ 5a32a96edSJens Wiklander 6a32a96edSJens Wiklander #ifndef __TEE_ISOCKET_H 7a32a96edSJens Wiklander #define __TEE_ISOCKET_H 8a32a96edSJens Wiklander 9a32a96edSJens Wiklander #include <stdint.h> 10a32a96edSJens Wiklander #include <tee_api_types.h> 11a32a96edSJens Wiklander #include <__tee_isocket_defines.h> 12a32a96edSJens Wiklander 13a32a96edSJens Wiklander typedef void *TEE_iSocketHandle; 14a32a96edSJens Wiklander 15a32a96edSJens Wiklander typedef const struct TEE_iSocket_s { 16a32a96edSJens Wiklander uint32_t TEE_iSocketVersion; 17a32a96edSJens Wiklander uint8_t protocolID; 18a32a96edSJens Wiklander TEE_Result (*open)(TEE_iSocketHandle *ctx, void *setup, 19a32a96edSJens Wiklander uint32_t *protocolError); 20a32a96edSJens Wiklander 21a32a96edSJens Wiklander TEE_Result (*close)(TEE_iSocketHandle ctx); 22a32a96edSJens Wiklander 23a32a96edSJens Wiklander TEE_Result (*send)(TEE_iSocketHandle ctx, const void *buf, 24a32a96edSJens Wiklander uint32_t *length, uint32_t timeout); 25a32a96edSJens Wiklander 26a32a96edSJens Wiklander TEE_Result (*recv)(TEE_iSocketHandle ctx, void *buf, uint32_t *length, 27a32a96edSJens Wiklander uint32_t timeout); 28a32a96edSJens Wiklander 29a32a96edSJens Wiklander uint32_t (*error)(TEE_iSocketHandle ctx); 30a32a96edSJens Wiklander 31a32a96edSJens Wiklander TEE_Result (*ioctl)(TEE_iSocketHandle ctx, uint32_t commandCode, 32a32a96edSJens Wiklander void *buf, uint32_t *length); 33a32a96edSJens Wiklander } TEE_iSocket; 34a32a96edSJens Wiklander 35a32a96edSJens Wiklander #endif /*__TEE_ISOCKET_H*/ 36