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