/**
 * 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 FRAMEWORK_COMMON_RUNTIME_MODEL_GE_H
#define FRAMEWORK_COMMON_RUNTIME_MODEL_GE_H

typedef enum acltagModelTaskType {
  ACL_RT_MODEL_TASK_KERNEL = 0,
  ACL_RT_MODEL_TASK_EVENT_RECORD,
  ACL_RT_MODEL_TASK_EVENT_WAIT,
  ACL_RT_MODEL_TASK_FUSION_START,
  ACL_RT_MODEL_TASK_FUSION_END,
  ACL_RT_MODEL_TASK_KERNEL_EX,
  ACL_RT_MODEL_TASK_HCCL,
  ACL_RT_MODEL_TASK_STREAM_SWITCH,
  ACL_RT_MODEL_TASK_STREAM_ACTIVE,
  ACL_RT_MODEL_TASK_LABEL_SET,
  ACL_RT_MODEL_TASK_LABEL_SWITCH,
  ACL_RT_MODEL_TASK_LABEL_GOTO,
  ACL_RT_MODEL_TASK_PROFILER_TRACE,
  ACL_RT_MODEL_TASK_MEMCPY_ASYNC,
  ACL_RT_MODEL_TASK_NOTIFY_RECORD,
  ACL_RT_MODEL_TASK_NOTIFY_WAIT,
  ACL_RT_MODEL_TASK_REDUCE_ASYNC,
  ACL_RT_MODEL_TASK_RDMA_SEND,
  ACL_RT_MODEL_TASK_EVENT_RESET,
  ACL_RT_MODEL_TASK_MODEL_END_GRAPH,
  ACL_RT_MODEL_TASK_STREAM_SWITCH_N,
  ACL_RT_MODEL_TASK_RDMA_DB_SEND,
  ACL_RT_MODEL_TASK_MEMCPY_ADDR_ASYNC,
  ACL_RT_MODEL_TASK_STREAM_LABEL_SWITCH_BY_INDEX,
  ACL_RT_MODEL_TASK_STREAM_LABEL_GOTO,
  ACL_RT_MODEL_TASK_MODEL_EXIT,
  ACL_RT_MODEL_TASK_ALL_KERNEL,
  ACL_RT_MODEL_TASK_PROFILER_TRACE_EX,
  ACL_RT_MODEL_TASK_FFTS_TASK,
  ACL_RT_MODEL_TASK_FFTS_PLUS_TASK,
  ACL_RT_MODEL_TASK_DSA_TASK,
  ACL_RT_MODEL_TASK_CMO,
  ACL_RT_MODEL_TASK_BARRIER,
  ACL_RT_MODEL_TASK_NPU_GET_FLOAT_STATUS,
  ACL_RT_MODEL_TASK_NPU_CLEAR_FLOAT_STATUS,
  ACL_RT_MODEL_TASK_DVPP,
  ACL_RT_MODEL_TASK_NPU_GET_DEBUG_FLOAT_STATUS,
  ACL_RT_MODEL_TASK_NPU_CLEAR_DEBUG_FLOAT_STATUS,
  ACL_RT_MODEL_TASK_CMO_ADDR,
  ACL_RT_MODEL_TASK_VECTOR_KERNEL,
  ACL_RT_MODEL_TASK_VECTOR_ALL_KERNEL,
  ACL_RT_MODEL_TASK_UPDATE,
  ACL_RT_MODEL_TASK_NOP,
  ACL_RT_MODEL_TASK_PREPROCESS_KERNEL,
  ACL_RT_MODEL_TASK_SUPER_KERNEL,
  ACL_RT_MODEL_TASK_MEM_EVENT_RECORD,
  ACL_RT_MODEL_TASK_MEM_EVENT_WAIT,
} aclrtModelTaskType_t;

#ifndef CCE_RUNTIME_RT_MODEL_H
typedef aclrtModelTaskType_t rtModelTaskType_t;
#define RT_MODEL_TASK_KERNEL ACL_RT_MODEL_TASK_KERNEL
#define RT_MODEL_TASK_EVENT_RECORD ACL_RT_MODEL_TASK_EVENT_RECORD
#define RT_MODEL_TASK_EVENT_WAIT ACL_RT_MODEL_TASK_EVENT_WAIT
#define RT_MODEL_TASK_FUSION_START ACL_RT_MODEL_TASK_FUSION_START
#define RT_MODEL_TASK_FUSION_END ACL_RT_MODEL_TASK_FUSION_END
#define RT_MODEL_TASK_KERNEL_EX ACL_RT_MODEL_TASK_KERNEL_EX
#define RT_MODEL_TASK_HCCL ACL_RT_MODEL_TASK_HCCL
#define RT_MODEL_TASK_STREAM_SWITCH ACL_RT_MODEL_TASK_STREAM_SWITCH
#define RT_MODEL_TASK_STREAM_ACTIVE ACL_RT_MODEL_TASK_STREAM_ACTIVE
#define RT_MODEL_TASK_LABEL_SET ACL_RT_MODEL_TASK_LABEL_SET
#define RT_MODEL_TASK_LABEL_SWITCH ACL_RT_MODEL_TASK_LABEL_SWITCH
#define RT_MODEL_TASK_LABEL_GOTO ACL_RT_MODEL_TASK_LABEL_GOTO
#define RT_MODEL_TASK_PROFILER_TRACE ACL_RT_MODEL_TASK_PROFILER_TRACE
#define RT_MODEL_TASK_MEMCPY_ASYNC ACL_RT_MODEL_TASK_MEMCPY_ASYNC
#define RT_MODEL_TASK_NOTIFY_RECORD ACL_RT_MODEL_TASK_NOTIFY_RECORD
#define RT_MODEL_TASK_NOTIFY_WAIT ACL_RT_MODEL_TASK_NOTIFY_WAIT
#define RT_MODEL_TASK_REDUCE_ASYNC ACL_RT_MODEL_TASK_REDUCE_ASYNC
#define RT_MODEL_TASK_RDMA_SEND ACL_RT_MODEL_TASK_RDMA_SEND
#define RT_MODEL_TASK_EVENT_RESET ACL_RT_MODEL_TASK_EVENT_RESET
#define RT_MODEL_TASK_MODEL_END_GRAPH ACL_RT_MODEL_TASK_MODEL_END_GRAPH
#define RT_MODEL_TASK_STREAM_SWITCH_N ACL_RT_MODEL_TASK_STREAM_SWITCH_N
#define RT_MODEL_TASK_RDMA_DB_SEND ACL_RT_MODEL_TASK_RDMA_DB_SEND
#define RT_MODEL_TASK_MEMCPY_ADDR_ASYNC ACL_RT_MODEL_TASK_MEMCPY_ADDR_ASYNC
#define RT_MODEL_TASK_STREAM_LABEL_SWITCH_BY_INDEX ACL_RT_MODEL_TASK_STREAM_LABEL_SWITCH_BY_INDEX
#define RT_MODEL_TASK_STREAM_LABEL_GOTO ACL_RT_MODEL_TASK_STREAM_LABEL_GOTO
#define RT_MODEL_TASK_MODEL_EXIT ACL_RT_MODEL_TASK_MODEL_EXIT
#define RT_MODEL_TASK_ALL_KERNEL ACL_RT_MODEL_TASK_ALL_KERNEL
#define RT_MODEL_TASK_PROFILER_TRACE_EX ACL_RT_MODEL_TASK_PROFILER_TRACE_EX
#define RT_MODEL_TASK_FFTS_TASK ACL_RT_MODEL_TASK_FFTS_TASK
#define RT_MODEL_TASK_FFTS_PLUS_TASK ACL_RT_MODEL_TASK_FFTS_PLUS_TASK
#define RT_MODEL_TASK_DSA_TASK ACL_RT_MODEL_TASK_DSA_TASK
#define RT_MODEL_TASK_CMO ACL_RT_MODEL_TASK_CMO
#define RT_MODEL_TASK_BARRIER ACL_RT_MODEL_TASK_BARRIER
#define RT_MODEL_TASK_NPU_GET_FLOAT_STATUS ACL_RT_MODEL_TASK_NPU_GET_FLOAT_STATUS
#define RT_MODEL_TASK_NPU_CLEAR_FLOAT_STATUS ACL_RT_MODEL_TASK_NPU_CLEAR_FLOAT_STATUS
#define RT_MODEL_TASK_DVPP ACL_RT_MODEL_TASK_DVPP
#define RT_MODEL_TASK_NPU_GET_DEBUG_FLOAT_STATUS ACL_RT_MODEL_TASK_NPU_GET_DEBUG_FLOAT_STATUS
#define RT_MODEL_TASK_NPU_CLEAR_DEBUG_FLOAT_STATUS ACL_RT_MODEL_TASK_NPU_CLEAR_DEBUG_FLOAT_STATUS
#define RT_MODEL_TASK_CMO_ADDR ACL_RT_MODEL_TASK_CMO_ADDR
#define RT_MODEL_TASK_VECTOR_KERNEL ACL_RT_MODEL_TASK_VECTOR_KERNEL
#define RT_MODEL_TASK_VECTOR_ALL_KERNEL ACL_RT_MODEL_TASK_VECTOR_ALL_KERNEL
#define RT_MODEL_TASK_UPDATE ACL_RT_MODEL_TASK_UPDATE
#define RT_MODEL_TASK_NOP ACL_RT_MODEL_TASK_NOP
#define RT_MODEL_TASK_PREPROCESS_KERNEL ACL_RT_MODEL_TASK_PREPROCESS_KERNEL
#define RT_MODEL_TASK_SUPER_KERNEL ACL_RT_MODEL_TASK_SUPER_KERNEL
#define RT_MODEL_TASK_MEM_EVENT_RECORD ACL_RT_MODEL_TASK_MEM_EVENT_RECORD
#define RT_MODEL_TASK_MEM_EVENT_WAIT ACL_RT_MODEL_TASK_MEM_EVENT_WAIT
#define RT_MODEL_TASK_FUSION_KERNEL (ACL_RT_MODEL_TASK_MEM_EVENT_WAIT + 1)
#endif  // CCE_RUNTIME_RT_MODEL_H
#endif  // FRAMEWORK_COMMON_RUNTIME_MODEL_GE_H