mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-02 03:11:12 +00:00
7c08fcc439
To avoid the need for duplicating implementations of virStream drivers, provide a generic implementation that can handle any FD based stream. This code is copied from the existing impl in the QEMU driver, with the locking moved into the stream impl, and addition of a read callback The FD stream code will refuse to operate on regular files or block devices, since those can't report EAGAIN properly when they would block on I/O * include/libvirt/virterror.h, include/libvirt/virterror.h: Add VIR_FROM_STREAM error domain * src/qemu/qemu_driver.c: Remove code obsoleted by the new generic streams driver. * src/fdstream.h, src/fdstream.c, src/fdstream.c, src/libvirt_private.syms: Generic reusable FD based streams
45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
/*
|
|
* fdstream.h: generic streams impl for file descriptors
|
|
*
|
|
* Copyright (C) 2009-2010 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, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef __VIR_FDSTREAM_H_
|
|
# define __VIR_FDSTREAM_H_
|
|
|
|
# include "internal.h"
|
|
# include <stdbool.h>
|
|
|
|
int virFDStreamOpen(virStreamPtr st,
|
|
int fd);
|
|
|
|
int virFDStreamConnectUNIX(virStreamPtr st,
|
|
const char *path,
|
|
bool abstract);
|
|
|
|
int virFDStreamOpenFile(virStreamPtr st,
|
|
const char *path,
|
|
int flags);
|
|
int virFDStreamCreateFile(virStreamPtr st,
|
|
const char *path,
|
|
int flags,
|
|
mode_t mode);
|
|
|
|
#endif /* __VIR_FDSTREAM_H_ */
|