Lines Matching +full:mod +full:- +full:12 +full:b

5  * Copyright 2002-2003  Rusty Russell, IBM Corporation
20 #include "devicetable-offsets.h"
41 * module_alias_printf - add auto-generated MODULE_ALIAS()
43 * @mod: module
45 * @fmt: printf(3)-like format
48 module_alias_printf(struct module *mod, bool append_wildcard, in module_alias_printf() argument
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()
106 __u8 b[16]; member
110 __u8 b[16]; member
117 __u8 b[16]; member
128 void (*do_entry)(struct module *mod, void *symval);
135 typeof(((struct devid *)0)->f) f = \
143 typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
162 sprintf(str + len, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", in add_uuid()
163 uuid.b[3], uuid.b[2], uuid.b[1], uuid.b[0], in add_uuid()
164 uuid.b[5], uuid.b[4], uuid.b[7], uuid.b[6], in add_uuid()
165 uuid.b[8], uuid.b[9], uuid.b[10], uuid.b[11], in add_uuid()
166 uuid.b[12], uuid.b[13], uuid.b[14], uuid.b[15]); 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()
174 guid.b[3], guid.b[2], guid.b[1], guid.b[0], in add_guid()
175 guid.b[5], guid.b[4], guid.b[7], guid.b[6], in add_guid()
176 guid.b[8], guid.b[9], guid.b[10], guid.b[11], in add_guid()
177 guid.b[12], guid.b[13], guid.b[14], guid.b[15]); in add_guid()
185 unsigned char max, struct module *mod) in do_usb_entry() argument
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()
245 module_alias_printf(mod, true, "%s", alias); in do_usb_entry()
249 /* Returns the previous value, so it works like i++ or i-- */
287 static void do_usb_entry_multi(struct module *mod, void *symval) in do_usb_entry_multi() argument
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()
334 do_usb_entry(symval, devlo, ndigits, clo, chi, max, mod); in do_usb_entry_multi()
342 ndigits, clo, max, max, mod); in do_usb_entry_multi()
346 incbcd(&devhi, -1, max, in do_usb_entry_multi()
348 ndigits, 0x0, chi, max, mod); in do_usb_entry_multi()
352 static void do_of_entry(struct module *mod, void *symval) in do_of_entry() argument
374 module_alias_printf(mod, false, "%s", alias); in do_of_entry()
375 module_alias_printf(mod, false, "%sC*", alias); in do_of_entry()
379 static void do_hid_entry(struct module *mod, void *symval) in do_hid_entry() argument
388 ADD(alias, "b", bus != HID_BUS_ANY, bus); in do_hid_entry()
393 module_alias_printf(mod, false, "hid:%s", alias); in do_hid_entry()
397 static void do_ieee1394_entry(struct module *mod, void *symval) in do_ieee1394_entry() argument
416 module_alias_printf(mod, true, "ieee1394:%s", alias); in do_ieee1394_entry()
420 static void do_pci_entry(struct module *mod, void *symval) in do_pci_entry() argument
463 mod->name, class_mask); in do_pci_entry()
471 module_alias_printf(mod, true, "%s", alias); in do_pci_entry()
475 static void do_ccw_entry(struct module *mod, void *symval) in do_ccw_entry() argument
494 module_alias_printf(mod, true, "ccw:%s", alias); in do_ccw_entry()
498 static void do_ap_entry(struct module *mod, void *symval) in do_ap_entry() argument
502 module_alias_printf(mod, false, "ap:t%02X*", dev_type); in do_ap_entry()
506 static void do_css_entry(struct module *mod, void *symval) in do_css_entry() argument
510 module_alias_printf(mod, false, "css:t%01X", type); in do_css_entry()
514 static void do_serio_entry(struct module *mod, void *symval) in do_serio_entry() argument
528 module_alias_printf(mod, true, "serio:%s", alias); in do_serio_entry()
532 * "acpi:bbsspp" (bb=base-class, ss=sub-class, pp=prog-if)
538 static void do_acpi_entry(struct module *mod, void *symval) in do_acpi_entry() argument
545 module_alias_printf(mod, false, "acpi*:%s:*", *id); in do_acpi_entry()
552 byte_shift = 8 * (3-i); in do_acpi_entry()
561 module_alias_printf(mod, false, "acpi*:%s:*", alias); in do_acpi_entry()
566 static void do_pnp_device_entry(struct module *mod, void *symval) in do_pnp_device_entry() argument
574 module_alias_printf(mod, false, "pnp:d%s*", *id); in do_pnp_device_entry()
575 module_alias_printf(mod, false, "acpi*:%s:*", acpi_id); in do_pnp_device_entry()
579 static void do_pnp_card_entry(struct module *mod, void *symval) in do_pnp_card_entry() argument
595 module_alias_printf(mod, false, "pnp:d%s*", id); in do_pnp_card_entry()
596 module_alias_printf(mod, false, "acpi*:%s:*", acpi_id); in do_pnp_card_entry()
601 static void do_pcmcia_entry(struct module *mod, void *symval) in do_pcmcia_entry() argument
632 module_alias_printf(mod, true, "pcmcia:%s", alias); in do_pcmcia_entry()
635 static void do_vio_entry(struct module *mod, void *symval) in do_vio_entry() argument
650 module_alias_printf(mod, true, "%s", alias); in do_vio_entry()
664 /* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */
665 static void do_input_entry(struct module *mod, void *symval) in do_input_entry() argument
684 ADD(alias, "b", flags & INPUT_DEVICE_ID_MATCH_BUS, bustype); in do_input_entry()
689 sprintf(alias + strlen(alias), "-e*"); in do_input_entry()
719 module_alias_printf(mod, false, "input:%s", alias); in do_input_entry()
722 static void do_eisa_entry(struct module *mod, void *symval) in do_eisa_entry() argument
725 module_alias_printf(mod, false, EISA_DEVICE_MODALIAS_FMT "*", *sig); in do_eisa_entry()
729 static void do_parisc_entry(struct module *mod, void *symval) in do_parisc_entry() argument
743 module_alias_printf(mod, true, "parisc:%s", alias); in do_parisc_entry()
747 static void do_sdio_entry(struct module *mod, void *symval) in do_sdio_entry() argument
759 module_alias_printf(mod, true, "sdio:%s", alias); in do_sdio_entry()
763 static void do_ssb_entry(struct module *mod, void *symval) in do_ssb_entry() argument
775 module_alias_printf(mod, true, "ssb:%s", alias); in do_ssb_entry()
779 static void do_bcma_entry(struct module *mod, void *symval) in do_bcma_entry() argument
793 module_alias_printf(mod, true, "bcma:%s", alias); in do_bcma_entry()
797 static void do_virtio_entry(struct module *mod, void *symval) in do_virtio_entry() argument
807 module_alias_printf(mod, true, "virtio:%s", alias); in do_virtio_entry()
815 static void do_vmbus_entry(struct module *mod, void *symval) in do_vmbus_entry() argument
821 sprintf(&guid_name[i * 2], "%02x", guid->b[i]); in do_vmbus_entry()
823 module_alias_printf(mod, false, "vmbus:%s", guid_name); in do_vmbus_entry()
827 static void do_rpmsg_entry(struct module *mod, void *symval) in do_rpmsg_entry() argument
831 module_alias_printf(mod, false, RPMSG_DEVICE_MODALIAS_FMT, *name); in do_rpmsg_entry()
835 static void do_i2c_entry(struct module *mod, void *symval) in do_i2c_entry() argument
839 module_alias_printf(mod, false, I2C_MODULE_PREFIX "%s", *name); in do_i2c_entry()
842 static void do_i3c_entry(struct module *mod, void *symval) in do_i3c_entry() argument
857 module_alias_printf(mod, false, "i3c:%s", alias); in do_i3c_entry()
860 static void do_slim_entry(struct module *mod, void *symval) in do_slim_entry() argument
865 module_alias_printf(mod, false, "slim:%x:%x:*", manf_id, prod_code); in do_slim_entry()
869 static void do_spi_entry(struct module *mod, void *symval) in do_spi_entry() argument
873 module_alias_printf(mod, false, SPI_MODULE_PREFIX "%s", *name); in do_spi_entry()
908 static void do_dmi_entry(struct module *mod, void *symval) in do_dmi_entry() argument
927 module_alias_printf(mod, false, "dmi*%s:", alias); in do_dmi_entry()
930 static void do_platform_entry(struct module *mod, void *symval) in do_platform_entry() argument
934 module_alias_printf(mod, false, PLATFORM_MODULE_PREFIX "%s", *name); in do_platform_entry()
937 static void do_mdio_entry(struct module *mod, void *symval) in do_mdio_entry() argument
945 if (!((phy_id_mask >> (31-i)) & 1)) in do_mdio_entry()
947 else if ((phy_id >> (31-i)) & 1) in do_mdio_entry()
956 module_alias_printf(mod, false, MDIO_MODULE_PREFIX "%s", id); in do_mdio_entry()
960 static void do_zorro_entry(struct module *mod, void *symval) in do_zorro_entry() argument
967 module_alias_printf(mod, false, "zorro:%s", alias); in do_zorro_entry()
971 static void do_isapnp_entry(struct module *mod, void *symval) in do_isapnp_entry() argument
975 module_alias_printf(mod, false, "pnp:d%c%c%c%x%x%x%x*", in do_isapnp_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()
980 (function >> 12) & 0x0f, (function >> 8) & 0x0f); in do_isapnp_entry()
984 static void do_ipack_entry(struct module *mod, void *symval) in do_ipack_entry() argument
995 module_alias_printf(mod, true, "ipack:%s", alias); 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
1046 static void do_amba_entry(struct module *mod, void *symval) in do_amba_entry() argument
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()
1063 module_alias_printf(mod, false, "amba:d%s", alias); in do_amba_entry()
1069 * N is exactly 2 digits, where each is an upper-case hex digit, or
1072 static void do_mips_cdmm_entry(struct module *mod, void *symval) in do_mips_cdmm_entry() argument
1076 module_alias_printf(mod, false, "mipscdmm:t%02X*", type); in do_mips_cdmm_entry()
1085 static void do_x86cpu_entry(struct module *mod, void *symval) in do_x86cpu_entry() argument
1096 ADD(alias, "mod", model != X86_MODEL_ANY, model); in do_x86cpu_entry()
1101 module_alias_printf(mod, false, "cpu:type:x86,%s", alias); in do_x86cpu_entry()
1105 static void do_cpu_entry(struct module *mod, void *symval) in do_cpu_entry() argument
1109 module_alias_printf(mod, false, "cpu:type:*:feature:*%04X*", feature); in do_cpu_entry()
1113 static void do_mei_entry(struct module *mod, void *symval) in do_mei_entry() argument
1124 module_alias_printf(mod, false, MEI_CL_MODULE_PREFIX "%s:%s:*", in do_mei_entry()
1129 static void do_rio_entry(struct module *mod, void *symval) in do_rio_entry() argument
1143 module_alias_printf(mod, true, "rapidio:%s", alias); in do_rio_entry()
1147 static void do_ulpi_entry(struct module *mod, void *symval) in do_ulpi_entry() argument
1152 module_alias_printf(mod, false, "ulpi:v%04xp%04x", vendor, product); in do_ulpi_entry()
1156 static void do_hda_entry(struct module *mod, void *symval) in do_hda_entry() argument
1168 module_alias_printf(mod, true, "hdaudio:%s", alias); in do_hda_entry()
1172 static void do_sdw_entry(struct module *mod, void *symval) in do_sdw_entry() argument
1186 module_alias_printf(mod, true, "sdw:%s", alias); in do_sdw_entry()
1189 /* Looks like: fsl-mc:vNdN */
1190 static void do_fsl_mc_entry(struct module *mod, void *symval) in do_fsl_mc_entry() argument
1195 module_alias_printf(mod, false, "fsl-mc:v%08Xd%s", vendor, *obj_type); in do_fsl_mc_entry()
1199 static void do_tbsvc_entry(struct module *mod, void *symval) in do_tbsvc_entry() argument
1219 module_alias_printf(mod, true, "tbsvc:%s", alias); in do_tbsvc_entry()
1223 static void do_typec_entry(struct module *mod, void *symval) in do_typec_entry() argument
1227 module_alias_printf(mod, false, "typec:id%04X", svid); in do_typec_entry()
1231 static void do_tee_entry(struct module *mod, void *symval) in do_tee_entry() argument
1235 module_alias_printf(mod, true, in do_tee_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()
1244 static void do_wmi_entry(struct module *mod, void *symval) in do_wmi_entry() argument
1250 *guid_string, mod->name); in do_wmi_entry()
1254 module_alias_printf(mod, false, WMI_MODULE_PREFIX "%s", *guid_string); in do_wmi_entry()
1258 static void do_mhi_entry(struct module *mod, void *symval) in do_mhi_entry() argument
1261 module_alias_printf(mod, false, MHI_DEVICE_MODALIAS_FMT, *chan); in do_mhi_entry()
1265 static void do_mhi_ep_entry(struct module *mod, void *symval) in do_mhi_ep_entry() argument
1269 module_alias_printf(mod, false, MHI_EP_DEVICE_MODALIAS_FMT, *chan); in do_mhi_ep_entry()
1273 static void do_ishtp_entry(struct module *mod, void *symval) in do_ishtp_entry() argument
1280 module_alias_printf(mod, false, ISHTP_MODULE_PREFIX "{%s}", alias); in do_ishtp_entry()
1283 static void do_auxiliary_entry(struct module *mod, void *symval) in do_auxiliary_entry() argument
1287 module_alias_printf(mod, false, AUXILIARY_MODULE_PREFIX "%s", *name); in do_auxiliary_entry()
1293 * N is exactly 2 digits, where each is an upper-case hex digit.
1295 static void do_ssam_entry(struct module *mod, void *symval) in do_ssam_entry() argument
1310 module_alias_printf(mod, false, "ssam:d%02Xc%02X%s", in do_ssam_entry()
1315 static void do_dfl_entry(struct module *mod, void *symval) in do_dfl_entry() argument
1320 module_alias_printf(mod, true, "dfl:t%04Xf%04X", type, feature_id); in do_dfl_entry()
1324 static void do_cdx_entry(struct module *mod, void *symval) in do_cdx_entry() argument
1355 module_alias_printf(mod, false, "%s", alias); in do_cdx_entry()
1358 static void do_vchiq_entry(struct module *mod, void *symval) in do_vchiq_entry() argument
1362 module_alias_printf(mod, false, "vchiq:%s", *name); in do_vchiq_entry()
1366 static void do_coreboot_entry(struct module *mod, void *symval) in do_coreboot_entry() argument
1370 module_alias_printf(mod, false, "coreboot:t%08X", tag); in do_coreboot_entry()
1385 void (*do_entry)(struct module *mod, void *symval), in do_table() argument
1386 struct module *mod) in do_table()
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()
1409 do_entry(mod, symval + i); in do_table()
1473 * so we write into the mod->dev_table_buf buffer. */
1474 void handle_moddevtable(struct module *mod, struct elf_info *info, in handle_moddevtable() argument
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()