// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

#ifndef NPKIT_EVENT_H_
#define NPKIT_EVENT_H_

#define NPKIT_EVENT_INVALID 0x0

#define NPKIT_EVENT_TIME_SYNC_GPU 0x1
#define NPKIT_EVENT_TIME_SYNC_CPU 0x2

#define NPKIT_EVENT_CONN_CUDA_IPC_WRITE_ENTRY 0x3
#define NPKIT_EVENT_CONN_CUDA_IPC_WRITE_EXIT 0x4
#define NPKIT_EVENT_CONN_CUDA_IPC_UPDATE_AND_SYNC_ENTRY 0x5
#define NPKIT_EVENT_CONN_CUDA_IPC_UPDATE_AND_SYNC_EXIT 0x6
#define NPKIT_EVENT_CONN_CUDA_IPC_FLUSH_ENTRY 0x7
#define NPKIT_EVENT_CONN_CUDA_IPC_FLUSH_EXIT 0x8

#define NPKIT_EVENT_CONN_IB_WRITE_ENTRY 0x9
#define NPKIT_EVENT_CONN_IB_WRITE_EXIT 0xA
#define NPKIT_EVENT_CONN_IB_UPDATE_AND_SYNC_ENTRY 0xB
#define NPKIT_EVENT_CONN_IB_UPDATE_AND_SYNC_EXIT 0xC
#define NPKIT_EVENT_CONN_IB_FLUSH_ENTRY 0xD
#define NPKIT_EVENT_CONN_IB_FLUSH_EXIT 0xE

#define NPKIT_EVENT_CONN_ETH_WRITE_ENTRY 0xF
#define NPKIT_EVENT_CONN_ETH_WRITE_EXIT 0x10
#define NPKIT_EVENT_CONN_ETH_UPDATE_AND_SYNC_ENTRY 0x11
#define NPKIT_EVENT_CONN_ETH_UPDATE_AND_SYNC_EXIT 0x12
#define NPKIT_EVENT_CONN_ETH_FLUSH_ENTRY 0x13
#define NPKIT_EVENT_CONN_ETH_FLUSH_EXIT 0x14
#define NPKIT_EVENT_CONN_ETH_RECV_META_ENTRY 0x15
#define NPKIT_EVENT_CONN_ETH_RECV_META_EXIT 0x16
#define NPKIT_EVENT_CONN_ETH_RECV_DATA_ENTRY 0x17
#define NPKIT_EVENT_CONN_ETH_RECV_DATA_EXIT 0x18

#define NPKIT_EVENT_EXECUTOR_INIT_ENTRY 0x19
#define NPKIT_EVENT_EXECUTOR_INIT_EXIT 0x1A

#define NPKIT_EVENT_KERNEL_ALLREDUCE_ENTRY 0x1B
#define NPKIT_EVENT_KERNEL_ALLREDUCE_EXIT 0x1C

#define NPKIT_EVENT_EXECUTOR_OP_BASE_ENTRY 0x1D
#define NPKIT_EVENT_EXECUTOR_OP_BASE_EXIT 0x31

#endif
