* Copyright (c) 2025 Huawei Technologies Co., Ltd.
* This program is free software, you can redistribute it and/or modify it under the terms and conditions of
* CANN Open Software License Agreement Version 2.0 (the "License").
* Please refer to the License for details. You may not use this file except in compliance with the License.
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
* See LICENSE in the root of the software repository for the full text of the License.
*/
#ifndef __CCE_RUNTIME_API_IMPL_CREATOR_C_HPP__
#define __CCE_RUNTIME_API_IMPL_CREATOR_C_HPP__
#include "api.hpp"
namespace cce {
namespace runtime {
class ApiMbuf;
class ApiEvent;
class ApiEsched;
class ApiSnapshot;
class ApiRtConfig;
class ApiDeviceTopology;
class ApiHostMemory;
class ApiKernelFunc;
class ApiKernelArgs;
class ApiIpcMemory;
class ApiVmm;
size_t GetApiImplSize();
Api* CreateImplAndGet();
bool IsImplMbufSupported();
ApiMbuf* CreateImplMbufAndGet();
void DestroyImplMbuf(ApiMbuf*& apiImplMbuf);
ApiSoma* CreateImplSomaAndGet();
ApiEvent* CreateImplEventAndGet();
bool IsImplKernelFuncSupported();
ApiKernelFunc* CreateImplKernelFuncAndGet();
void DestroyImplKernelFunc(ApiKernelFunc*& apiImplKernelFunc);
bool IsImplKernelArgsSupported();
ApiKernelArgs* CreateImplKernelArgsAndGet();
void DestroyImplKernelArgs(ApiKernelArgs*& apiImplKernelArgs);
bool IsImplEschedSupported();
ApiEsched* CreateImplEschedAndGet();
void DestroyImplEsched(ApiEsched*& apiImplEsched);
bool IsImplSnapshotSupported();
ApiSnapshot* CreateImplSnapshotAndGet();
void DestroyImplSnapshot(ApiSnapshot*& apiImplSnapshot);
bool IsImplRtConfigSupported();
ApiRtConfig* CreateImplRtConfigAndGet();
void DestroyImplRtConfig(ApiRtConfig*& apiImplRtConfig);
bool IsImplDeviceTopologySupported();
ApiDeviceTopology* CreateImplDeviceTopologyAndGet();
void DestroyImplDeviceTopology(ApiDeviceTopology*& apiImplDeviceTopology);
bool IsImplIpcMemorySupported();
ApiIpcMemory* CreateImplIpcMemoryAndGet();
void DestroyImplIpcMemory(ApiIpcMemory*& apiImplIpcMemory);
bool IsImplHostMemorySupported();
ApiHostMemory* CreateImplHostMemoryAndGet();
void DestroyImplHostMemory(ApiHostMemory*& apiImplHostMemory);
bool IsImplVmmSupported();
ApiVmm* CreateImplVmmAndGet();
void DestroyImplVmm(ApiVmm*& apiImplVmm);
}
}
#endif