optee_utee_sys/
tee_isocket.rs

1// Licensed to the Apache Software Foundation (ASF) under one
2// or more contributor license agreements.  See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership.  The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License.  You may obtain a copy of the License at
8//
9//   http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied.  See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18use super::*;
19use core::ffi::*;
20
21pub type TEE_iSocketHandle = *mut c_void;
22pub type TEE_iSocket = TEE_iSocket_s;
23
24#[repr(C)]
25#[derive(Debug, Copy, Clone)]
26pub struct TEE_iSocket_s {
27    pub TEE_iSocketVersion: u32,
28    pub protocolID: u8,
29    pub open: unsafe extern "C" fn(
30        ctx: *mut TEE_iSocketHandle,
31        setup: *mut c_void,
32        protocolError: *mut u32,
33    ) -> TEE_Result,
34    pub close: unsafe extern "C" fn(ctx: TEE_iSocketHandle) -> TEE_Result,
35    pub send: unsafe extern "C" fn(
36        ctx: TEE_iSocketHandle,
37        buf: *const c_void,
38        length: *mut u32,
39        timeout: u32,
40    ) -> TEE_Result,
41    pub recv: unsafe extern "C" fn(
42        ctx: TEE_iSocketHandle,
43        buf: *mut c_void,
44        length: *mut u32,
45        timeout: u32,
46    ) -> TEE_Result,
47    pub error: unsafe extern "C" fn(ctx: TEE_iSocketHandle) -> u32,
48    pub ioctl: unsafe extern "C" fn(
49        ctx: TEE_iSocketHandle,
50        commandCode: u32,
51        buf: *mut c_void,
52        length: *mut u32,
53    ) -> TEE_Result,
54}
55
56pub const TEE_ISOCKET_VERSION: u32 = 0x01000000;
57
58pub const TEE_ISOCKET_ERROR_PROTOCOL: u32 = 0xF1007001;
59pub const TEE_ISOCKET_ERROR_REMOTE_CLOSED: u32 = 0xF1007002;
60pub const TEE_ISOCKET_ERROR_TIMEOUT: u32 = 0xF1007003;
61pub const TEE_ISOCKET_ERROR_OUT_OF_RESOURCES: u32 = 0xF1007004;
62pub const TEE_ISOCKET_ERROR_LARGE_BUFFER: u32 = 0xF1007005;
63pub const TEE_ISOCKET_WARNING_PROTOCOL: u32 = 0xF1007006;
64pub const TEE_ISOCKET_ERROR_HOSTNAME: u32 = 0xF1007007;