[libvirt] [PATCH 1/3] conf: Introduce virnodedeviceobj

Pavel Hrdina phrdina at redhat.com
Thu Mar 2 09:03:37 UTC 2017


On Wed, Mar 01, 2017 at 07:27:14PM -0500, John Ferlan wrote:
> Move all the NodeDeviceObj API's into their own module virnodedeviceobj
> from the node_device_conf
> 
> Purely code motion at this point, plus adjustments to cleanly build.
> 
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
>  po/POTFILES.in                       |   1 +
>  src/Makefile.am                      |   3 +-
>  src/conf/node_device_conf.c          | 505 --------------------------------
>  src/conf/node_device_conf.h          |  50 ----
>  src/conf/virnodedeviceobj.c          | 542 +++++++++++++++++++++++++++++++++++
>  src/conf/virnodedeviceobj.h          |  78 +++++
>  src/libvirt_private.syms             |  23 +-
>  src/node_device/node_device_driver.h |   2 +-
>  src/test/test_driver.c               |   1 +
>  9 files changed, 638 insertions(+), 567 deletions(-)
>  create mode 100644 src/conf/virnodedeviceobj.c
>  create mode 100644 src/conf/virnodedeviceobj.h

[...]

> diff --git a/src/conf/virnodedeviceobj.h b/src/conf/virnodedeviceobj.h
> new file mode 100644
> index 0000000..6ad7fb1
> --- /dev/null
> +++ b/src/conf/virnodedeviceobj.h
> @@ -0,0 +1,78 @@
> +/*
> + * virnodedeviceobj.h: node device object handling for node devices
> + *                     (derived from node_device_conf.h)
> + *
> + * 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 __VIRNODEDEVICEOBJ_H__
> +# define __VIRNODEDEVICEOBJ_H__
> +
> +# include "internal.h"
> +# include "virthread.h"
> +
> +# include "node_device_conf.h"
> +# include "object_event.h"
> +
> +
> +typedef struct _virNodeDeviceDriverState virNodeDeviceDriverState;
> +typedef virNodeDeviceDriverState *virNodeDeviceDriverStatePtr;
> +struct _virNodeDeviceDriverState {
> +    virMutex lock;
> +
> +    virNodeDeviceObjList devs;		/* currently-known devices */
> +    void *privateData;			/* driver-specific private data */
> +
> +    /* Immutable pointer, self-locking APIs */
> +    virObjectEventStatePtr nodeDeviceEventState;
> +};
> +
> +

Since I'm the only one that tries to change the different coding style
between header and source files this is a kind reminder that it would
be nice to use the same coding style, placing the return value on
separate line.

Thanks,

Pavel

> +int virNodeDeviceHasCap(const virNodeDeviceObj *dev, const char *cap);
> +
> +virNodeDeviceObjPtr virNodeDeviceFindByName(virNodeDeviceObjListPtr devs,
> +                                            const char *name);
> +virNodeDeviceObjPtr
> +virNodeDeviceFindBySysfsPath(virNodeDeviceObjListPtr devs,
> +                             const char *sysfs_path)
> +    ATTRIBUTE_NONNULL(2);
> +
> +virNodeDeviceObjPtr virNodeDeviceAssignDef(virNodeDeviceObjListPtr devs,
> +                                           virNodeDeviceDefPtr def);
> +
> +void virNodeDeviceObjRemove(virNodeDeviceObjListPtr devs,
> +                            virNodeDeviceObjPtr *dev);
> +
> +int virNodeDeviceGetParentHost(virNodeDeviceObjListPtr devs,
> +                               virNodeDeviceDefPtr def,
> +                               int create);
> +
> +void virNodeDeviceObjFree(virNodeDeviceObjPtr dev);
> +
> +void virNodeDeviceObjListFree(virNodeDeviceObjListPtr devs);
> +
> +void virNodeDeviceObjLock(virNodeDeviceObjPtr obj);
> +void virNodeDeviceObjUnlock(virNodeDeviceObjPtr obj);
> +
> +typedef bool (*virNodeDeviceObjListFilter)(virConnectPtr conn,
> +                                           virNodeDeviceDefPtr def);
> +
> +int virNodeDeviceObjListExport(virConnectPtr conn,
> +                               virNodeDeviceObjList devobjs,
> +                               virNodeDevicePtr **devices,
> +                               virNodeDeviceObjListFilter filter,
> +                               unsigned int flags);
> +
> +#endif /* __VIRNODEDEVICEOBJ_H__ */
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index bce0487..8639979 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -694,23 +694,13 @@ virNetDevIPRouteParseXML;
>  virNodeDevCapsDefFree;
>  virNodeDevCapTypeFromString;
>  virNodeDevCapTypeToString;
> -virNodeDeviceAssignDef;
>  virNodeDeviceDefFormat;
>  virNodeDeviceDefFree;
>  virNodeDeviceDefParseFile;
>  virNodeDeviceDefParseNode;
>  virNodeDeviceDefParseString;
> -virNodeDeviceFindByName;
> -virNodeDeviceFindBySysfsPath;
> -virNodeDeviceGetParentHost;
>  virNodeDeviceGetParentName;
>  virNodeDeviceGetWWNs;
> -virNodeDeviceHasCap;
> -virNodeDeviceObjListExport;
> -virNodeDeviceObjListFree;
> -virNodeDeviceObjLock;
> -virNodeDeviceObjRemove;
> -virNodeDeviceObjUnlock;
>  
>  
>  # conf/node_device_event.h
> @@ -958,6 +948,19 @@ virDomainObjListRemoveLocked;
>  virDomainObjListRename;
>  
>  
> +# conf/virnodedeviceobj.h
> +virNodeDeviceAssignDef;
> +virNodeDeviceFindByName;
> +virNodeDeviceFindBySysfsPath;
> +virNodeDeviceGetParentHost;
> +virNodeDeviceHasCap;
> +virNodeDeviceObjListExport;
> +virNodeDeviceObjListFree;
> +virNodeDeviceObjLock;
> +virNodeDeviceObjRemove;
> +virNodeDeviceObjUnlock;
> +
> +
>  # conf/virsecretobj.h
>  virSecretLoadAllConfigs;
>  virSecretObjDeleteConfig;
> diff --git a/src/node_device/node_device_driver.h b/src/node_device/node_device_driver.h
> index 56f89ab..bc8af8a 100644
> --- a/src/node_device/node_device_driver.h
> +++ b/src/node_device/node_device_driver.h
> @@ -26,7 +26,7 @@
>  
>  # include "internal.h"
>  # include "driver.h"
> -# include "node_device_conf.h"
> +# include "virnodedeviceobj.h"
>  
>  # define LINUX_NEW_DEVICE_WAIT_TIME 60
>  
> diff --git a/src/test/test_driver.c b/src/test/test_driver.c
> index 314f08c..c6214c6 100644
> --- a/src/test/test_driver.c
> +++ b/src/test/test_driver.c
> @@ -51,6 +51,7 @@
>  #include "storage_conf.h"
>  #include "storage_event.h"
>  #include "node_device_conf.h"
> +#include "virnodedeviceobj.h"
>  #include "node_device_event.h"
>  #include "virxml.h"
>  #include "virthread.h"
> -- 
> 2.9.3
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170302/abc7b00a/attachment-0001.sig>


More information about the libvir-list mailing list