16543becfSAndreas Schwab #include <linux/kbuild.h> 26543becfSAndreas Schwab #include <linux/mod_devicetable.h> 36543becfSAndreas Schwab 46543becfSAndreas Schwab #define DEVID(devid) DEFINE(SIZE_##devid, sizeof(struct devid)) 56543becfSAndreas Schwab #define DEVID_FIELD(devid, field) \ 66543becfSAndreas Schwab DEFINE(OFF_##devid##_##field, offsetof(struct devid, field)) 76543becfSAndreas Schwab 86543becfSAndreas Schwab int main(void) 96543becfSAndreas Schwab { 106543becfSAndreas Schwab DEVID(usb_device_id); 116543becfSAndreas Schwab DEVID_FIELD(usb_device_id, match_flags); 126543becfSAndreas Schwab DEVID_FIELD(usb_device_id, idVendor); 136543becfSAndreas Schwab DEVID_FIELD(usb_device_id, idProduct); 146543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bcdDevice_lo); 156543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bcdDevice_hi); 166543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bDeviceClass); 176543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bDeviceSubClass); 186543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bDeviceProtocol); 196543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bInterfaceClass); 206543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bInterfaceSubClass); 216543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bInterfaceProtocol); 226543becfSAndreas Schwab DEVID_FIELD(usb_device_id, bInterfaceNumber); 236543becfSAndreas Schwab 246543becfSAndreas Schwab DEVID(hid_device_id); 256543becfSAndreas Schwab DEVID_FIELD(hid_device_id, bus); 266543becfSAndreas Schwab DEVID_FIELD(hid_device_id, group); 276543becfSAndreas Schwab DEVID_FIELD(hid_device_id, vendor); 286543becfSAndreas Schwab DEVID_FIELD(hid_device_id, product); 296543becfSAndreas Schwab 306543becfSAndreas Schwab DEVID(ieee1394_device_id); 316543becfSAndreas Schwab DEVID_FIELD(ieee1394_device_id, match_flags); 326543becfSAndreas Schwab DEVID_FIELD(ieee1394_device_id, vendor_id); 336543becfSAndreas Schwab DEVID_FIELD(ieee1394_device_id, model_id); 346543becfSAndreas Schwab DEVID_FIELD(ieee1394_device_id, specifier_id); 356543becfSAndreas Schwab DEVID_FIELD(ieee1394_device_id, version); 366543becfSAndreas Schwab 376543becfSAndreas Schwab DEVID(pci_device_id); 386543becfSAndreas Schwab DEVID_FIELD(pci_device_id, vendor); 396543becfSAndreas Schwab DEVID_FIELD(pci_device_id, device); 406543becfSAndreas Schwab DEVID_FIELD(pci_device_id, subvendor); 416543becfSAndreas Schwab DEVID_FIELD(pci_device_id, subdevice); 426543becfSAndreas Schwab DEVID_FIELD(pci_device_id, class); 436543becfSAndreas Schwab DEVID_FIELD(pci_device_id, class_mask); 446543becfSAndreas Schwab 456543becfSAndreas Schwab DEVID(ccw_device_id); 466543becfSAndreas Schwab DEVID_FIELD(ccw_device_id, match_flags); 476543becfSAndreas Schwab DEVID_FIELD(ccw_device_id, cu_type); 486543becfSAndreas Schwab DEVID_FIELD(ccw_device_id, cu_model); 496543becfSAndreas Schwab DEVID_FIELD(ccw_device_id, dev_type); 506543becfSAndreas Schwab DEVID_FIELD(ccw_device_id, dev_model); 516543becfSAndreas Schwab 526543becfSAndreas Schwab DEVID(ap_device_id); 536543becfSAndreas Schwab DEVID_FIELD(ap_device_id, dev_type); 546543becfSAndreas Schwab 556543becfSAndreas Schwab DEVID(css_device_id); 566543becfSAndreas Schwab DEVID_FIELD(css_device_id, type); 576543becfSAndreas Schwab 586543becfSAndreas Schwab DEVID(serio_device_id); 596543becfSAndreas Schwab DEVID_FIELD(serio_device_id, type); 606543becfSAndreas Schwab DEVID_FIELD(serio_device_id, proto); 616543becfSAndreas Schwab DEVID_FIELD(serio_device_id, id); 626543becfSAndreas Schwab DEVID_FIELD(serio_device_id, extra); 636543becfSAndreas Schwab 646543becfSAndreas Schwab DEVID(acpi_device_id); 656543becfSAndreas Schwab DEVID_FIELD(acpi_device_id, id); 6626095a01SSuthikulpanit, Suravee DEVID_FIELD(acpi_device_id, cls); 6726095a01SSuthikulpanit, Suravee DEVID_FIELD(acpi_device_id, cls_msk); 686543becfSAndreas Schwab 696543becfSAndreas Schwab DEVID(pnp_device_id); 706543becfSAndreas Schwab DEVID_FIELD(pnp_device_id, id); 716543becfSAndreas Schwab 726543becfSAndreas Schwab DEVID(pnp_card_device_id); 736543becfSAndreas Schwab DEVID_FIELD(pnp_card_device_id, devs); 746543becfSAndreas Schwab 756543becfSAndreas Schwab DEVID(pcmcia_device_id); 766543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, match_flags); 776543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, manf_id); 786543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, card_id); 796543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, func_id); 806543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, function); 816543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, device_no); 826543becfSAndreas Schwab DEVID_FIELD(pcmcia_device_id, prod_id_hash); 836543becfSAndreas Schwab 846543becfSAndreas Schwab DEVID(of_device_id); 856543becfSAndreas Schwab DEVID_FIELD(of_device_id, name); 866543becfSAndreas Schwab DEVID_FIELD(of_device_id, type); 876543becfSAndreas Schwab DEVID_FIELD(of_device_id, compatible); 886543becfSAndreas Schwab 896543becfSAndreas Schwab DEVID(vio_device_id); 906543becfSAndreas Schwab DEVID_FIELD(vio_device_id, type); 916543becfSAndreas Schwab DEVID_FIELD(vio_device_id, compat); 926543becfSAndreas Schwab 936543becfSAndreas Schwab DEVID(input_device_id); 946543becfSAndreas Schwab DEVID_FIELD(input_device_id, flags); 956543becfSAndreas Schwab DEVID_FIELD(input_device_id, bustype); 966543becfSAndreas Schwab DEVID_FIELD(input_device_id, vendor); 976543becfSAndreas Schwab DEVID_FIELD(input_device_id, product); 986543becfSAndreas Schwab DEVID_FIELD(input_device_id, version); 996543becfSAndreas Schwab DEVID_FIELD(input_device_id, evbit); 1006543becfSAndreas Schwab DEVID_FIELD(input_device_id, keybit); 1016543becfSAndreas Schwab DEVID_FIELD(input_device_id, relbit); 1026543becfSAndreas Schwab DEVID_FIELD(input_device_id, absbit); 1036543becfSAndreas Schwab DEVID_FIELD(input_device_id, mscbit); 1046543becfSAndreas Schwab DEVID_FIELD(input_device_id, ledbit); 1056543becfSAndreas Schwab DEVID_FIELD(input_device_id, sndbit); 1066543becfSAndreas Schwab DEVID_FIELD(input_device_id, ffbit); 1076543becfSAndreas Schwab DEVID_FIELD(input_device_id, swbit); 1086543becfSAndreas Schwab 1096543becfSAndreas Schwab DEVID(eisa_device_id); 1106543becfSAndreas Schwab DEVID_FIELD(eisa_device_id, sig); 1116543becfSAndreas Schwab 1126543becfSAndreas Schwab DEVID(parisc_device_id); 1136543becfSAndreas Schwab DEVID_FIELD(parisc_device_id, hw_type); 1146543becfSAndreas Schwab DEVID_FIELD(parisc_device_id, hversion); 1156543becfSAndreas Schwab DEVID_FIELD(parisc_device_id, hversion_rev); 1166543becfSAndreas Schwab DEVID_FIELD(parisc_device_id, sversion); 1176543becfSAndreas Schwab 1186543becfSAndreas Schwab DEVID(sdio_device_id); 1196543becfSAndreas Schwab DEVID_FIELD(sdio_device_id, class); 1206543becfSAndreas Schwab DEVID_FIELD(sdio_device_id, vendor); 1216543becfSAndreas Schwab DEVID_FIELD(sdio_device_id, device); 1226543becfSAndreas Schwab 1236543becfSAndreas Schwab DEVID(ssb_device_id); 1246543becfSAndreas Schwab DEVID_FIELD(ssb_device_id, vendor); 1256543becfSAndreas Schwab DEVID_FIELD(ssb_device_id, coreid); 1266543becfSAndreas Schwab DEVID_FIELD(ssb_device_id, revision); 1276543becfSAndreas Schwab 1286543becfSAndreas Schwab DEVID(bcma_device_id); 1296543becfSAndreas Schwab DEVID_FIELD(bcma_device_id, manuf); 1306543becfSAndreas Schwab DEVID_FIELD(bcma_device_id, id); 1316543becfSAndreas Schwab DEVID_FIELD(bcma_device_id, rev); 1326543becfSAndreas Schwab DEVID_FIELD(bcma_device_id, class); 1336543becfSAndreas Schwab 1346543becfSAndreas Schwab DEVID(virtio_device_id); 1356543becfSAndreas Schwab DEVID_FIELD(virtio_device_id, device); 1366543becfSAndreas Schwab DEVID_FIELD(virtio_device_id, vendor); 1376543becfSAndreas Schwab 1386543becfSAndreas Schwab DEVID(hv_vmbus_device_id); 1396543becfSAndreas Schwab DEVID_FIELD(hv_vmbus_device_id, guid); 1406543becfSAndreas Schwab 1416543becfSAndreas Schwab DEVID(i2c_device_id); 1426543becfSAndreas Schwab DEVID_FIELD(i2c_device_id, name); 1436543becfSAndreas Schwab 1446543becfSAndreas Schwab DEVID(spi_device_id); 1456543becfSAndreas Schwab DEVID_FIELD(spi_device_id, name); 1466543becfSAndreas Schwab 1476543becfSAndreas Schwab DEVID(dmi_system_id); 1486543becfSAndreas Schwab DEVID_FIELD(dmi_system_id, matches); 1496543becfSAndreas Schwab 1506543becfSAndreas Schwab DEVID(platform_device_id); 1516543becfSAndreas Schwab DEVID_FIELD(platform_device_id, name); 1526543becfSAndreas Schwab 1536543becfSAndreas Schwab DEVID(mdio_device_id); 1546543becfSAndreas Schwab DEVID_FIELD(mdio_device_id, phy_id); 1556543becfSAndreas Schwab DEVID_FIELD(mdio_device_id, phy_id_mask); 1566543becfSAndreas Schwab 1576543becfSAndreas Schwab DEVID(zorro_device_id); 1586543becfSAndreas Schwab DEVID_FIELD(zorro_device_id, id); 1596543becfSAndreas Schwab 1606543becfSAndreas Schwab DEVID(isapnp_device_id); 1616543becfSAndreas Schwab DEVID_FIELD(isapnp_device_id, vendor); 1626543becfSAndreas Schwab DEVID_FIELD(isapnp_device_id, function); 1636543becfSAndreas Schwab 1646543becfSAndreas Schwab DEVID(ipack_device_id); 1656543becfSAndreas Schwab DEVID_FIELD(ipack_device_id, format); 1666543becfSAndreas Schwab DEVID_FIELD(ipack_device_id, vendor); 1676543becfSAndreas Schwab DEVID_FIELD(ipack_device_id, device); 1686543becfSAndreas Schwab 1696543becfSAndreas Schwab DEVID(amba_id); 1706543becfSAndreas Schwab DEVID_FIELD(amba_id, id); 1716543becfSAndreas Schwab DEVID_FIELD(amba_id, mask); 1726543becfSAndreas Schwab 1738286ae03SJames Hogan DEVID(mips_cdmm_device_id); 1748286ae03SJames Hogan DEVID_FIELD(mips_cdmm_device_id, type); 1758286ae03SJames Hogan 1766543becfSAndreas Schwab DEVID(x86_cpu_id); 1776543becfSAndreas Schwab DEVID_FIELD(x86_cpu_id, feature); 1786543becfSAndreas Schwab DEVID_FIELD(x86_cpu_id, family); 1796543becfSAndreas Schwab DEVID_FIELD(x86_cpu_id, model); 1806543becfSAndreas Schwab DEVID_FIELD(x86_cpu_id, vendor); 1816543becfSAndreas Schwab 18267bad2fdSArd Biesheuvel DEVID(cpu_feature); 18367bad2fdSArd Biesheuvel DEVID_FIELD(cpu_feature, feature); 18467bad2fdSArd Biesheuvel 185e5354107SSamuel Ortiz DEVID(mei_cl_device_id); 186e5354107SSamuel Ortiz DEVID_FIELD(mei_cl_device_id, name); 187c93b76b3STomas Winkler DEVID_FIELD(mei_cl_device_id, uuid); 188b26864caSTomas Winkler DEVID_FIELD(mei_cl_device_id, version); 189e5354107SSamuel Ortiz 1903bdbb62fSAlexandre Bounine DEVID(rio_device_id); 1913bdbb62fSAlexandre Bounine DEVID_FIELD(rio_device_id, did); 1923bdbb62fSAlexandre Bounine DEVID_FIELD(rio_device_id, vid); 1933bdbb62fSAlexandre Bounine DEVID_FIELD(rio_device_id, asm_did); 1943bdbb62fSAlexandre Bounine DEVID_FIELD(rio_device_id, asm_vid); 1953bdbb62fSAlexandre Bounine 196289fcff4SHeikki Krogerus DEVID(ulpi_device_id); 197289fcff4SHeikki Krogerus DEVID_FIELD(ulpi_device_id, vendor); 198289fcff4SHeikki Krogerus DEVID_FIELD(ulpi_device_id, product); 199289fcff4SHeikki Krogerus 200da23ac1eSSubhransu S. Prusty DEVID(hda_device_id); 201da23ac1eSSubhransu S. Prusty DEVID_FIELD(hda_device_id, vendor_id); 202da23ac1eSSubhransu S. Prusty DEVID_FIELD(hda_device_id, rev_id); 203da23ac1eSSubhransu S. Prusty DEVID_FIELD(hda_device_id, api_version); 204da23ac1eSSubhransu S. Prusty 2056543becfSAndreas Schwab return 0; 2066543becfSAndreas Schwab } 207