xref: /optee_os/lib/libutee/include/pta_socket.h (revision 1bb929836182ecb96d2d9d268daa807c67596396)
1*1bb92983SJerome Forissier /* SPDX-License-Identifier: BSD-2-Clause */
2a32a96edSJens Wiklander /*
3a32a96edSJens Wiklander  * Copyright (c) 2016, Linaro Limited
4a32a96edSJens Wiklander  * All rights reserved.
5a32a96edSJens Wiklander  *
6a32a96edSJens Wiklander  * Redistribution and use in source and binary forms, with or without
7a32a96edSJens Wiklander  * modification, are permitted provided that the following conditions are met:
8a32a96edSJens Wiklander  *
9a32a96edSJens Wiklander  * 1. Redistributions of source code must retain the above copyright notice,
10a32a96edSJens Wiklander  * this list of conditions and the following disclaimer.
11a32a96edSJens Wiklander  *
12a32a96edSJens Wiklander  * 2. Redistributions in binary form must reproduce the above copyright notice,
13a32a96edSJens Wiklander  * this list of conditions and the following disclaimer in the documentation
14a32a96edSJens Wiklander  * and/or other materials provided with the distribution.
15a32a96edSJens Wiklander  *
16a32a96edSJens Wiklander  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17a32a96edSJens Wiklander  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18a32a96edSJens Wiklander  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19a32a96edSJens Wiklander  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20a32a96edSJens Wiklander  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21a32a96edSJens Wiklander  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22a32a96edSJens Wiklander  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23a32a96edSJens Wiklander  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24a32a96edSJens Wiklander  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25a32a96edSJens Wiklander  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26a32a96edSJens Wiklander  * POSSIBILITY OF SUCH DAMAGE.
27a32a96edSJens Wiklander  */
28a32a96edSJens Wiklander 
29a32a96edSJens Wiklander #ifndef __PTA_SOCKET
30a32a96edSJens Wiklander #define __PTA_SOCKET
31a32a96edSJens Wiklander 
32a32a96edSJens Wiklander #define PTA_SOCKET_UUID { 0x3b996a7d, 0x2c2b, 0x4a49, { \
33a32a96edSJens Wiklander 			  0xa8, 0x96, 0xe1, 0xfb, 0x57, 0x66, 0xd2, 0xf4 } }
34a32a96edSJens Wiklander 
35a32a96edSJens Wiklander /*
36a32a96edSJens Wiklander  * [in]		value[0].a	ip version TEE_IP_VERSION_* from tee_ipsocket.h
37a32a96edSJens Wiklander  * [in]		value[0].b	server port number
38a32a96edSJens Wiklander  * [in]		memref[1]	server address
39a32a96edSJens Wiklander  * [in]		value[2].a	protocol, TEE_ISOCKET_PROTOCOLID_*
40a32a96edSJens Wiklander  * [out]	value[3].a	socket handle
41a32a96edSJens Wiklander  */
42a32a96edSJens Wiklander #define PTA_SOCKET_OPEN		1
43a32a96edSJens Wiklander 
44a32a96edSJens Wiklander /*
45a32a96edSJens Wiklander  * [in]		value[0].a	socket handle
46a32a96edSJens Wiklander  */
47a32a96edSJens Wiklander #define PTA_SOCKET_CLOSE	2
48a32a96edSJens Wiklander 
49a32a96edSJens Wiklander #define PTA_SOCKET_TIMEOUT_NONBLOCKING	0
50a32a96edSJens Wiklander #define PTA_SOCKET_TIMEOUT_BLOCKING	0xffffffff
51a32a96edSJens Wiklander 
52a32a96edSJens Wiklander /*
53a32a96edSJens Wiklander  * [in]		value[0].a	socket handle
54a32a96edSJens Wiklander  * [in]		value[0].b	timeout ms or TEE_TIMEOUT_INFINITE
55a32a96edSJens Wiklander  * [in]		memref[1]	buffer to transmit
56a32a96edSJens Wiklander  * [out]	value[2].a	number of transmitted bytes
57a32a96edSJens Wiklander  */
58a32a96edSJens Wiklander #define PTA_SOCKET_SEND		3
59a32a96edSJens Wiklander 
60a32a96edSJens Wiklander /*
61a32a96edSJens Wiklander  * [in]		value[0].a	socket handle
62a32a96edSJens Wiklander  * [in]		value[0].b	timeout ms or TEE_TIMEOUT_INFINITE
63a32a96edSJens Wiklander  * [out]	memref[1]	buffer
64a32a96edSJens Wiklander  */
65a32a96edSJens Wiklander #define PTA_SOCKET_RECV		4
66a32a96edSJens Wiklander 
67a32a96edSJens Wiklander /*
68a32a96edSJens Wiklander  * [in]		value[0].a	socket handle
69a32a96edSJens Wiklander  * [in]		value[0].b	ioctl command
70a32a96edSJens Wiklander  * [in/out]	memref[1]	buffer
71a32a96edSJens Wiklander  */
72a32a96edSJens Wiklander #define PTA_SOCKET_IOCTL	5
73a32a96edSJens Wiklander 
74a32a96edSJens Wiklander #endif /*__PTA_SOCKET*/
75