1 /* 2 * Copyright 2021 Google LLC 3 * SPDX-License-Identifier: MIT 4 */ 5 6 #ifndef RENDER_SOCKET_H 7 #define RENDER_SOCKET_H 8 9 #include "render_common.h" 10 11 struct render_socket { 12 int fd; 13 }; 14 15 bool 16 render_socket_pair(int out_fds[static 2]); 17 18 bool 19 render_socket_is_seqpacket(int fd); 20 21 void 22 render_socket_init(struct render_socket *socket, int fd); 23 24 void 25 render_socket_fini(struct render_socket *socket); 26 27 bool 28 render_socket_receive_request(struct render_socket *socket, 29 void *data, 30 size_t max_size, 31 size_t *out_size); 32 33 bool 34 render_socket_receive_request_with_fds(struct render_socket *socket, 35 void *data, 36 size_t max_size, 37 size_t *out_size, 38 int *fds, 39 int max_fd_count, 40 int *out_fd_count); 41 42 bool 43 render_socket_receive_data(struct render_socket *socket, void *data, size_t size); 44 45 bool 46 render_socket_send_reply(struct render_socket *socket, const void *data, size_t size); 47 48 bool 49 render_socket_send_reply_with_fds(struct render_socket *socket, 50 const void *data, 51 size_t size, 52 const int *fds, 53 int fd_count); 54 55 #endif /* RENDER_SOCKET_H */ 56