/* * Copyright 2021 Google LLC * SPDX-License-Identifier: MIT */ #ifndef RENDER_SOCKET_H #define RENDER_SOCKET_H #include "render_common.h" struct render_socket { int fd; }; bool render_socket_pair(int out_fds[static 2]); bool render_socket_is_seqpacket(int fd); void render_socket_init(struct render_socket *socket, int fd); void render_socket_fini(struct render_socket *socket); bool render_socket_receive_request(struct render_socket *socket, void *data, size_t max_size, size_t *out_size); bool render_socket_receive_request_with_fds(struct render_socket *socket, void *data, size_t max_size, size_t *out_size, int *fds, int max_fd_count, int *out_fd_count); bool render_socket_receive_data(struct render_socket *socket, void *data, size_t size); bool render_socket_send_reply(struct render_socket *socket, const void *data, size_t size); bool render_socket_send_reply_with_fds(struct render_socket *socket, const void *data, size_t size, const int *fds, int fd_count); #endif /* RENDER_SOCKET_H */