1e5c4badcSopenharmony_ci/* 2e5c4badcSopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 3e5c4badcSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e5c4badcSopenharmony_ci * you may not use this file except in compliance with the License. 5e5c4badcSopenharmony_ci * You may obtain a copy of the License at 6e5c4badcSopenharmony_ci * 7e5c4badcSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e5c4badcSopenharmony_ci * 9e5c4badcSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e5c4badcSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e5c4badcSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e5c4badcSopenharmony_ci * See the License for the specific language governing permissions and 13e5c4badcSopenharmony_ci * limitations under the License. 14e5c4badcSopenharmony_ci */ 15e5c4badcSopenharmony_ci 16e5c4badcSopenharmony_ci 17e5c4badcSopenharmony_ci#ifndef MOCK_NATIVE_INCLUDE_ERRORS_H 18e5c4badcSopenharmony_ci#define MOCK_NATIVE_INCLUDE_ERRORS_H 19e5c4badcSopenharmony_ci 20e5c4badcSopenharmony_ci#include <cerrno> 21e5c4badcSopenharmony_ci 22e5c4badcSopenharmony_cinamespace OHOS { 23e5c4badcSopenharmony_ci/** 24e5c4badcSopenharmony_ci * ErrCode layout 25e5c4badcSopenharmony_ci * 26e5c4badcSopenharmony_ci * +-----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 27e5c4badcSopenharmony_ci * | Bit |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00| 28e5c4badcSopenharmony_ci * +-----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 29e5c4badcSopenharmony_ci * |Field|Reserved| Subsystem | Module | Code | 30e5c4badcSopenharmony_ci * +-----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 31e5c4badcSopenharmony_ci */ 32e5c4badcSopenharmony_ci 33e5c4badcSopenharmony_ciusing ErrCode = int; 34e5c4badcSopenharmony_ci 35e5c4badcSopenharmony_cienum { 36e5c4badcSopenharmony_ci SUBSYS_COMMON = 0, 37e5c4badcSopenharmony_ci SUBSYS_AAFWK = 1, 38e5c4badcSopenharmony_ci SUBSYS_ACCOUNT = 2, 39e5c4badcSopenharmony_ci SUBSYS_AI = 3, 40e5c4badcSopenharmony_ci SUBSYS_APPEXECFWK = 4, 41e5c4badcSopenharmony_ci SUBSYS_APPLICATIONS = 5, 42e5c4badcSopenharmony_ci SUBSYS_ARVR = 6, 43e5c4badcSopenharmony_ci SUBSYS_ARVRHARDWARE = 7, 44e5c4badcSopenharmony_ci SUBSYS_BARRIERFREE = 8, 45e5c4badcSopenharmony_ci SUBSYS_BIOMETRICS = 9, 46e5c4badcSopenharmony_ci SUBSYS_CCRUNTIME = 10, 47e5c4badcSopenharmony_ci SUBSYS_COMMUNICATION = 11, 48e5c4badcSopenharmony_ci SUBSYS_DFX = 12, 49e5c4badcSopenharmony_ci SUBSYS_DISTRIBUTEDDATAMNG = 13, 50e5c4badcSopenharmony_ci SUBSYS_DISTRIBUTEDSCHEDULE = 14, 51e5c4badcSopenharmony_ci SUBSYS_DRIVERS = 15, 52e5c4badcSopenharmony_ci SUBSYS_GLOBAL = 16, 53e5c4badcSopenharmony_ci SUBSYS_GRAPHIC = 17, 54e5c4badcSopenharmony_ci SUBSYS_HBS = 18, 55e5c4badcSopenharmony_ci SUBSYS_IAWARE = 19, 56e5c4badcSopenharmony_ci SUBSYS_IDE = 20, 57e5c4badcSopenharmony_ci SUBSYS_INTELLIACCESSORIES = 21, 58e5c4badcSopenharmony_ci SUBSYS_INTELLISPEAKER = 22, 59e5c4badcSopenharmony_ci SUBSYS_INTELLITV = 23, 60e5c4badcSopenharmony_ci SUBSYS_IOT = 24, 61e5c4badcSopenharmony_ci SUBSYS_IOTHARDWARE = 25, 62e5c4badcSopenharmony_ci SUBSYS_IVIHARDWARE = 26, 63e5c4badcSopenharmony_ci SUBSYS_KERNEL = 27, 64e5c4badcSopenharmony_ci SUBSYS_LOCATION = 28, 65e5c4badcSopenharmony_ci SUBSYS_MSDP = 29, 66e5c4badcSopenharmony_ci SUBSYS_MULTIMEDIA = 30, 67e5c4badcSopenharmony_ci SUBSYS_MULTIMODAINPUT = 31, 68e5c4badcSopenharmony_ci SUBSYS_NOTIFICATION = 32, 69e5c4badcSopenharmony_ci SUBSYS_POWERMNG = 33, 70e5c4badcSopenharmony_ci SUBSYS_ROUTER = 34, 71e5c4badcSopenharmony_ci SUBSYS_SECURITY = 35, 72e5c4badcSopenharmony_ci SUBSYS_SENSORS = 36, 73e5c4badcSopenharmony_ci SUBSYS_SMALLSERVICES = 37, 74e5c4badcSopenharmony_ci SUBSYS_SOURCECODETRANSFORMER = 38, 75e5c4badcSopenharmony_ci SUBSYS_STARTUP = 39, 76e5c4badcSopenharmony_ci SUBSYS_TELEPONY = 40, 77e5c4badcSopenharmony_ci SUBSYS_UPDATE = 41, 78e5c4badcSopenharmony_ci SUBSYS_USB = 42, 79e5c4badcSopenharmony_ci SUBSYS_WEARABLE = 43, 80e5c4badcSopenharmony_ci SUBSYS_WEARABLEHARDWARE = 44, 81e5c4badcSopenharmony_ci SUBSYS_IVI = 45 82e5c4badcSopenharmony_ci // new type 83e5c4badcSopenharmony_ci}; 84e5c4badcSopenharmony_ci 85e5c4badcSopenharmony_ci// be used to init the subsystem errorno. 86e5c4badcSopenharmony_ciconstexpr ErrCode ErrCodeOffset(unsigned int subsystem, unsigned int module = 0) 87e5c4badcSopenharmony_ci{ 88e5c4badcSopenharmony_ci constexpr int SUBSYSTEM_BIT_NUM = 21; 89e5c4badcSopenharmony_ci constexpr int MODULE_BIT_NUM = 16; 90e5c4badcSopenharmony_ci return (subsystem << SUBSYSTEM_BIT_NUM) | (module << MODULE_BIT_NUM); 91e5c4badcSopenharmony_ci} 92e5c4badcSopenharmony_ci 93e5c4badcSopenharmony_ci// offset of common error, only be used in this file. 94e5c4badcSopenharmony_ciconstexpr ErrCode BASE_ERR_OFFSET = ErrCodeOffset(SUBSYS_COMMON); 95e5c4badcSopenharmony_ci 96e5c4badcSopenharmony_cienum { 97e5c4badcSopenharmony_ci ERR_OK = 0, 98e5c4badcSopenharmony_ci ERR_NO_MEMORY = BASE_ERR_OFFSET + ENOMEM, 99e5c4badcSopenharmony_ci ERR_INVALID_OPERATION = BASE_ERR_OFFSET + ENOSYS, 100e5c4badcSopenharmony_ci ERR_INVALID_VALUE = BASE_ERR_OFFSET + EINVAL, 101e5c4badcSopenharmony_ci ERR_NAME_NOT_FOUND = BASE_ERR_OFFSET + ENOENT, 102e5c4badcSopenharmony_ci ERR_PERMISSION_DENIED = BASE_ERR_OFFSET + EPERM, 103e5c4badcSopenharmony_ci ERR_NO_INIT = BASE_ERR_OFFSET + ENODEV, 104e5c4badcSopenharmony_ci ERR_ALREADY_EXISTS = BASE_ERR_OFFSET + EEXIST, 105e5c4badcSopenharmony_ci ERR_DEAD_OBJECT = BASE_ERR_OFFSET + EPIPE, 106e5c4badcSopenharmony_ci ERR_OVERFLOW = BASE_ERR_OFFSET + EOVERFLOW, 107e5c4badcSopenharmony_ci ERR_ENOUGH_DATA = BASE_ERR_OFFSET + ENODATA, 108e5c4badcSopenharmony_ci ERR_WOULD_BLOCK = BASE_ERR_OFFSET + EWOULDBLOCK, 109e5c4badcSopenharmony_ci ERR_TIMED_OUT = BASE_ERR_OFFSET + ETIMEDOUT 110e5c4badcSopenharmony_ci}; 111e5c4badcSopenharmony_ci 112e5c4badcSopenharmony_ci#define SUCCEEDED(errCode) ((errCode) == ERR_OK) 113e5c4badcSopenharmony_ci#define FAILED(errCode) ((errCode) != ERR_OK) 114e5c4badcSopenharmony_ci} // namespace OHOS 115e5c4badcSopenharmony_ci 116e5c4badcSopenharmony_ci#endif // MOCK_NATIVE_INCLUDE_ERRORS_H 117