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 DEFINE_ENUM_H
16 #define DEFINE_ENUM_H
17 
18 namespace Hdc {
19 enum HdcLogLevel {
20     LOG_OFF,
21     LOG_FATAL,
22     LOG_WARN,
23     LOG_INFO,  // default
24     LOG_DEBUG,
25     LOG_ALL,
26     LOG_VERBOSE,
27     LOG_LAST = LOG_VERBOSE,  // tail, not use
28 };
29 
30 enum MessageLevel {
31     MSG_FAIL,
32     MSG_INFO,
33     MSG_OK,
34 };
35 
36 enum ConnType { CONN_USB = 0, CONN_TCP, CONN_SERIAL, CONN_BT, CONN_UNKNOWN };
37 const string conTypeDetail[] = { "USB", "TCP", "UART", "BT", "UNKNOWN" };
38 
39 #ifdef HDC_SUPPORT_UART
40 enum UartTimeConst {
41     UV_TIMEOUT = 10,
42     UV_REPEAT = 100,
43     TIMEOUTS_R_INTERALTIMEOUT = 1000,
44     TIMEOUTS_R_TOALTIMEOUTMULTIPLIER = 500,
45     TIMEOUTS_R_TIMEOUTCONSTANT = 5000
46 };
47 enum UartSetSerialNBits {
48     UART_BIT1 = 7,
49     UART_BIT2 = 8
50 };
51 enum UartSetSerialNSpeed {
52     UART_SPEED2400 = 2400,
53     UART_SPEED4800 = 4800,
54     UART_SPEED9600 = 9600,
55     UART_SPEED115200 = 115200,
56     UART_SPEED921600 = 921600,
57     UART_SPEED1500000 = 1500000
58 };
59 enum UartSetSerialNStop {
60     UART_STOP1 = 1,
61     UART_STOP2 = 2
62 };
63 #endif
64 enum ConnStatus { STATUS_UNKNOW = 0, STATUS_READY, STATUS_CONNECTED, STATUS_OFFLINE, STATUS_UNAUTH };
65 const string conStatusDetail[] = { "Unknown", "Ready", "Connected", "Offline", "Unauthorized" };
66 
67 enum AuthVerifyType { RSA_ENCRYPT = 0, RSA_3072_SHA512 = 1, UNKNOWN = 100 };
68 
69 enum OperateID {
70     OP_ADD,
71     OP_REMOVE,
72     OP_QUERY,
73     OP_QUERY_REF,  // crossthread query, manually reduce ref
74     OP_GET_STRLIST,
75     OP_GET_STRLIST_FULL,
76     OP_GET_ANY,
77     OP_UPDATE,
78     OP_CLEAR,
79     OP_INIT,
80     OP_GET_ONLY,
81     OP_VOTE_RESET,
82     OP_WAIT_FOR_ANY
83 };
84 
85 enum RetErrCode {
86     RET_SUCCESS = 0,
87     ERR_GENERIC = -1,
88     ERR_NO_SUPPORT = -2,
89     ERR_PARAM_NULLPTR = -5,
90     ERR_LIBUSB_OPEN = -100,
91     ERR_BUF_SIZE = -10000,
92     ERR_BUF_ALLOC,
93     ERR_BUF_OVERFLOW,
94     ERR_BUF_CHECK,
95     ERR_BUF_RESET,
96     ERR_BUF_COPY,
97     ERR_CHECK_VERSION,
98     ERR_FILE_OPEN = -11000,
99     ERR_FILE_READ,
100     ERR_FILE_WRITE,
101     ERR_FILE_STAT,
102     ERR_FILE_PATH_CHECK,
103     ERR_PARM_FORMAT = -12000,
104     ERR_PARM_SIZE,
105     ERR_PARM_FAIL,
106     ERR_API_FAIL = -13000,
107     ERR_IO_FAIL = -14000,
108     ERR_IO_TIMEOUT,
109     ERR_IO_SOFT_RESET,
110     ERR_SESSION_NOFOUND = -15000,
111     ERR_SESSION_OFFLINE,
112     ERR_SESSION_DEAD,
113     ERR_HANDSHAKE_NOTMATCH = -16000,
114     ERR_HANDSHAKE_CONNECTKEY_FAILED,
115     ERR_HANDSHAKE_HANGUP_CHILD,
116     ERR_SOCKET_FAIL = -17000,
117     ERR_SOCKET_DUPLICATE,
118     ERR_MODULE_JDWP_FAILED = -18000,
119     ERR_UT_MODULE_NOTREADY = -19000,
120     ERR_UT_MODULE_WAITMAX,
121     ERR_THREAD_MUTEX_FAIL = -20000,
122     ERR_PROCESS_SUB_FAIL = -21000,
123     ERR_PRIVELEGE_NEED = -22000,
124 };
125 
126 // Flags shared by multiple modules
127 enum AsyncEvent {
128     ASYNC_STOP_MAINLOOP = 0,
129     ASYNC_FREE_SESSION,
130     ASYNC_FREE_CHANNEL,
131 };
132 enum InnerCtrlCommand {
133     SP_START_SESSION = 0,
134     SP_STOP_SESSION,
135     SP_ATTACH_CHANNEL,
136     SP_DEATCH_CHANNEL,
137     SP_JDWP_NEWFD,
138     SP_ARK_NEWFD,
139 };
140 
141 enum HdcCommand {
142     // core commands types
143     CMD_KERNEL_HELP = 0,
144     CMD_KERNEL_HANDSHAKE,
145     CMD_KERNEL_CHANNEL_CLOSE,
146     CMD_KERNEL_TARGET_DISCOVER = 4,
147     CMD_KERNEL_TARGET_LIST,
148     CMD_KERNEL_TARGET_ANY,
149     CMD_KERNEL_TARGET_CONNECT,
150     CMD_KERNEL_TARGET_DISCONNECT,
151     CMD_KERNEL_ECHO,
152     CMD_KERNEL_ECHO_RAW,
153     CMD_KERNEL_ENABLE_KEEPALIVE,
154     CMD_KERNEL_WAKEUP_SLAVETASK,
155     CMD_CHECK_SERVER,
156     CMD_CHECK_DEVICE,
157     CMD_WAIT_FOR,
158     // One-pass simple commands
159     CMD_UNITY_COMMAND_HEAD = 1000,  // not use
160     CMD_UNITY_EXECUTE,
161     CMD_UNITY_REMOUNT,
162     CMD_UNITY_REBOOT,
163     CMD_UNITY_RUNMODE,
164     CMD_UNITY_HILOG,
165     CMD_UNITY_ROOTRUN = 1007,
166     CMD_JDWP_LIST,
167     CMD_JDWP_TRACK,
168     CMD_UNITY_COMMAND_TAIL,  // not use
169     // It will be separated from unity in the near future
170     CMD_UNITY_BUGREPORT_INIT,
171     CMD_UNITY_BUGREPORT_DATA,
172     // Shell commands types
173     CMD_SHELL_INIT = 2000,
174     CMD_SHELL_DATA,
175     // Forward commands types
176     CMD_FORWARD_INIT = 2500,
177     CMD_FORWARD_CHECK,
178     CMD_FORWARD_CHECK_RESULT,
179     CMD_FORWARD_ACTIVE_SLAVE,
180     CMD_FORWARD_ACTIVE_MASTER,
181     CMD_FORWARD_DATA,
182     CMD_FORWARD_FREE_CONTEXT,
183     CMD_FORWARD_LIST,
184     CMD_FORWARD_REMOVE,
185     CMD_FORWARD_SUCCESS,
186     // File commands
187     CMD_FILE_INIT = 3000,
188     CMD_FILE_CHECK,
189     CMD_FILE_BEGIN,
190     CMD_FILE_DATA,
191     CMD_FILE_FINISH,
192     CMD_APP_SIDELOAD,
193     CMD_FILE_MODE,
194     CMD_DIR_MODE,
195     // App commands
196     CMD_APP_INIT = 3500,
197     CMD_APP_CHECK,
198     CMD_APP_BEGIN,
199     CMD_APP_DATA,
200     CMD_APP_FINISH,
201     CMD_APP_UNINSTALL,
202 
203     // deprecated, remove later
204     CMD_UNITY_JPID = CMD_JDWP_LIST,
205 
206     // Flashd commands
207     CMD_FLASHD_UPDATE_INIT = 4000,
208     CMD_FLASHD_FLASH_INIT,
209     CMD_FLASHD_CHECK,
210     CMD_FLASHD_BEGIN,
211     CMD_FLASHD_DATA,
212     CMD_FLASHD_FINISH,
213     CMD_FLASHD_ERASE,
214     CMD_FLASHD_FORMAT,
215     CMD_FLASHD_PROGRESS,
216 };
217 
218 enum UsbProtocolOption {
219     USB_OPTION_HEADER = 1,
220     USB_OPTION_RESET = 2,
221     USB_OPTION_RESERVE4 = 4,
222     USB_OPTION_RESERVE8 = 8,
223     USB_OPTION_RESERVE16 = 16,
224 };
225 }
226 #endif