xref: /aosp_15_r20/external/virglrenderer/server/render_server.h (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1 /*
2  * Copyright 2021 Google LLC
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #ifndef RENDER_SERVER_H
7 #define RENDER_SERVER_H
8 
9 #include "render_common.h"
10 
11 enum render_server_state {
12    RENDER_SERVER_STATE_RUN,
13    RENDER_SERVER_STATE_SUBPROCESS,
14 };
15 
16 struct render_server {
17    enum render_server_state state;
18 
19    /* only initialized in subprocesses */
20    struct render_context_args *context_args;
21 
22    /* options */
23    int client_fd;
24    const char *worker_seccomp_bpf;
25    const char *worker_seccomp_minijail_policy;
26    bool worker_seccomp_minijail_log;
27 
28    struct render_worker_jail *worker_jail;
29 
30    /* only one client in the current design */
31    struct render_client *client;
32 };
33 
34 bool
35 render_server_main(int argc, char **argv, struct render_context_args *ctx_args);
36 
37 #endif /* RENDER_SERVER_H */
38