/* * Copyright 2021 Google LLC * SPDX-License-Identifier: MIT */ #ifndef RENDER_CONTEXT_H #define RENDER_CONTEXT_H #include "render_common.h" #include struct render_context { uint32_t ctx_id; struct render_socket socket; struct list_head head; char *name; size_t name_len; struct list_head resources; int shmem_fd; size_t shmem_size; void *shmem_ptr; atomic_uint *shmem_timelines; int timeline_count; /* optional */ int fence_eventfd; }; struct render_context_args { bool valid; uint32_t init_flags; uint32_t ctx_id; char ctx_name[32]; /* render_context_main always takes ownership even on errors */ int ctx_fd; }; bool render_context_main(const struct render_context_args *args); void render_context_update_timeline(struct render_context *ctx, uint32_t ring_idx, uint32_t val); #endif /* RENDER_CONTEXT_H */