Commit 250f53dd authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/berrange/tags/pull-io-next-2016-02-16-1' into staging



Merge I/O fixes 2016/02/16 v1

# gpg: Signature made Tue 16 Feb 2016 15:42:29 GMT using RSA key ID 15104FDF
# gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>"
# gpg:                 aka "Daniel P. Berrange <berrange@redhat.com>"

* remotes/berrange/tags/pull-io-next-2016-02-16-1:
  io: convert QIOChannelBuffer to use uint8_t instead of char
  io: introduce helper for creating channels from file descriptors
  io: improve docs for QIOChannelSocket async functions

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents d5db2ec1 e8f117f3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ struct QIOChannelBuffer {
    size_t capacity; /* Total allocated memory */
    size_t usage;    /* Current size of data */
    size_t offset;   /* Offset for future I/O ops */
    char *data;
    uint8_t *data;
};


+9 −2
Original line number Diff line number Diff line
@@ -105,7 +105,9 @@ int qio_channel_socket_connect_sync(QIOChannelSocket *ioc,
 * Attempt to connect to the address @addr. This method
 * will run in the background so the caller will regain
 * execution control immediately. The function @callback
 * will be invoked on completion or failure.
 * will be invoked on completion or failure. The @addr
 * parameter will be copied, so may be freed as soon
 * as this function returns without waiting for completion.
 */
void qio_channel_socket_connect_async(QIOChannelSocket *ioc,
                                      SocketAddress *addr,
@@ -140,7 +142,9 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *ioc,
 * Attempt to listen to the address @addr. This method
 * will run in the background so the caller will regain
 * execution control immediately. The function @callback
 * will be invoked on completion or failure.
 * will be invoked on completion or failure. The @addr
 * parameter will be copied, so may be freed as soon
 * as this function returns without waiting for completion.
 */
void qio_channel_socket_listen_async(QIOChannelSocket *ioc,
                                     SocketAddress *addr,
@@ -181,6 +185,9 @@ int qio_channel_socket_dgram_sync(QIOChannelSocket *ioc,
 * This method will run in the background so the caller
 * will regain execution control immediately. The function
 * @callback will be invoked on completion or failure.
 * The @localAddr and @remoteAddr parameters will be copied,
 * so may be freed as soon as this function returns without
 * waiting for completion.
 */
void qio_channel_socket_dgram_async(QIOChannelSocket *ioc,
                                    SocketAddress *localAddr,
+52 −0
Original line number Diff line number Diff line
/*
 * QEMU I/O channels utility APIs
 *
 * Copyright (c) 2016 Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
 *
 */

#ifndef QIO_CHANNEL_UTIL_H__
#define QIO_CHANNEL_UTIL_H__

#include "io/channel.h"

/*
 * This module provides helper functions that are useful when dealing
 * with QIOChannel objects
 */


/**
 * qio_channel_new_fd:
 * @fd: the file descriptor
 * @errp: pointer to a NULL-initialized error object
 *
 * Create a channel for performing I/O on the file
 * descriptor @fd. The particular subclass of QIOChannel
 * that is returned will depend on what underlying object
 * the file descriptor is associated with. It may be either
 * a QIOChannelSocket or a QIOChannelFile instance. Upon
 * success, the returned QIOChannel instance will own
 * the @fd file descriptor, and take responsibility for
 * closing it when no longer required. On failure, the
 * caller is responsible for closing @fd.
 *
 * Returns: the channel object, or NULL on error
 */
QIOChannel *qio_channel_new_fd(int fd,
                               Error **errp);

#endif /* QIO_CHANNEL_UTIL_H__ */
+1 −0
Original line number Diff line number Diff line
@@ -6,4 +6,5 @@ io-obj-y += channel-socket.o
io-obj-y += channel-tls.o
io-obj-y += channel-watch.o
io-obj-y += channel-websock.o
io-obj-y += channel-util.o
io-obj-y += task.o
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ qio_channel_buffer_new(size_t capacity)
    ioc = QIO_CHANNEL_BUFFER(object_new(TYPE_QIO_CHANNEL_BUFFER));

    if (capacity) {
        ioc->data = g_new0(char, capacity);
        ioc->data = g_new0(uint8_t, capacity);
        ioc->capacity = capacity;
    }

Loading