From 0147d6b88fd9e129d6f3d2052eddea5d50ce940c Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Thu, 23 Oct 2014 11:28:16 +0100 Subject: [PATCH] Move virNodeDevice related APIs out of libvirt.h.in Create a new libvirt-nodedev.h file to hold the public API definitions for the virNodeDevice type. This header file is not self-contained, so applications will not directly include it. They will continue to #include --- docs/apibuild.py | 1 + include/libvirt/Makefile.am | 1 + include/libvirt/libvirt-nodedev.h | 125 ++++++++++++++++++++++++++++++ include/libvirt/libvirt.h.in | 96 +---------------------- libvirt.spec.in | 1 + mingw-libvirt.spec.in | 2 + 6 files changed, 131 insertions(+), 95 deletions(-) create mode 100644 include/libvirt/libvirt-nodedev.h diff --git a/docs/apibuild.py b/docs/apibuild.py index 9a7cb72610..32ac773e9c 100755 --- a/docs/apibuild.py +++ b/docs/apibuild.py @@ -25,6 +25,7 @@ included_files = { "libvirt-domain-snapshot.h": "header with general libvirt API definitions", "libvirt-interface.h": "header with general libvirt API definitions", "libvirt-network.h": "header with general libvirt API definitions", + "libvirt-nodedev.h": "header with general libvirt API definitions", "libvirt-nwfilter.h": "header with general libvirt API definitions", "virterror.h": "header with error specific API definitions", "libvirt.c": "Main interfaces for the libvirt library", diff --git a/include/libvirt/Makefile.am b/include/libvirt/Makefile.am index e1691049b6..75142d81e4 100644 --- a/include/libvirt/Makefile.am +++ b/include/libvirt/Makefile.am @@ -22,6 +22,7 @@ virinc_HEADERS = libvirt.h \ libvirt-domain-snapshot.h \ libvirt-interface.h \ libvirt-network.h \ + libvirt-nodedev.h \ libvirt-nwfilter.h \ libvirt-lxc.h \ libvirt-qemu.h \ diff --git a/include/libvirt/libvirt-nodedev.h b/include/libvirt/libvirt-nodedev.h new file mode 100644 index 0000000000..cd0b5486fc --- /dev/null +++ b/include/libvirt/libvirt-nodedev.h @@ -0,0 +1,125 @@ +/* + * libvirt-nodedev.h + * Summary: APIs for management of nodedevs + * Description: Provides APIs for the management of nodedevs + * Author: Daniel Veillard + * + * Copyright (C) 2006-2014 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 + * . + */ + +#ifndef __VIR_LIBVIRT_NODEDEV_H__ +# define __VIR_LIBVIRT_NODEDEV_H__ + +# ifndef __VIR_LIBVIRT_H_INCLUDES__ +# error "Don't include this file directly, only use libvirt/libvirt.h" +# endif + + +/** + * virNodeDevice: + * + * A virNodeDevice contains a node (host) device details. + */ + +typedef struct _virNodeDevice virNodeDevice; + +/** + * virNodeDevicePtr: + * + * A virNodeDevicePtr is a pointer to a virNodeDevice structure. Get + * one via virNodeDeviceLookupByName, or virNodeDeviceCreate. Be sure + * to call virNodeDeviceFree when done using a virNodeDevicePtr obtained + * from any of the above functions to avoid leaking memory. + */ + +typedef virNodeDevice *virNodeDevicePtr; + + +int virNodeNumOfDevices (virConnectPtr conn, + const char *cap, + unsigned int flags); + +int virNodeListDevices (virConnectPtr conn, + const char *cap, + char **const names, + int maxnames, + unsigned int flags); +/* + * virConnectListAllNodeDevices: + * + * Flags used to filter the returned node devices. Flags in each group + * are exclusive. Currently only one group to filter the devices by cap + * type. + */ +typedef enum { + VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM = 1 << 0, /* System capability */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV = 1 << 1, /* PCI device */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_DEV = 1 << 2, /* USB device */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_INTERFACE = 1 << 3, /* USB interface */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_NET = 1 << 4, /* Network device */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_HOST = 1 << 5, /* SCSI Host Bus Adapter */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_TARGET = 1 << 6, /* SCSI Target */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI = 1 << 7, /* SCSI device */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE = 1 << 8, /* Storage device */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST = 1 << 9, /* FC Host Bus Adapter */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS = 1 << 10, /* Capable of vport */ + VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC = 1 << 11, /* Capable of scsi_generic */ +} virConnectListAllNodeDeviceFlags; + +int virConnectListAllNodeDevices (virConnectPtr conn, + virNodeDevicePtr **devices, + unsigned int flags); + +virNodeDevicePtr virNodeDeviceLookupByName (virConnectPtr conn, + const char *name); + +virNodeDevicePtr virNodeDeviceLookupSCSIHostByWWN (virConnectPtr conn, + const char *wwnn, + const char *wwpn, + unsigned int flags); + +const char * virNodeDeviceGetName (virNodeDevicePtr dev); + +const char * virNodeDeviceGetParent (virNodeDevicePtr dev); + +int virNodeDeviceNumOfCaps (virNodeDevicePtr dev); + +int virNodeDeviceListCaps (virNodeDevicePtr dev, + char **const names, + int maxnames); + +char * virNodeDeviceGetXMLDesc (virNodeDevicePtr dev, + unsigned int flags); + +int virNodeDeviceRef (virNodeDevicePtr dev); +int virNodeDeviceFree (virNodeDevicePtr dev); + +int virNodeDeviceDettach (virNodeDevicePtr dev); +int virNodeDeviceDetachFlags(virNodeDevicePtr dev, + const char *driverName, + unsigned int flags); +int virNodeDeviceReAttach (virNodeDevicePtr dev); +int virNodeDeviceReset (virNodeDevicePtr dev); + +virNodeDevicePtr virNodeDeviceCreateXML (virConnectPtr conn, + const char *xmlDesc, + unsigned int flags); + +int virNodeDeviceDestroy (virNodeDevicePtr dev); + + +#endif /* __VIR_LIBVIRT_NODEDEV_H__ */ diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index c37ab28fc1..14cd205f48 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -3322,101 +3322,6 @@ virDomainPtr virDomainCreateLinux (virConnectPtr conn, const char *xmlDesc, unsigned int flags); -/* - * Host device enumeration - */ - -/** - * virNodeDevice: - * - * A virNodeDevice contains a node (host) device details. - */ - -typedef struct _virNodeDevice virNodeDevice; - -/** - * virNodeDevicePtr: - * - * A virNodeDevicePtr is a pointer to a virNodeDevice structure. Get - * one via virNodeDeviceLookupByName, or virNodeDeviceCreate. Be sure - * to call virNodeDeviceFree when done using a virNodeDevicePtr obtained - * from any of the above functions to avoid leaking memory. - */ - -typedef virNodeDevice *virNodeDevicePtr; - - -int virNodeNumOfDevices (virConnectPtr conn, - const char *cap, - unsigned int flags); - -int virNodeListDevices (virConnectPtr conn, - const char *cap, - char **const names, - int maxnames, - unsigned int flags); -/* - * virConnectListAllNodeDevices: - * - * Flags used to filter the returned node devices. Flags in each group - * are exclusive. Currently only one group to filter the devices by cap - * type. - */ -typedef enum { - VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM = 1 << 0, /* System capability */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV = 1 << 1, /* PCI device */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_DEV = 1 << 2, /* USB device */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_INTERFACE = 1 << 3, /* USB interface */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_NET = 1 << 4, /* Network device */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_HOST = 1 << 5, /* SCSI Host Bus Adapter */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_TARGET = 1 << 6, /* SCSI Target */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI = 1 << 7, /* SCSI device */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE = 1 << 8, /* Storage device */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST = 1 << 9, /* FC Host Bus Adapter */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS = 1 << 10, /* Capable of vport */ - VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC = 1 << 11, /* Capable of scsi_generic */ -} virConnectListAllNodeDeviceFlags; - -int virConnectListAllNodeDevices (virConnectPtr conn, - virNodeDevicePtr **devices, - unsigned int flags); - -virNodeDevicePtr virNodeDeviceLookupByName (virConnectPtr conn, - const char *name); - -virNodeDevicePtr virNodeDeviceLookupSCSIHostByWWN (virConnectPtr conn, - const char *wwnn, - const char *wwpn, - unsigned int flags); - -const char * virNodeDeviceGetName (virNodeDevicePtr dev); - -const char * virNodeDeviceGetParent (virNodeDevicePtr dev); - -int virNodeDeviceNumOfCaps (virNodeDevicePtr dev); - -int virNodeDeviceListCaps (virNodeDevicePtr dev, - char **const names, - int maxnames); - -char * virNodeDeviceGetXMLDesc (virNodeDevicePtr dev, - unsigned int flags); - -int virNodeDeviceRef (virNodeDevicePtr dev); -int virNodeDeviceFree (virNodeDevicePtr dev); - -int virNodeDeviceDettach (virNodeDevicePtr dev); -int virNodeDeviceDetachFlags(virNodeDevicePtr dev, - const char *driverName, - unsigned int flags); -int virNodeDeviceReAttach (virNodeDevicePtr dev); -int virNodeDeviceReset (virNodeDevicePtr dev); - -virNodeDevicePtr virNodeDeviceCreateXML (virConnectPtr conn, - const char *xmlDesc, - unsigned int flags); - -int virNodeDeviceDestroy (virNodeDevicePtr dev); /* * Domain Event Notification @@ -5202,6 +5107,7 @@ typedef virMemoryParameter *virMemoryParameterPtr; #include #include #include +#include #include #undef __VIR_LIBVIRT_H_INCLUDES__ diff --git a/libvirt.spec.in b/libvirt.spec.in index 7a40829805..15d267a087 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -2254,6 +2254,7 @@ exit 0 %{_includedir}/libvirt/libvirt-domain-snapshot.h %{_includedir}/libvirt/libvirt-interface.h %{_includedir}/libvirt/libvirt-network.h +%{_includedir}/libvirt/libvirt-nodedev.h %{_includedir}/libvirt/libvirt-nwfilter.h %{_includedir}/libvirt/libvirt-qemu.h %{_includedir}/libvirt/libvirt-lxc.h diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in index 864c8f4133..828238b601 100644 --- a/mingw-libvirt.spec.in +++ b/mingw-libvirt.spec.in @@ -232,6 +232,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh %{mingw32_includedir}/libvirt/libvirt-domain-snapshot.h %{mingw32_includedir}/libvirt/libvirt-interface.h %{mingw32_includedir}/libvirt/libvirt-network.h +%{mingw32_includedir}/libvirt/libvirt-nodedev.h %{mingw32_includedir}/libvirt/libvirt-nwfilter.h %{mingw32_includedir}/libvirt/virterror.h %{mingw32_includedir}/libvirt/libvirt-lxc.h @@ -299,6 +300,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh %{mingw64_includedir}/libvirt/libvirt-domain-snapshot.h %{mingw64_includedir}/libvirt/libvirt-interface.h %{mingw64_includedir}/libvirt/libvirt-network.h +%{mingw64_includedir}/libvirt/libvirt-nodedev.h %{mingw64_includedir}/libvirt/libvirt-nwfilter.h %{mingw64_includedir}/libvirt/virterror.h %{mingw64_includedir}/libvirt/libvirt-lxc.h