Lines Matching +full:add +full:- +full:device

5  * Copyright 2002-2003  Rusty Russell, IBM Corporation
20 #include "devicetable-offsets.h"
41 * module_alias_printf - add auto-generated MODULE_ALIAS()
45 * @fmt: printf(3)-like format
75 n = vsnprintf(new->str, len, fmt, ap); in module_alias_printf()
84 if (append_wildcard && (n == 0 || new->str[n - 1] != '*')) { in module_alias_printf()
85 new->str[n] = '*'; in module_alias_printf()
86 new->str[n + 1] = '\0'; in module_alias_printf()
90 list_for_each_entry(als, &mod->aliases, node) { in module_alias_printf()
91 if (!strcmp(als->str, new->str)) { in module_alias_printf()
97 list_add_tail(&new->node, &mod->aliases); in module_alias_printf()
135 typeof(((struct devid *)0)->f) f = \
143 typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
145 #define ADD(str, sep, cond, field) \ macro
162 sprintf(str + len, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", in add_uuid()
173 sprintf(str + len, "%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X", in add_guid()
201 ADD(alias, "v", match_flags&USB_DEVICE_ID_MATCH_VENDOR, in do_usb_entry()
203 ADD(alias, "p", match_flags&USB_DEVICE_ID_MATCH_PRODUCT, in do_usb_entry()
215 "[%X-%X]", in do_usb_entry()
220 range_lo < 0x9 ? "[%X-9" : "[%X", in do_usb_entry()
223 range_hi > 0xA ? "A-%X]" : "%X]", in do_usb_entry()
227 if (bcdDevice_initial_digits < (sizeof(bcdDevice_lo) * 2 - 1)) in do_usb_entry()
230 ADD(alias, "dc", match_flags&USB_DEVICE_ID_MATCH_DEV_CLASS, in do_usb_entry()
232 ADD(alias, "dsc", match_flags&USB_DEVICE_ID_MATCH_DEV_SUBCLASS, in do_usb_entry()
234 ADD(alias, "dp", match_flags&USB_DEVICE_ID_MATCH_DEV_PROTOCOL, in do_usb_entry()
236 ADD(alias, "ic", match_flags&USB_DEVICE_ID_MATCH_INT_CLASS, in do_usb_entry()
238 ADD(alias, "isc", match_flags&USB_DEVICE_ID_MATCH_INT_SUBCLASS, in do_usb_entry()
240 ADD(alias, "ip", match_flags&USB_DEVICE_ID_MATCH_INT_PROTOCOL, in do_usb_entry()
242 ADD(alias, "in", match_flags&USB_DEVICE_ID_MATCH_INT_NUMBER, in do_usb_entry()
249 /* Returns the previous value, so it works like i++ or i-- */
319 * run-time specification that results in catch-all alias in do_usb_entry_multi()
324 /* Convert numeric bcdDevice range into fnmatch-able pattern(s) */ in do_usb_entry_multi()
325 for (ndigits = sizeof(bcdDevice_lo) * 2 - 1; devlo <= devhi; ndigits--) { in do_usb_entry_multi()
346 incbcd(&devhi, -1, max, in do_usb_entry_multi()
388 ADD(alias, "b", bus != HID_BUS_ANY, bus); in do_hid_entry()
389 ADD(alias, "g", group != HID_GROUP_ANY, group); in do_hid_entry()
390 ADD(alias, "v", vendor != HID_ANY_ID, vendor); in do_hid_entry()
391 ADD(alias, "p", product != HID_ANY_ID, product); in do_hid_entry()
407 ADD(alias, "ven", match_flags & IEEE1394_MATCH_VENDOR_ID, in do_ieee1394_entry()
409 ADD(alias, "mo", match_flags & IEEE1394_MATCH_MODEL_ID, in do_ieee1394_entry()
411 ADD(alias, "sp", match_flags & IEEE1394_MATCH_SPECIFIER_ID, in do_ieee1394_entry()
413 ADD(alias, "ver", match_flags & IEEE1394_MATCH_VERSION, in do_ieee1394_entry()
428 DEF_FIELD(symval, pci_device_id, device); in do_pci_entry()
447 ADD(alias, "v", vendor != PCI_ANY_ID, vendor); in do_pci_entry()
448 ADD(alias, "d", device != PCI_ANY_ID, device); in do_pci_entry()
449 ADD(alias, "sv", subvendor != PCI_ANY_ID, subvendor); in do_pci_entry()
450 ADD(alias, "sd", subdevice != PCI_ANY_ID, subdevice); in do_pci_entry()
463 mod->name, class_mask); in do_pci_entry()
467 ADD(alias, "bc", baseclass_mask == 0xFF, baseclass); in do_pci_entry()
468 ADD(alias, "sc", subclass_mask == 0xFF, subclass); in do_pci_entry()
469 ADD(alias, "i", interface_mask == 0xFF, interface); in do_pci_entry()
485 ADD(alias, "t", match_flags&CCW_DEVICE_ID_MATCH_CU_TYPE, in do_ccw_entry()
487 ADD(alias, "m", match_flags&CCW_DEVICE_ID_MATCH_CU_MODEL, in do_ccw_entry()
489 ADD(alias, "dt", match_flags&CCW_DEVICE_ID_MATCH_DEVICE_TYPE, in do_ccw_entry()
491 ADD(alias, "dm", match_flags&CCW_DEVICE_ID_MATCH_DEVICE_MODEL, in do_ccw_entry()
523 ADD(alias, "ty", type != SERIO_ANY, type); in do_serio_entry()
524 ADD(alias, "pr", proto != SERIO_ANY, proto); in do_serio_entry()
525 ADD(alias, "id", id != SERIO_ANY, id); in do_serio_entry()
526 ADD(alias, "ex", extra != SERIO_ANY, extra); in do_serio_entry()
532 * "acpi:bbsspp" (bb=base-class, ss=sub-class, pp=prog-if)
552 byte_shift = 8 * (3-i); in do_acpi_entry()
578 /* looks like: "pnp:dD" for every device of the card */
594 /* add an individual alias for every device entry */ in do_pnp_card_entry()
613 ADD(alias, "m", match_flags & PCMCIA_DEV_ID_MATCH_MANF_ID, in do_pcmcia_entry()
615 ADD(alias, "c", match_flags & PCMCIA_DEV_ID_MATCH_CARD_ID, in do_pcmcia_entry()
617 ADD(alias, "f", match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID, in do_pcmcia_entry()
619 ADD(alias, "fn", match_flags & PCMCIA_DEV_ID_MATCH_FUNCTION, in do_pcmcia_entry()
621 ADD(alias, "pfn", match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO, in do_pcmcia_entry()
623 ADD(alias, "pa", match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID1, in do_pcmcia_entry()
625 ADD(alias, "pb", match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID2, in do_pcmcia_entry()
627 ADD(alias, "pc", match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID3, in do_pcmcia_entry()
629 ADD(alias, "pd", match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID4, in do_pcmcia_entry()
664 /* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */
684 ADD(alias, "b", flags & INPUT_DEVICE_ID_MATCH_BUS, bustype); in do_input_entry()
685 ADD(alias, "v", flags & INPUT_DEVICE_ID_MATCH_VENDOR, vendor); in do_input_entry()
686 ADD(alias, "p", flags & INPUT_DEVICE_ID_MATCH_PRODUCT, product); in do_input_entry()
687 ADD(alias, "e", flags & INPUT_DEVICE_ID_MATCH_VERSION, version); in do_input_entry()
689 sprintf(alias + strlen(alias), "-e*"); in do_input_entry()
738 ADD(alias, "t", hw_type != PA_HWTYPE_ANY_ID, hw_type); in do_parisc_entry()
739 ADD(alias, "hv", hversion != PA_HVERSION_ANY_ID, hversion); in do_parisc_entry()
740 ADD(alias, "rev", hversion_rev != PA_HVERSION_REV_ANY_ID, hversion_rev); in do_parisc_entry()
741 ADD(alias, "sv", sversion != PA_SVERSION_ANY_ID, sversion); in do_parisc_entry()
753 DEF_FIELD(symval, sdio_device_id, device); in do_sdio_entry()
755 ADD(alias, "c", class != (__u8)SDIO_ANY_ID, class); in do_sdio_entry()
756 ADD(alias, "v", vendor != (__u16)SDIO_ANY_ID, vendor); in do_sdio_entry()
757 ADD(alias, "d", device != (__u16)SDIO_ANY_ID, device); in do_sdio_entry()
771 ADD(alias, "v", vendor != SSB_ANY_VENDOR, vendor); in do_ssb_entry()
772 ADD(alias, "id", coreid != SSB_ANY_ID, coreid); in do_ssb_entry()
773 ADD(alias, "rev", revision != SSB_ANY_REV, revision); in do_ssb_entry()
788 ADD(alias, "m", manuf != BCMA_ANY_MANUF, manuf); in do_bcma_entry()
789 ADD(alias, "id", id != BCMA_ANY_ID, id); in do_bcma_entry()
790 ADD(alias, "rev", rev != BCMA_ANY_REV, rev); in do_bcma_entry()
791 ADD(alias, "cl", class != BCMA_ANY_CLASS, class); in do_bcma_entry()
801 DEF_FIELD(symval, virtio_device_id, device); in do_virtio_entry()
804 ADD(alias, "d", device != VIRTIO_DEV_ANY_ID, device); in do_virtio_entry()
805 ADD(alias, "v", vendor != VIRTIO_DEV_ANY_ID, vendor); in do_virtio_entry()
821 sprintf(&guid_name[i * 2], "%02x", guid->b[i]); in do_vmbus_entry()
852 ADD(alias, "dcr", match_flags & I3C_MATCH_DCR, dcr); in do_i3c_entry()
853 ADD(alias, "manuf", match_flags & I3C_MATCH_MANUF, manuf_id); in do_i3c_entry()
854 ADD(alias, "part", match_flags & I3C_MATCH_PART, part_id); in do_i3c_entry()
855 ADD(alias, "ext", match_flags & I3C_MATCH_EXTRA_INFO, extra_info); in do_i3c_entry()
945 if (!((phy_id_mask >> (31-i)) & 1)) in do_mdio_entry()
947 else if ((phy_id >> (31-i)) & 1) in do_mdio_entry()
965 ADD(alias, "i", id != ZORRO_WILDCARD, id); in do_zorro_entry()
976 'A' + ((vendor >> 2) & 0x3f) - 1, in do_isapnp_entry()
977 'A' + (((vendor & 3) << 3) | ((vendor >> 13) & 7)) - 1, in do_isapnp_entry()
978 'A' + ((vendor >> 8) & 0x1f) - 1, in do_isapnp_entry()
989 DEF_FIELD(symval, ipack_device_id, device); in do_ipack_entry()
991 ADD(alias, "f", format != IPACK_ANY_FORMAT, format); in do_ipack_entry()
992 ADD(alias, "v", vendor != IPACK_ANY_ID, vendor); in do_ipack_entry()
993 ADD(alias, "d", device != IPACK_ANY_ID, device); in do_ipack_entry()
1033 /* Ensure that the string remains NUL-terminated: */ in append_nibble_mask()
1036 /* Advance the caller's end-of-string pointer: */ in append_nibble_mask()
1043 * N is exactly 8 digits, where each is an upper-case hex digit, or
1055 …fatal("%s: Masked-off bit(s) of AMBA device ID are non-zero: id=0x%08X, mask=0x%08X. Please fix t… in do_amba_entry()
1056 mod->name, id, mask); in do_amba_entry()
1060 (id >> (4 * (7 - digit))) & 0xf, in do_amba_entry()
1061 (mask >> (4 * (7 - digit))) & 0xf); in do_amba_entry()
1069 * N is exactly 2 digits, where each is an upper-case hex digit, or
1094 ADD(alias, "ven", vendor != X86_VENDOR_ANY, vendor); in do_x86cpu_entry()
1095 ADD(alias, "fam", family != X86_FAMILY_ANY, family); in do_x86cpu_entry()
1096 ADD(alias, "mod", model != X86_MODEL_ANY, model); in do_x86cpu_entry()
1122 ADD(alias, ":", version != MEI_CL_VERSION_ANY, version); in do_mei_entry()
1138 ADD(alias, "v", vid != RIO_ANY_ID, vid); in do_rio_entry()
1139 ADD(alias, "d", did != RIO_ANY_ID, did); in do_rio_entry()
1140 ADD(alias, "av", asm_vid != RIO_ANY_ID, asm_vid); in do_rio_entry()
1141 ADD(alias, "ad", asm_did != RIO_ANY_ID, asm_did); in do_rio_entry()
1164 ADD(alias, "v", vendor_id != 0, vendor_id); in do_hda_entry()
1165 ADD(alias, "r", rev_id != 0, rev_id); in do_hda_entry()
1166 ADD(alias, "a", api_version != 0, api_version); in do_hda_entry()
1181 ADD(alias, "m", mfg_id != 0, mfg_id); in do_sdw_entry()
1182 ADD(alias, "p", part_id != 0, part_id); in do_sdw_entry()
1183 ADD(alias, "v", sdw_version != 0, sdw_version); in do_sdw_entry()
1184 ADD(alias, "c", class_id != 0, class_id); in do_sdw_entry()
1189 /* Looks like: fsl-mc:vNdN */
1195 module_alias_printf(mod, false, "fsl-mc:v%08Xd%s", vendor, *obj_type); in do_fsl_mc_entry()
1213 ADD(alias, "p", match_flags & TBSVC_MATCH_PROTOCOL_ID, protocol_id); in do_tbsvc_entry()
1214 ADD(alias, "v", match_flags & TBSVC_MATCH_PROTOCOL_VERSION, in do_tbsvc_entry()
1216 ADD(alias, "r", match_flags & TBSVC_MATCH_PROTOCOL_REVISION, in do_tbsvc_entry()
1236 "tee:%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", in do_tee_entry()
1237 uuid->b[0], uuid->b[1], uuid->b[2], uuid->b[3], uuid->b[4], in do_tee_entry()
1238 uuid->b[5], uuid->b[6], uuid->b[7], uuid->b[8], uuid->b[9], in do_tee_entry()
1239 uuid->b[10], uuid->b[11], uuid->b[12], uuid->b[13], uuid->b[14], in do_tee_entry()
1240 uuid->b[15]); in do_tee_entry()
1249 warn("Invalid WMI device id 'wmi:%s' in '%s'\n", in do_wmi_entry()
1250 *guid_string, mod->name); in do_wmi_entry()
1293 * N is exactly 2 digits, where each is an upper-case hex digit.
1306 ADD(alias, "t", match_flags & SSAM_MATCH_TARGET, target); in do_ssam_entry()
1307 ADD(alias, "i", match_flags & SSAM_MATCH_INSTANCE, instance); in do_ssam_entry()
1308 ADD(alias, "f", match_flags & SSAM_MATCH_FUNCTION, function); in do_ssam_entry()
1329 DEF_FIELD(symval, cdx_device_id, device); in do_cdx_entry()
1349 ADD(alias, "v", vendor != CDX_ANY_ID, vendor); in do_cdx_entry()
1350 ADD(alias, "d", device != CDX_ANY_ID, device); in do_cdx_entry()
1351 ADD(alias, "sv", subvendor != CDX_ANY_ID, subvendor); in do_cdx_entry()
1352 ADD(alias, "sd", subdevice != CDX_ANY_ID, subdevice); in do_cdx_entry()
1353 ADD(alias, "c", class_mask == 0xFFFFFF, class); in do_cdx_entry()
1392 mod->name, name, device_id); in do_table()
1397 for (i = size - id_size; i < size; i++) { in do_table()
1400 mod->name, name); in do_table()
1406 size -= id_size; in do_table()
1473 * so we write into the mod->dev_table_buf buffer. */
1484 if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections) in handle_moddevtable()
1488 if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT) in handle_moddevtable()
1499 typelen = name - type; in handle_moddevtable()
1502 /* Handle all-NULL symbols allocated into .bss */ in handle_moddevtable()
1503 if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) { in handle_moddevtable()
1504 zeros = calloc(1, sym->st_size); in handle_moddevtable()
1513 if (sym_is(type, typelen, p->device_id)) { in handle_moddevtable()
1514 do_table(name, symval, sym->st_size, p->id_size, in handle_moddevtable()
1515 p->device_id, p->do_entry, mod); in handle_moddevtable()