| @@ -0,0 +1,50 @@ | |||||
| /** | |||||
| * Copyright (c) Huawei Technologies Co., Ltd. 2019-2020. All rights reserved. | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| #ifndef AICPU_OP_TYPE_LIST_H_ | |||||
| #define AICPU_OP_TYPE_LIST_H_ | |||||
| extern "C" { | |||||
| enum OpKernelType { TF_KERNEL, CPU_KERNEL }; | |||||
| enum ReturnCode { OP_TYPE_NOT_SUPPORT, FORMAT_NOT_SUPPORT, DTYPE_NOT_SUPPORT }; | |||||
| #pragma pack(push, 1) | |||||
| // One byte alignment | |||||
| struct SysOpInfo { | |||||
| uint64_t opLen; | |||||
| uint64_t opType; | |||||
| OpKernelType kernelsType; | |||||
| }; | |||||
| struct SysOpCheckInfo { | |||||
| uint64_t opListNum; | |||||
| uint64_t offSetLen; | |||||
| uint64_t sysOpInfoList; | |||||
| uint64_t opParamInfoList; | |||||
| }; | |||||
| struct SysOpCheckResp { | |||||
| uint64_t opListNum; | |||||
| bool isWithoutJson; | |||||
| uint64_t returnCodeList; | |||||
| uint64_t sysOpInfoList; | |||||
| uint64_t opParamInfoList; | |||||
| }; | |||||
| #pragma pack(pop) | |||||
| } | |||||
| #endif // AICPU_OP_TYPE_LIST_H_ | |||||
| @@ -0,0 +1,104 @@ | |||||
| /** | |||||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| #ifndef AICPU_TASK_STRUCT_H | |||||
| #define AICPU_TASK_STRUCT_H | |||||
| #include <cstdint> | |||||
| namespace aicpu { | |||||
| using char_t = char; | |||||
| #pragma pack(push, 1) | |||||
| struct AicpuParamHead { | |||||
| uint32_t length; // Total length: include cunstom message | |||||
| uint32_t ioAddrNum; // Input and output address number | |||||
| uint32_t extInfoLength; // extInfo struct Length | |||||
| uint64_t extInfoAddr; // extInfo address | |||||
| }; | |||||
| enum class AicpuConfigMsgType { | |||||
| AICPU_CONFIG_MSG_TYPE_BUF_FREE = 0, /* free buf */ | |||||
| AICPU_CONFIG_MSG_TYPE_BUF_RESET = 1, /* reset buf */ | |||||
| AICPU_CONFIG_MSG_TYPE_BUF_SET_ADDR = 2, /* set buf addr to aicpu */ | |||||
| }; | |||||
| enum class AicpuErrMsgType { | |||||
| ERR_MSG_TYPE_NULL = 0, | |||||
| ERR_MSG_TYPE_AICORE = 1, | |||||
| ERR_MSG_TYPE_AICPU = 2, | |||||
| }; | |||||
| enum class AicpuExtInfoMsgType { | |||||
| EXT_MODEL_ID_MSG_TYPE = 0, | |||||
| }; | |||||
| struct AicpuConfigMsg { | |||||
| uint8_t msgType; | |||||
| uint8_t reserved1; | |||||
| uint16_t bufLen; | |||||
| uint32_t offset; | |||||
| uint64_t bufAddr; | |||||
| uint32_t tsId; | |||||
| uint32_t reserved2; | |||||
| }; | |||||
| struct AicpuModelIdInfo { | |||||
| uint32_t modelId; | |||||
| uint32_t extendModelId; | |||||
| uint32_t extendInfo[13]; | |||||
| }; | |||||
| // 64 bytes | |||||
| struct AicpuExtendInfo { | |||||
| uint8_t msgType; | |||||
| uint8_t version; | |||||
| uint8_t reserved[2]; | |||||
| union { | |||||
| AicpuModelIdInfo modelIdMap; | |||||
| }; | |||||
| }; | |||||
| struct AicoreErrMsgInfo { | |||||
| uint8_t errType; | |||||
| uint8_t version; | |||||
| uint8_t reserved1[2]; /* reserved1, 4 byte alignment */ | |||||
| uint32_t errorCode; | |||||
| uint32_t modelId; | |||||
| uint32_t taskId; | |||||
| uint32_t streamId; | |||||
| uint64_t transactionId; | |||||
| uint8_t reserved2[228]; /* the total byte is 256, reserved2 len = 256 - other lens */ | |||||
| }; | |||||
| struct AicpuErrMsgInfo { | |||||
| uint8_t errType; | |||||
| uint8_t version; | |||||
| uint8_t reserved1[2]; /* reserved1, 4 byte alignment */ | |||||
| uint32_t errorCode; | |||||
| uint32_t modelId; | |||||
| uint32_t streamId; | |||||
| uint64_t transactionId; | |||||
| char_t opName[64]; /* op name str */ | |||||
| char_t errDesc[128]; /* err msg desc info */ | |||||
| uint8_t reserved2[40]; /* the total byte is 256, reserved2 len = 256 - other lens */ | |||||
| }; | |||||
| #pragma pack(pop) | |||||
| } // namespace aicpu | |||||
| #endif // AICPU_TASK_STRUCT_H | |||||
| @@ -0,0 +1,48 @@ | |||||
| /** | |||||
| * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||||
| * | |||||
| * Description:interface. | |||||
| * Create: 2021-12-21 | |||||
| */ | |||||
| #ifndef AICPU_TYPE_DEF_H | |||||
| #define AICPU_TYPE_DEF_H | |||||
| #include <cstdint> | |||||
| #include <cstddef> | |||||
| #ifndef char_t | |||||
| typedef char char_t; | |||||
| #endif | |||||
| #ifndef float32_t | |||||
| typedef float float32_t; | |||||
| #endif | |||||
| #ifndef float64_t | |||||
| typedef double float64_t; | |||||
| #endif | |||||
| inline uint64_t PtrToValue(const void *ptr) { | |||||
| return static_cast<const uint64_t>(reinterpret_cast<const uintptr_t>(ptr)); | |||||
| } | |||||
| inline void *ValueToPtr(const uint64_t value) { | |||||
| return reinterpret_cast<void *>(static_cast<const uintptr_t>(value)); | |||||
| } | |||||
| template <typename TI, typename TO> | |||||
| inline TO *PtrToPtr(TI *ptr) { | |||||
| return reinterpret_cast<TO *>(ptr); | |||||
| } | |||||
| template <typename T> | |||||
| inline T *PtrAdd(T *const ptr, const size_t maxIdx, const size_t idx) { | |||||
| if ((ptr != nullptr) && (idx < maxIdx)) { | |||||
| return reinterpret_cast<T *>(ptr + idx); | |||||
| } | |||||
| return nullptr; | |||||
| } | |||||
| #endif // AICPU_TYPE_DEF_H | |||||
| @@ -0,0 +1,29 @@ | |||||
| /** | |||||
| * Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2021. All rights reserved. | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| #ifndef INC_TDT_STATUS_H | |||||
| #define INC_TDT_STATUS_H | |||||
| #include "common/type_def.h" | |||||
| namespace tsd { | |||||
| #ifdef __cplusplus | |||||
| using TSD_StatusT = uint32_t; | |||||
| #else | |||||
| typedef uint32_t TSD_StatusT; | |||||
| #endif | |||||
| // success code | |||||
| constexpr TSD_StatusT TSD_OK = 0U; | |||||
| } // namespace tsd | |||||
| #endif // INC_TDT_STATUS_H | |||||