|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/4] libxl: Add interface for querying hypervisor about PCI topology
On Mon, Jan 05, 2015 at 09:18:57PM -0500, Boris Ostrovsky wrote:
[...]
> +int libxl__pci_topology_init(libxl__gc *gc,
> + xen_sysctl_pcitopo_t *pcitopo,
> + int numdev)
> +{
> +
> + DIR *dir;
> + struct dirent *entry;
> + int i;
> +
> + dir = opendir("/sys/bus/pci/devices");
> + if (!dir) {
> + LOGEV(ERROR, errno, "Cannot open /sys/bus/pci/devices");
> + return ERROR_FAIL;
> + }
> +
> + i = 0;
> + while ((entry = readdir(dir))) {
> + unsigned int dom, bus, dev, func;
> +
> + /* ".", ".." or a special non-device perhaps */
> + if (entry->d_name[0] == '.')
> + continue;
> +
> + if (i == numdev) {
> + LOGE(ERROR, "Too many devices\n");
> + closedir(dir);
> + return ERROR_FAIL;
Please use "goto out" idiom.
Wei.
> + }
> +
> + if (sscanf(entry->d_name, "%x:%x:%x.%d", &dom, &bus, &dev, &func) <
> 4) {
> + LOGEV(ERROR, errno, "Error processing /sys/bus/pci/devices");
> + closedir(dir);
> + return ERROR_FAIL;
> + }
> +
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |