mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
io: add QIOChannelSocket class
Implement a QIOChannel subclass that supports sockets I/O. The implementation is able to manage a single socket file descriptor, whether a TCP/UNIX listener, TCP/UNIX connection, or a UDP datagram. It provides APIs which can listen and connect either asynchronously or synchronously. Since there is no asynchronous DNS lookup API available, it uses the QIOTask helper for spawning a background thread to ensure non-blocking operation. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
b02db2d920
commit
559607ea17
13 changed files with 1736 additions and 1 deletions
19
trace-events
19
trace-events
|
@ -1817,3 +1817,22 @@ qio_task_thread_start(void *task, void *worker, void *opaque) "Task thread start
|
|||
qio_task_thread_run(void *task) "Task thread run task=%p"
|
||||
qio_task_thread_exit(void *task) "Task thread exit task=%p"
|
||||
qio_task_thread_result(void *task) "Task thread result task=%p"
|
||||
|
||||
# io/channel-socket.c
|
||||
qio_channel_socket_new(void *ioc) "Socket new ioc=%p"
|
||||
qio_channel_socket_new_fd(void *ioc, int fd) "Socket new ioc=%p fd=%d"
|
||||
qio_channel_socket_connect_sync(void *ioc, void *addr) "Socket connect sync ioc=%p addr=%p"
|
||||
qio_channel_socket_connect_async(void *ioc, void *addr) "Socket connect async ioc=%p addr=%p"
|
||||
qio_channel_socket_connect_fail(void *ioc) "Socket connect fail ioc=%p"
|
||||
qio_channel_socket_connect_complete(void *ioc, int fd) "Socket connect complete ioc=%p fd=%d"
|
||||
qio_channel_socket_listen_sync(void *ioc, void *addr) "Socket listen sync ioc=%p addr=%p"
|
||||
qio_channel_socket_listen_async(void *ioc, void *addr) "Socket listen async ioc=%p addr=%p"
|
||||
qio_channel_socket_listen_fail(void *ioc) "Socket listen fail ioc=%p"
|
||||
qio_channel_socket_listen_complete(void *ioc, int fd) "Socket listen complete ioc=%p fd=%d"
|
||||
qio_channel_socket_dgram_sync(void *ioc, void *localAddr, void *remoteAddr) "Socket dgram sync ioc=%p localAddr=%p remoteAddr=%p"
|
||||
qio_channel_socket_dgram_async(void *ioc, void *localAddr, void *remoteAddr) "Socket dgram async ioc=%p localAddr=%p remoteAddr=%p"
|
||||
qio_channel_socket_dgram_fail(void *ioc) "Socket dgram fail ioc=%p"
|
||||
qio_channel_socket_dgram_complete(void *ioc, int fd) "Socket dgram complete ioc=%p fd=%d"
|
||||
qio_channel_socket_accept(void *ioc) "Socket accept start ioc=%p"
|
||||
qio_channel_socket_accept_fail(void *ioc) "Socket accept fail ioc=%p"
|
||||
qio_channel_socket_accept_complete(void *ioc, void *cioc, int fd) "Socket accept complete ioc=%p cioc=%p fd=%d"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue