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