提交 78c01869 编写于 作者: M Michal Privoznik

nodedev: Introduce new drm cap

After 7f1bdec5 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: NMichal Privoznik <mprivozn@redhat.com>
上级 e5bda101
...@@ -78,6 +78,7 @@ typedef enum { ...@@ -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_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_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_SCSI_GENERIC = 1 << 11, /* Capable of scsi_generic */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM = 1 << 12, /* DRM device */
} virConnectListAllNodeDeviceFlags; } virConnectListAllNodeDeviceFlags;
int virConnectListAllNodeDevices (virConnectPtr conn, int virConnectListAllNodeDevices (virConnectPtr conn,
......
...@@ -2224,7 +2224,8 @@ virNodeDeviceMatch(virNodeDeviceObjPtr devobj, ...@@ -2224,7 +2224,8 @@ virNodeDeviceMatch(virNodeDeviceObjPtr devobj,
MATCH(STORAGE) || MATCH(STORAGE) ||
MATCH(FC_HOST) || MATCH(FC_HOST) ||
MATCH(VPORTS) || MATCH(VPORTS) ||
MATCH(SCSI_GENERIC))) MATCH(SCSI_GENERIC) ||
MATCH(DRM)))
return false; return false;
} }
......
...@@ -340,7 +340,8 @@ void virNodeDeviceObjUnlock(virNodeDeviceObjPtr obj); ...@@ -340,7 +340,8 @@ void virNodeDeviceObjUnlock(virNodeDeviceObjPtr obj);
VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE | \ VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE | \
VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST | \ VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST | \
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS | \ 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, typedef bool (*virNodeDeviceObjListFilter)(virConnectPtr conn,
virNodeDeviceDefPtr def); virNodeDeviceDefPtr def);
......
...@@ -97,6 +97,7 @@ virNodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags) ...@@ -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_FC_HOST
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS * 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
* *
* Returns the number of node devices found or -1 and sets @devices to NULL in * 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 * case of error. On success, the array stored into @devices is guaranteed to
......
...@@ -414,7 +414,7 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) ...@@ -414,7 +414,7 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
goto cleanup; goto cleanup;
} }
switch (cap_type) { switch ((virNodeDevCapType) cap_type) {
case VIR_NODE_DEV_CAP_SYSTEM: case VIR_NODE_DEV_CAP_SYSTEM:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM; flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM;
break; break;
...@@ -451,7 +451,10 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) ...@@ -451,7 +451,10 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
case VIR_NODE_DEV_CAP_SCSI_GENERIC: case VIR_NODE_DEV_CAP_SCSI_GENERIC:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC; flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC;
break; break;
default: case VIR_NODE_DEV_CAP_DRM:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM;
break;
case VIR_NODE_DEV_CAP_LAST:
break; break;
} }
} }
......
...@@ -3072,9 +3072,9 @@ List all of the devices available on the node that are known by libvirt. ...@@ -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 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 separated by comma, e.g. --cap pci,scsi, valid capability types include
'system', 'pci', 'usb_device', 'usb', 'net', 'scsi_host', 'scsi_target', 'system', 'pci', 'usb_device', 'usb', 'net', 'scsi_host', 'scsi_target',
'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic'. If I<--tree> is 'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm'.If I<--tree>
used, the output is formatted in a tree representing parents of each node. is used, the output is formatted in a tree representing parents of each
I<cap> and I<--tree> are mutually exclusive. node. I<cap> and I<--tree> are mutually exclusive.
=item B<nodedev-reattach> I<nodedev> =item B<nodedev-reattach> I<nodedev>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册