include/libvirt/libvirt-nodedev.h | 1 + src/conf/node_device_conf.c | 3 ++- src/conf/node_device_conf.h | 3 ++- src/libvirt-nodedev.c | 1 + tools/virsh-nodedev.c | 7 +++++-- tools/virsh.pod | 6 +++--- 6 files changed, 14 insertions(+), 7 deletions(-)
After 7f1bdec5fa0a0cd25 our nodedev driver is capable of
determining DRM devices (DRM stands for Direct Render Manager not
Digital rights management). There is still one bit missing
though: virConnectListAllNodeDevices() is capable of listing
either all devices or just those with specified capability. Well,
DRM capability is missing there.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
include/libvirt/libvirt-nodedev.h | 1 +
src/conf/node_device_conf.c | 3 ++-
src/conf/node_device_conf.h | 3 ++-
src/libvirt-nodedev.c | 1 +
tools/virsh-nodedev.c | 7 +++++--
tools/virsh.pod | 6 +++---
6 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/include/libvirt/libvirt-nodedev.h b/include/libvirt/libvirt-nodedev.h
index 4ff8b416a..85003903d 100644
--- a/include/libvirt/libvirt-nodedev.h
+++ b/include/libvirt/libvirt-nodedev.h
@@ -78,6 +78,7 @@ typedef enum {
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 */
+ VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM = 1 << 12, /* DRM device */
} virConnectListAllNodeDeviceFlags;
int virConnectListAllNodeDevices (virConnectPtr conn,
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index f996db115..b3063d9ec 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -2224,7 +2224,8 @@ virNodeDeviceMatch(virNodeDeviceObjPtr devobj,
MATCH(STORAGE) ||
MATCH(FC_HOST) ||
MATCH(VPORTS) ||
- MATCH(SCSI_GENERIC)))
+ MATCH(SCSI_GENERIC) ||
+ MATCH(DRM)))
return false;
}
diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
index be7e0e003..40e930a28 100644
--- a/src/conf/node_device_conf.h
+++ b/src/conf/node_device_conf.h
@@ -340,7 +340,8 @@ void virNodeDeviceObjUnlock(virNodeDeviceObjPtr obj);
VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE | \
VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST | \
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS | \
- VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC)
+ VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC | \
+ VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM)
typedef bool (*virNodeDeviceObjListFilter)(virConnectPtr conn,
virNodeDeviceDefPtr def);
diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c
index 6ea14b3e3..83376b0d9 100644
--- a/src/libvirt-nodedev.c
+++ b/src/libvirt-nodedev.c
@@ -97,6 +97,7 @@ virNodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags)
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC
+ * VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM
*
* Returns the number of node devices found or -1 and sets @devices to NULL in
* case of error. On success, the array stored into @devices is guaranteed to
diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c
index 9ede96886..c69144021 100644
--- a/tools/virsh-nodedev.c
+++ b/tools/virsh-nodedev.c
@@ -414,7 +414,7 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
goto cleanup;
}
- switch (cap_type) {
+ switch ((virNodeDevCapType) cap_type) {
case VIR_NODE_DEV_CAP_SYSTEM:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM;
break;
@@ -451,7 +451,10 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
case VIR_NODE_DEV_CAP_SCSI_GENERIC:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC;
break;
- default:
+ case VIR_NODE_DEV_CAP_DRM:
+ flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM;
+ break;
+ case VIR_NODE_DEV_CAP_LAST:
break;
}
}
diff --git a/tools/virsh.pod b/tools/virsh.pod
index a47040984..90f4b5a1f 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3072,9 +3072,9 @@ List all of the devices available on the node that are known by libvirt.
I<cap> is used to filter the list by capability types, the types must be
separated by comma, e.g. --cap pci,scsi, valid capability types include
'system', 'pci', 'usb_device', 'usb', 'net', 'scsi_host', 'scsi_target',
-'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic'. If I<--tree> is
-used, the output is formatted in a tree representing parents of each node.
-I<cap> and I<--tree> are mutually exclusive.
+'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm'.If I<--tree>
+is used, the output is formatted in a tree representing parents of each
+node. I<cap> and I<--tree> are mutually exclusive.
=item B<nodedev-reattach> I<nodedev>
--
2.11.0
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On Fri, Feb 17, 2017 at 04:19:38PM +0100, Michal Privoznik wrote: > After 7f1bdec5fa0a0cd25 our nodedev driver is capable of > determining DRM devices (DRM stands for Direct Render Manager not > Digital rights management). There is still one bit missing > though: virConnectListAllNodeDevices() is capable of listing > either all devices or just those with specified capability. Well, > DRM capability is missing there. > > Signed-off-by: Michal Privoznik <mprivozn@redhat.com> > --- > include/libvirt/libvirt-nodedev.h | 1 + > src/conf/node_device_conf.c | 3 ++- > src/conf/node_device_conf.h | 3 ++- > src/libvirt-nodedev.c | 1 + > tools/virsh-nodedev.c | 7 +++++-- > tools/virsh.pod | 6 +++--- > 6 files changed, 14 insertions(+), 7 deletions(-) ACK Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Hi ----- Original Message ----- > After 7f1bdec5fa0a0cd25 our nodedev driver is capable of > determining DRM devices (DRM stands for Direct Render Manager not > Digital rights management). There is still one bit missing > though: virConnectListAllNodeDevices() is capable of listing > either all devices or just those with specified capability. Well, > DRM capability is missing there. > > Signed-off-by: Michal Privoznik <mprivozn@redhat.com> looks good, Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > include/libvirt/libvirt-nodedev.h | 1 + > src/conf/node_device_conf.c | 3 ++- > src/conf/node_device_conf.h | 3 ++- > src/libvirt-nodedev.c | 1 + > tools/virsh-nodedev.c | 7 +++++-- > tools/virsh.pod | 6 +++--- > 6 files changed, 14 insertions(+), 7 deletions(-) > > diff --git a/include/libvirt/libvirt-nodedev.h > b/include/libvirt/libvirt-nodedev.h > index 4ff8b416a..85003903d 100644 > --- a/include/libvirt/libvirt-nodedev.h > +++ b/include/libvirt/libvirt-nodedev.h > @@ -78,6 +78,7 @@ typedef enum { > 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 */ > + VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM = 1 << 12, /* DRM device > */ > } virConnectListAllNodeDeviceFlags; > > int virConnectListAllNodeDevices (virConnectPtr conn, > diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c > index f996db115..b3063d9ec 100644 > --- a/src/conf/node_device_conf.c > +++ b/src/conf/node_device_conf.c > @@ -2224,7 +2224,8 @@ virNodeDeviceMatch(virNodeDeviceObjPtr devobj, > MATCH(STORAGE) || > MATCH(FC_HOST) || > MATCH(VPORTS) || > - MATCH(SCSI_GENERIC))) > + MATCH(SCSI_GENERIC) || > + MATCH(DRM))) > return false; > } > > diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h > index be7e0e003..40e930a28 100644 > --- a/src/conf/node_device_conf.h > +++ b/src/conf/node_device_conf.h > @@ -340,7 +340,8 @@ void virNodeDeviceObjUnlock(virNodeDeviceObjPtr obj); > VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE | \ > VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST | \ > VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS | \ > - VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC) > + VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC | \ > + VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM) > > typedef bool (*virNodeDeviceObjListFilter)(virConnectPtr conn, > virNodeDeviceDefPtr def); > diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c > index 6ea14b3e3..83376b0d9 100644 > --- a/src/libvirt-nodedev.c > +++ b/src/libvirt-nodedev.c > @@ -97,6 +97,7 @@ virNodeNumOfDevices(virConnectPtr conn, const char *cap, > unsigned int flags) > * VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST > * VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS > * VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC > + * VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM > * > * Returns the number of node devices found or -1 and sets @devices to NULL > in > * case of error. On success, the array stored into @devices is guaranteed > to > diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c > index 9ede96886..c69144021 100644 > --- a/tools/virsh-nodedev.c > +++ b/tools/virsh-nodedev.c > @@ -414,7 +414,7 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd > ATTRIBUTE_UNUSED) > goto cleanup; > } > > - switch (cap_type) { > + switch ((virNodeDevCapType) cap_type) { > case VIR_NODE_DEV_CAP_SYSTEM: > flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM; > break; > @@ -451,7 +451,10 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd > ATTRIBUTE_UNUSED) > case VIR_NODE_DEV_CAP_SCSI_GENERIC: > flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC; > break; > - default: > + case VIR_NODE_DEV_CAP_DRM: > + flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM; > + break; > + case VIR_NODE_DEV_CAP_LAST: > break; > } > } > diff --git a/tools/virsh.pod b/tools/virsh.pod > index a47040984..90f4b5a1f 100644 > --- a/tools/virsh.pod > +++ b/tools/virsh.pod > @@ -3072,9 +3072,9 @@ List all of the devices available on the node that are > known by libvirt. > I<cap> is used to filter the list by capability types, the types must be > separated by comma, e.g. --cap pci,scsi, valid capability types include > 'system', 'pci', 'usb_device', 'usb', 'net', 'scsi_host', 'scsi_target', > -'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic'. If I<--tree> is > -used, the output is formatted in a tree representing parents of each node. > -I<cap> and I<--tree> are mutually exclusive. > +'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm'.If I<--tree> > +is used, the output is formatted in a tree representing parents of each > +node. I<cap> and I<--tree> are mutually exclusive. > > =item B<nodedev-reattach> I<nodedev> > > -- > 2.11.0 > > -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2024 Red Hat, Inc.