* - physical/geographical location of the hardware
* - the interface's MAC address
*
+ * http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
+ *
* Two character prefixes based on the type of interface:
* en -- ethernet
* wl -- wlan
#include <linux/pci_regs.h>
#include "udev.h"
+#include "fileio.h"
enum netname_type{
NET_UNDEF,
snprintf(str, sizeof(str), "%s/%s/address", slots, dent->d_name);
if (read_one_line_file(str, &address) >= 0) {
/* match slot address with device by stripping the function */
- if (strncmp(address, udev_device_get_sysname(names->pcidev), strlen(address)) == 0)
+ if (strneq(address, udev_device_get_sysname(names->pcidev), strlen(address)))
hotplug_slot = i;
free(address);
}
if (!parent)
return -ENOENT;
/* check if our direct parent is a PCI device with no other bus in-between */
- if (streq("pci", udev_device_get_subsystem(parent))) {
+ if (streq_ptr("pci", udev_device_get_subsystem(parent))) {
names->type = NET_PCI;
names->pcidev = parent;
} else {
if (!bcmadev)
return -ENOENT;
- /* bus num, core num */
+ /* bus num:core num */
if (sscanf(udev_device_get_sysname(bcmadev), "bcma%*d:%d", &core) != 1)
return -EINVAL;
- snprintf(names->bcma_core, sizeof(names->bcma_core), "b%d", core);
+ /* suppress the common core == 0 */
+ if (core > 0)
+ snprintf(names->bcma_core, sizeof(names->bcma_core), "b%d", core);
+
names->type = NET_BCMA;
return 0;
}
p = udev_device_get_sysattr_value(dev, "iflink");
if (!p)
return EXIT_FAILURE;
- if (strcmp(s, p) != 0)
+ if (!streq(s, p))
return 0;
devtype = udev_device_get_devtype(dev);