
On Fri, 2016-10-14 at 15:54 -0400, Laine Stump wrote:
There is an existing virDomainPCIAddressReserveNextSlot() which will reserve all functions of the next available PCI slot. One place in the qemu PCI address assignment code requires reserving a *single* function of the next available PCI slot. This patch modifies and renames virDomainPCIAddressReserveNextSlot() so that it can fulfill both the original purpose and the need to reserve a single function. (This is being done so that the abovementioned code in qemu can have its "kind of open coded" solution replaced with a call to this new function). --- Changes: Fixed indentation and comments, and removed unnecessary setting of lastaddr.function and lastaddr.multi. src/conf/domain_addr.c | 49 +++++++++++++++++++++++++++++++++++++++++++----- src/conf/domain_addr.h | 7 +++++++ src/libvirt_private.syms | 1 + 3 files changed, 52 insertions(+), 5 deletions(-) diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index 080d882..1710220 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -691,29 +691,68 @@ virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs, return 0; } + +/** + * virDomainPCIAddressReserveNextAddr: + * + * find the next *completely unreserved* slot with compatible + * connection @flags, mark either one function or the entire + * slot as in-use (according to @function and @reserveEntireSlot), + * and set @dev->addr.pci with this newly reserved address.
This looks much much better...
+ * @addrs: a set of PCI addresses. + * + * @dev: virDomainDeviceInfo that should get the new address. + * + * @flags: CONNECT_TYPE flags for the device that needs an address. + * + * @function: which function on the slot to mark as reserved + * (if @reserveEntireSlot is false) + * + * @reserveEntireSlot: true to reserve all functions on the new slot, + * false to reserve just @function
... but these are still weird. Please take a look at include/libvirt/libvirt-domain.h to see what I mean. Interestingly, in that file the arguments are documented *before* describing the function itself. We should probably stick to that order here as well.
+ *
Extra line here, didn't notice it the first time around.
+ * + * returns 0 on success, or -1 on failure. + */ int -virDomainPCIAddressReserveNextSlot(virDomainPCIAddressSetPtr addrs, +virDomainPCIAddressReserveNextAddr(virDomainPCIAddressSetPtr addrs,
ACK after you tweak indentation for the comment :) -- Andrea Bolognani / Red Hat / Virtualization