1#include "virtgpu.h"
 2
 3#include "ggml-remoting.h"
 4#include "backend/shared/apir_backend.h"
 5#include "backend/shared/apir_cs_ggml.h"
 6
 7#include "ggml-backend-impl.h"
 8
 9#define REMOTE_CALL_PREPARE(gpu_dev_name, encoder_name, apir_command_type__)                               \
10    do {                                                                                                   \
11        int32_t forward_flag = (int32_t) apir_command_type__;                                              \
12        encoder_name         = remote_call_prepare(gpu_dev_name, APIR_COMMAND_TYPE_FORWARD, forward_flag); \
13        if (!encoder_name) {                                                                               \
14            GGML_ABORT(GGML_VIRTGPU "%s: failed to prepare the remote call encoder", __func__);                       \
15        }                                                                                                  \
16    } while (0)
17
18#define REMOTE_CALL(gpu_dev_name, encoder_name, decoder_name, ret_name)                                           \
19    do {                                                                                                          \
20        ret_name = (ApirForwardReturnCode) remote_call(gpu_dev_name, encoder_name, &decoder_name, 0, NULL);       \
21        if (!decoder_name) {                                                                                      \
22            GGML_ABORT(GGML_VIRTGPU "%s: failed to kick the remote call", __func__);                                         \
23        }                                                                                                         \
24        if (ret_name < APIR_FORWARD_BASE_INDEX) {                                                                 \
25            GGML_ABORT(GGML_VIRTGPU "%s: failed to forward the API call: %s: code %d", __func__,                             \
26                       apir_forward_error(ret_name), ret_name);                                                   \
27        }                                                                                                         \
28        ret_name = (ApirForwardReturnCode) (ret_name - APIR_FORWARD_BASE_INDEX);                                  \
29    } while (0)