1typedef enum ApirBackendCommandType {
 2
 3    /* device */
 4    APIR_COMMAND_TYPE_DEVICE_GET_DEVICE_COUNT = 0,
 5    APIR_COMMAND_TYPE_DEVICE_GET_COUNT        = 1,
 6    APIR_COMMAND_TYPE_DEVICE_GET_NAME         = 2,
 7    APIR_COMMAND_TYPE_DEVICE_GET_DESCRIPTION  = 3,
 8    APIR_COMMAND_TYPE_DEVICE_GET_TYPE         = 4,
 9    APIR_COMMAND_TYPE_DEVICE_GET_MEMORY       = 5,
10    APIR_COMMAND_TYPE_DEVICE_SUPPORTS_OP      = 6,
11    APIR_COMMAND_TYPE_DEVICE_GET_BUFFER_TYPE  = 7,
12    APIR_COMMAND_TYPE_DEVICE_GET_PROPS        = 8,
13    APIR_COMMAND_TYPE_DEVICE_BUFFER_FROM_PTR  = 9,
14
15    /* buffer-type */
16    APIR_COMMAND_TYPE_BUFFER_TYPE_GET_NAME       = 10,
17    APIR_COMMAND_TYPE_BUFFER_TYPE_GET_ALIGNMENT  = 11,
18    APIR_COMMAND_TYPE_BUFFER_TYPE_GET_MAX_SIZE   = 12,
19    APIR_COMMAND_TYPE_BUFFER_TYPE_IS_HOST        = 13,
20    APIR_COMMAND_TYPE_BUFFER_TYPE_ALLOC_BUFFER   = 14,
21    APIR_COMMAND_TYPE_BUFFER_TYPE_GET_ALLOC_SIZE = 15,
22
23    /* buffer */
24    APIR_COMMAND_TYPE_BUFFER_GET_BASE    = 16,
25    APIR_COMMAND_TYPE_BUFFER_SET_TENSOR  = 17,
26    APIR_COMMAND_TYPE_BUFFER_GET_TENSOR  = 18,
27    APIR_COMMAND_TYPE_BUFFER_CPY_TENSOR  = 19,
28    APIR_COMMAND_TYPE_BUFFER_CLEAR       = 20,
29    APIR_COMMAND_TYPE_BUFFER_FREE_BUFFER = 21,
30
31    /* backend */
32    APIR_COMMAND_TYPE_BACKEND_GRAPH_COMPUTE = 22,
33
34    // last command_type index + 1
35    APIR_BACKEND_DISPATCH_TABLE_COUNT = 23,
36} ApirBackendCommandType;