1 /*
2 * Copyright 2021 Google LLC
3 * SPDX-License-Identifier: MIT
4 */
5
6 #ifndef PROXY_RENDERER_H
7 #define PROXY_RENDERER_H
8
9 #include <stddef.h>
10 #include <stdint.h>
11
12 struct iovec;
13 struct virgl_context;
14
15 struct proxy_renderer_cbs {
16 int (*get_server_fd)(uint32_t version);
17 };
18
19 #ifdef ENABLE_RENDER_SERVER
20
21 int
22 proxy_renderer_init(const struct proxy_renderer_cbs *cbs, uint32_t flags);
23
24 void
25 proxy_renderer_fini(void);
26
27 void
28 proxy_renderer_reset(void);
29
30 struct virgl_context *
31 proxy_context_create(uint32_t ctx_id,
32 uint32_t ctx_flags,
33 size_t debug_len,
34 const char *debug_name);
35
36 #else /* ENABLE_RENDER_SERVER */
37
38 static inline int
proxy_renderer_init(UNUSED const struct proxy_renderer_cbs * cbs,UNUSED uint32_t flags)39 proxy_renderer_init(UNUSED const struct proxy_renderer_cbs *cbs, UNUSED uint32_t flags)
40 {
41 virgl_log("Render server support was not enabled in virglrenderer\n");
42 return -1;
43 }
44
45 static inline void
proxy_renderer_fini(void)46 proxy_renderer_fini(void)
47 {
48 }
49
50 static inline void
proxy_renderer_reset(void)51 proxy_renderer_reset(void)
52 {
53 }
54
55 static inline struct virgl_context *
proxy_context_create(UNUSED uint32_t ctx_id,UNUSED uint32_t ctx_flags,UNUSED size_t debug_len,UNUSED const char * debug_name)56 proxy_context_create(UNUSED uint32_t ctx_id,
57 UNUSED uint32_t ctx_flags,
58 UNUSED size_t debug_len,
59 UNUSED const char *debug_name)
60 {
61 return NULL;
62 }
63
64 #endif /* ENABLE_RENDER_SERVER */
65
66 #endif /* PROXY_RENDERER_H */
67