1 /*
2  * Copyright (c) 2021-2022 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 
16 #ifndef USB_ERRORS_H
17 #define USB_ERRORS_H
18 
19 #include <errors.h>
20 #include <cstdint>
21 #include <string>
22 
23 namespace OHOS {
24 namespace USB {
25 enum UsbModuleType {
26     USB_MODULE_TYPE_SERVICE = 0,
27     USB_MODULE_TYPE_KIT = 1,
28 };
29 
30 const std::string PERMISSION_DENIED_SYSAPI = "PERMISSION_DENIED_SYSAPI";
31 
32 #define USB_OFFSET 100
33 
34 constexpr int32_t USBFWK_SERVICE_ERR_OFFSET = ErrCodeOffset(SUBSYS_USB, USB_MODULE_TYPE_SERVICE);
35 
36 enum UsbErrCode {
37     UEC_OK = 0,
38 
39     UEC_INTERFACE_NO_MEMORY = USBFWK_SERVICE_ERR_OFFSET,
40     UEC_INTERFACE_INVALID_OPERATION,
41     UEC_INTERFACE_INVALID_VALUE,
42     UEC_INTERFACE_NAME_NOT_FOUND,
43     UEC_INTERFACE_PERMISSION_DENIED,
44     UEC_INTERFACE_NO_INIT,
45     UEC_INTERFACE_ALREADY_EXISTS,
46     UEC_INTERFACE_DEAD_OBJECT,
47     UEC_INTERFACE_OVERFLOW,
48     UEC_INTERFACE_ENOUGH_DATA,
49     UEC_INTERFACE_WOULD_BLOCK,
50     UEC_INTERFACE_TIMED_OUT,
51     UEC_INTERFACE_WRITE_PARCEL_ERROR,
52     UEC_INTERFACE_READ_PARCEL_ERROR,
53     UEC_INTERFACE_GET_SYSTEM_ABILITY_MANAGER_FAILED,
54     UEC_INTERFACE_GET_USB_SERVICE_FAILED,
55     UEC_INTERFACE_ADD_DEATH_RECIPIENT_FAILED,
56     UEC_INTERFACE_INNER_ERR,
57     UEC_INTREFACE_END,
58 
59     UEC_SERVICE_NO_MEMORY = USBFWK_SERVICE_ERR_OFFSET + USB_OFFSET,
60     UEC_SERVICE_INVALID_OPERATION,
61     UEC_SERVICE_INVALID_VALUE,
62     UEC_SERVICE_NAME_NOT_FOUND,
63     UEC_SERVICE_PERMISSION_DENIED,
64     UEC_SERVICE_NO_INIT,
65     UEC_SERVICE_ALREADY_EXISTS,
66     UEC_SERVICE_DEAD_OBJECT,
67     UEC_SERVICE_OVERFLOW,
68     UEC_SERVICE_ENOUGH_DATA,
69     UEC_SERVICE_WOULD_BLOCK,
70     UEC_SERVICE_TIMED_OUT,
71     UEC_SERVICE_WRITE_PARCEL_ERROR,
72     UEC_SERVICE_READ_PARCEL_ERROR,
73     UEC_SERVICE_GET_SYSTEM_ABILITY_MANAGER_FAILED,
74     UEC_SERVICE_GET_USB_SERVICE_FAILED,
75     UEC_SERVICE_ADD_DEATH_RECIPIENT_FAILED,
76     UEC_SERVICE_INNER_ERR,
77     UEC_SERVICE_PERMISSION_DENIED_SYSAPI,
78     UEC_SERVICE_PERMISSION_CHECK_HDC,
79     UEC_SERVICE_NOT_SUPPORT_SWITCH_PORT,
80     UEC_SERVICE_END,
81     UEC_SERVICE_PRE_MANAGE_INTERFACE_FAILED,
82     UEC_SERVICE_EXECUTE_POLICY_FAILED,
83     UEC_SERVICE_PREPARE_EDM_SA_FAILED,
84     UEC_SERVICE_GET_EDM_SERVICE_FAILED,
85     UEC_SERVICE_EDM_DEVICE_SIZE_EXCEED,
86     UEC_SERVICE_EDM_SA_TIME_OUT_FAILED,
87     UEC_SERVICE_EDM_SEND_REQUEST_FAILED,
88     UEC_SERVICE_OBJECT_CREATE_FAILED,
89     UEC_SERVICE_GET_TOKEN_INFO_FAILED,
90     UEC_SERVICE_ACCESSORY_NOT_MATCH,
91     UEC_SERVICE_ACCESSORY_REOPEN,
92     UEC_SERVICE_ACCESSORY_OPEN_NATIVE_NODE_FAILED,
93     UEC_SERVICE_DATABASE_OPERATION_FAILED,
94     UEC_SERVICE_FUNCTION_NOT_SUPPORT,
95 };
96 
97 enum UsbRightErrCode {
98     USB_RIGHT_OK = 0,
99     USB_RIGHT_FAILURE = -1,
100     USB_RIGHT_RDB_EXECUTE_FAILTURE = -2,
101     USB_RIGHT_RDB_NO_INIT = -3,
102     USB_RIGHT_RDB_EMPTY = -4,
103     USB_RIGHT_PERMISSION_DENIED = -5,
104     USB_RIGHT_NOP = -6,
105     USB_RIGHT_OVERFLOW = -7,
106 };
107 
108 } // namespace USB
109 } // namespace OHOS
110 #endif // USB_ERRORS_H
111