xref: /openbmc/qemu/net/stream_data.h (revision 6fae7ce1488e3f5bdcc1747564ea68e7f6f0e931)
1 /*
2  * net stream generic functions
3  *
4  * Copyright Red Hat
5  *
6  * SPDX-License-Identifier: GPL-2.0-or-later
7  */
8 
9 typedef struct NetStreamData {
10     NetClientState nc;
11     QIOChannel *ioc;
12     guint ioc_read_tag;
13     guint ioc_write_tag;
14     SocketReadState rs;
15     unsigned int send_index;      /* number of bytes sent*/
16     QIOChannelFunc send;
17     /* server data */
18     QIOChannel *listen_ioc;
19     QIONetListener *listener;
20     QIONetListenerClientFunc listen;
21 } NetStreamData;
22 
23 ssize_t net_stream_data_receive(NetStreamData *d, const uint8_t *buf,
24                                 size_t size);
25 void net_stream_data_rs_finalize(SocketReadState *rs);
26 gboolean net_stream_data_send(QIOChannel *ioc, GIOCondition condition,
27                               NetStreamData *d);
28 int net_stream_data_client_connected(QIOTask *task, NetStreamData *d);
29 void net_stream_data_listen(QIONetListener *listener,
30                             QIOChannelSocket *cioc,
31                             NetStreamData *d);
32