1#pragma once
2
3#include "ggml-backend-impl.h"
4#include "ggml-backend.h"
5#include "ggml-impl.h"
6#include "shared/api_remoting.h"
7
8#include <cstdarg>
9#include <cstdio>
10#include <cstdlib>
11
12extern ggml_backend_reg_t reg;
13extern ggml_backend_dev_t dev;
14extern ggml_backend_t bck;
15
16struct virgl_apir_callbacks {
17 const char * (*get_config)(uint32_t virgl_ctx_id, const char * key);
18 void * (*get_shmem_ptr)(uint32_t virgl_ctx_id, uint32_t res_id);
19};
20
21extern "C" {
22ApirLoadLibraryReturnCode apir_backend_initialize(uint32_t virgl_ctx_id, struct virgl_apir_callbacks *virgl_cbs);
23void apir_backend_deinit(uint32_t virgl_ctx_id);
24uint32_t apir_backend_dispatcher(uint32_t virgl_ctx_id,
25 virgl_apir_callbacks * virgl_cbs,
26 uint32_t cmd_type,
27 char * dec_cur,
28 const char * dec_end,
29 char * enc_cur,
30 const char * enc_end,
31 char ** enc_cur_after);
32}