• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef SOFTBUS_DEF_H
16 #define SOFTBUS_DEF_H
17 
18 #include  <pthread.h>
19 #include "common_list.h"
20 #include "softbus_adapter_thread.h"
21 #include "stdint.h"
22 
23 
24 #ifdef __cplusplus
25 #if __cplusplus
26 extern "C" {
27 #endif
28 #endif
29 
30 #ifndef NO_SANITIZE
31 #ifdef __has_attribute
32 #if __has_attribute(no_sanitize)
33 #define NO_SANITIZE(type) __attribute__((no_sanitize(type)))
34 #endif
35 #endif
36 #endif
37 
38 #ifndef NO_SANITIZE
39 #define NO_SANITIZE(type)
40 #endif
41 
42 #define INVALID_SESSION_ID (-1)
43 #define INVALID_CHANNEL_ID (-1)
44 #define INVALID_ROUTE_TYPE (-1)
45 #define INVALID_DATA_CONFIG (0)
46 #define INVALID_SEQ_ID (0x7fffffff)
47 
48 #define PKG_NAME_SIZE_MAX 65
49 #define SESSION_NAME_SIZE_MAX 256
50 #define DEVICE_ID_SIZE_MAX 65
51 #define GROUP_ID_SIZE_MAX 128
52 #define REQ_ID_SIZE_MAX 65
53 #define AUTH_STATE_SIZE_MAX 65
54 #define FILE_RECV_ROOT_DIR_SIZE_MAX 256
55 
56 #define MAX_DEV_INFO_VALUE_LEN 65
57 #define MAX_CAPABILITY_LEN 33
58 #define MAX_CAPABILITY_DATA_LEN 512
59 #define MAX_PACKAGE_NAME_LEN 33
60 #define MAX_DEV_INFO_COUNT 32
61 #define MAX_PUBLISH_INFO_COUNT 32
62 #define IP_LEN 46
63 #define MAX_PEERS_NUM 32
64 #define MAX_OPERATION_CODE_LEN 32
65 #define SESSION_KEY_LENGTH 32
66 #define DEVICE_KEY_LEN 16
67 
68 #define MAX_SOCKET_ADDR_LEN 46
69 
70 #define MAX_SESSION_ID 16
71 #define MAX_SESSION_SERVER_NUMBER 10
72 
73 #define WAIT_SERVER_READY_INTERVAL 200
74 
75 #define NODE_ADDR_LOOPBACK "0"
76 
77 #define MAX_UDP_CHANNEL_ID_COUNT 20
78 
79 typedef struct {
80     SoftBusMutex lock;
81     unsigned int cnt;
82     ListNode list;
83 } SoftBusList;
84 
85 typedef enum {
86     SEC_TYPE_UNKNOWN = 0,
87     SEC_TYPE_PLAINTEXT = 1,
88     SEC_TYPE_CIPHERTEXT = 2,
89 } SoftBusSecType;
90 
91 /* Timer type */
92 enum {
93     TIMER_TYPE_ONCE,
94     TIMER_TYPE_PERIOD,
95     TIMER_TYPE_MAX,
96 };
97 
98 typedef enum {
99     TRANS_SESSION_BYTES = 0,
100     TRANS_SESSION_ACK,
101     TRANS_SESSION_MESSAGE,
102     TRANS_SESSION_FILE_FIRST_FRAME = 3,
103     TRANS_SESSION_FILE_ONGOINE_FRAME,
104     TRANS_SESSION_FILE_LAST_FRAME,
105     TRANS_SESSION_FILE_ONLYONE_FRAME,
106     TRANS_SESSION_FILE_ALLFILE_SENT,
107     TRANS_SESSION_FILE_CRC_CHECK_FRAME,
108     TRANS_SESSION_FILE_RESULT_FRAME,
109     TRANS_SESSION_FILE_ACK_REQUEST_SENT,
110     TRANS_SESSION_FILE_ACK_RESPONSE_SENT,
111     TRANS_SESSION_ASYNC_MESSAGE,
112 } SessionPktType;
113 
114 typedef enum {
115     CHANNEL_TYPE_TCP_DIRECT = 0,
116     CHANNEL_TYPE_PROXY,
117     CHANNEL_TYPE_UDP,
118     CHANNEL_TYPE_AUTH,
119     CHANNEL_TYPE_BUTT,
120 } ChannelType;
121 
122 typedef enum {
123     BUSINESS_TYPE_MESSAGE = 1,
124     BUSINESS_TYPE_BYTE = 2,
125     BUSINESS_TYPE_FILE = 3,
126     BUSINESS_TYPE_STREAM = 4,
127 
128     BUSINESS_TYPE_NOT_CARE,
129     BUSINESS_TYPE_BUTT,
130 } BusinessType;
131 
132 typedef struct {
133     int32_t channelId;
134     int32_t channelType;
135     int32_t businessType;
136     int32_t fd;
137     bool isServer;
138     bool isEnabled;
139     bool isEncrypt;
140     int32_t peerUid;
141     int32_t peerPid;
142     char *groupId;
143     uint32_t keyLen;
144     char *sessionKey;
145     char *peerSessionName;
146     char *peerDeviceId;
147     char *myIp;
148     char *peerIp;
149     int32_t peerPort;
150     int32_t routeType;
151     int32_t streamType;
152     int32_t encrypt;
153     int32_t fileEncrypt;
154     int32_t algorithm;
155     int32_t crc;
156     int32_t autoCloseTime;
157     bool isUdpFile;
158     int myHandleId;
159     int peerHandleId;
160     char *reqId;
161     int64_t timeStart;
162     int32_t linkType;
163     bool isFastData;
164     uint32_t dataConfig;
165 } ChannelInfo;
166 
167 #ifdef __cplusplus
168 #if __cplusplus
169 }
170 #endif /* __cplusplus */
171 #endif /* __cplusplus */
172 #endif /* SOFTBUS_DEF_H */
173 
174