/* * 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.1 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 */