Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2:Ports
libvirt
82c142b3-introduce-virDomainUSBAddressSet.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 82c142b3-introduce-virDomainUSBAddressSet.patch of Package libvirt
From 82c142b321a10c62aa0a10e3ae9ba603b2d7d155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com> Date: Wed, 12 Aug 2015 16:52:15 +0200 Subject: [PATCH] Introduce virDomainUSBAddressSet A new type to track USB addresses. Every <controller type='usb' index='i'/> is represented by an object of type virDomainUSBAddressHub located at buses[i]. Each of these hubs has up to 'nports' ports. If a port is occupied, it has the corresponding bit set in the 'ports' bitmap, e.g. port 1 would have the 0th bit set. If there is a hub on this port, then hubs[i] will point to this hub. --- src/conf/domain_addr.c | 42 ++++++++++++++++++++++++++++++++++++++++++ src/conf/domain_addr.h | 22 ++++++++++++++++++++++ src/libvirt_private.syms | 2 ++ 3 files changed, 66 insertions(+) Index: libvirt-2.0.0/src/conf/domain_addr.c =================================================================== --- libvirt-2.0.0.orig/src/conf/domain_addr.c +++ libvirt-2.0.0/src/conf/domain_addr.c @@ -1284,3 +1284,45 @@ virDomainUSBAddressPortFormat(unsigned i return NULL; return virBufferContentAndReset(&buf); } + + +virDomainUSBAddressSetPtr +virDomainUSBAddressSetCreate(void) +{ + virDomainUSBAddressSetPtr addrs; + + if (VIR_ALLOC(addrs) < 0) + return NULL; + + return addrs; +} + + +static void +virDomainUSBAddressHubFree(virDomainUSBAddressHubPtr hub) +{ + size_t i; + + if (!hub) + return; + + for (i = 0; i < hub->nports; i++) + virDomainUSBAddressHubFree(hub->ports[i]); + virBitmapFree(hub->portmap); + VIR_FREE(hub); +} + + +void +virDomainUSBAddressSetFree(virDomainUSBAddressSetPtr addrs) +{ + size_t i; + + if (!addrs) + return; + + for (i = 0; i < addrs->nbuses; i++) + virDomainUSBAddressHubFree(addrs->buses[i]); + VIR_FREE(addrs->buses); + VIR_FREE(addrs); +} Index: libvirt-2.0.0/src/conf/domain_addr.h =================================================================== --- libvirt-2.0.0.orig/src/conf/domain_addr.h +++ libvirt-2.0.0/src/conf/domain_addr.h @@ -249,4 +249,26 @@ char * virDomainUSBAddressPortFormat(unsigned int *port) ATTRIBUTE_NONNULL(1); +typedef struct _virDomainUSBAddressHub virDomainUSBAddressHub; +typedef virDomainUSBAddressHub *virDomainUSBAddressHubPtr; +struct _virDomainUSBAddressHub { + /* indexes are shifted by one: + * ports[0] represents port 1, because ports are numbered from 1 */ + virBitmapPtr portmap; + size_t nports; + virDomainUSBAddressHubPtr *ports; +}; + +struct _virDomainUSBAddressSet { + /* every <controller type='usb' index='i'> is represented + * as a hub at buses[i] */ + virDomainUSBAddressHubPtr *buses; + size_t nbuses; +}; +typedef struct _virDomainUSBAddressSet virDomainUSBAddressSet; +typedef virDomainUSBAddressSet *virDomainUSBAddressSetPtr; + +virDomainUSBAddressSetPtr virDomainUSBAddressSetCreate(void); +void virDomainUSBAddressSetFree(virDomainUSBAddressSetPtr addrs); + #endif /* __DOMAIN_ADDR_H__ */ Index: libvirt-2.0.0/src/libvirt_private.syms =================================================================== --- libvirt-2.0.0.orig/src/libvirt_private.syms +++ libvirt-2.0.0/src/libvirt_private.syms @@ -110,6 +110,8 @@ virDomainPCIControllerModelToConnectType virDomainUSBAddressPortFormat; virDomainUSBAddressPortFormatBuf; virDomainUSBAddressPortIsValid; +virDomainUSBAddressSetCreate; +virDomainUSBAddressSetFree; virDomainVirtioSerialAddrAssign; virDomainVirtioSerialAddrAutoAssign; virDomainVirtioSerialAddrIsComplete;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor