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_SOCKET_H 7*bbecb9d1SAndroid Build Coastguard Worker #define RENDER_SOCKET_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 struct render_socket { 12*bbecb9d1SAndroid Build Coastguard Worker int fd; 13*bbecb9d1SAndroid Build Coastguard Worker }; 14*bbecb9d1SAndroid Build Coastguard Worker 15*bbecb9d1SAndroid Build Coastguard Worker bool 16*bbecb9d1SAndroid Build Coastguard Worker render_socket_pair(int out_fds[static 2]); 17*bbecb9d1SAndroid Build Coastguard Worker 18*bbecb9d1SAndroid Build Coastguard Worker bool 19*bbecb9d1SAndroid Build Coastguard Worker render_socket_is_seqpacket(int fd); 20*bbecb9d1SAndroid Build Coastguard Worker 21*bbecb9d1SAndroid Build Coastguard Worker void 22*bbecb9d1SAndroid Build Coastguard Worker render_socket_init(struct render_socket *socket, int fd); 23*bbecb9d1SAndroid Build Coastguard Worker 24*bbecb9d1SAndroid Build Coastguard Worker void 25*bbecb9d1SAndroid Build Coastguard Worker render_socket_fini(struct render_socket *socket); 26*bbecb9d1SAndroid Build Coastguard Worker 27*bbecb9d1SAndroid Build Coastguard Worker bool 28*bbecb9d1SAndroid Build Coastguard Worker render_socket_receive_request(struct render_socket *socket, 29*bbecb9d1SAndroid Build Coastguard Worker void *data, 30*bbecb9d1SAndroid Build Coastguard Worker size_t max_size, 31*bbecb9d1SAndroid Build Coastguard Worker size_t *out_size); 32*bbecb9d1SAndroid Build Coastguard Worker 33*bbecb9d1SAndroid Build Coastguard Worker bool 34*bbecb9d1SAndroid Build Coastguard Worker render_socket_receive_request_with_fds(struct render_socket *socket, 35*bbecb9d1SAndroid Build Coastguard Worker void *data, 36*bbecb9d1SAndroid Build Coastguard Worker size_t max_size, 37*bbecb9d1SAndroid Build Coastguard Worker size_t *out_size, 38*bbecb9d1SAndroid Build Coastguard Worker int *fds, 39*bbecb9d1SAndroid Build Coastguard Worker int max_fd_count, 40*bbecb9d1SAndroid Build Coastguard Worker int *out_fd_count); 41*bbecb9d1SAndroid Build Coastguard Worker 42*bbecb9d1SAndroid Build Coastguard Worker bool 43*bbecb9d1SAndroid Build Coastguard Worker render_socket_receive_data(struct render_socket *socket, void *data, size_t size); 44*bbecb9d1SAndroid Build Coastguard Worker 45*bbecb9d1SAndroid Build Coastguard Worker bool 46*bbecb9d1SAndroid Build Coastguard Worker render_socket_send_reply(struct render_socket *socket, const void *data, size_t size); 47*bbecb9d1SAndroid Build Coastguard Worker 48*bbecb9d1SAndroid Build Coastguard Worker bool 49*bbecb9d1SAndroid Build Coastguard Worker render_socket_send_reply_with_fds(struct render_socket *socket, 50*bbecb9d1SAndroid Build Coastguard Worker const void *data, 51*bbecb9d1SAndroid Build Coastguard Worker size_t size, 52*bbecb9d1SAndroid Build Coastguard Worker const int *fds, 53*bbecb9d1SAndroid Build Coastguard Worker int fd_count); 54*bbecb9d1SAndroid Build Coastguard Worker 55*bbecb9d1SAndroid Build Coastguard Worker #endif /* RENDER_SOCKET_H */ 56