/**
 * 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_ACL_RT_MODEL_H
#define CCE_RUNTIME_ACL_RT_MODEL_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;

#endif