[libvirt] [PATCH] Add interface object list manipulation functions.
Daniel P. Berrange
berrange at redhat.com
Mon Jul 20 18:48:38 UTC 2009
On Mon, Jul 20, 2009 at 01:42:05PM -0400, Laine Stump wrote:
> These functions are useful for an implementation of an interface driver
> that doesn't use a library that manages its own list of interfaces
> (as netcf does), for example the test interface driver.
> +
> +int virInterfaceFindByMACString(const virInterfaceObjListPtr interfaces,
> + const char *mac,
> + virInterfaceObjPtr *matches, int maxmatches)
> +{
> + unsigned int i, matchct = 0;
> +
> + for (i = 0 ; i < interfaces->count ; i++) {
> + int lock_for_caller = 0;
> + virInterfaceObjLock(interfaces->objs[i]);
> + if (STREQ(interfaces->objs[i]->def->mac, mac)) {
> + if (matchct < maxmatches) {
> + matches[matchct] = interfaces->objs[i];
> + lock_for_caller = 1;
> + }
> + matchct++;
> + }
> + if (!lock_for_caller) {
> + /* it is the caller's responsibility to unlock *all* matches */
> + virInterfaceObjUnlock(interfaces->objs[i]);
> + }
> + }
I think it'd be a little nicer to just use 'continue' there
instead of introducing the 'lock_for_caller = 1' assignment.
Also minor indentation typo.
ACK to this anyway
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list