X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lspci.c;h=5047559367132e2573b0052a61c778907e34705b;hb=fa1823688adaaf8dc32293b3502da7257cec612c;hp=b0ef90f30c732960ec0e7919f687a71feef50a6e;hpb=523d37617c95f9b2814067e3ce4b86cc12851684;p=pciutils.git diff --git a/lspci.c b/lspci.c index b0ef90f..5047559 100644 --- a/lspci.c +++ b/lspci.c @@ -25,35 +25,40 @@ static int opt_machine; /* Generate machine-readable output */ static int opt_map_mode; /* Bus mapping mode enabled */ static int opt_domains; /* Show domain numbers (0=disabled, 1=auto-detected, 2=requested) */ static int opt_kernel; /* Show kernel drivers */ +static int opt_query_dns; /* Query the DNS (0=disabled, 1=enabled, 2=refresh cache) */ +static int opt_query_all; /* Query the DNS for all entries */ static char *opt_pcimap; /* Override path to Linux modules.pcimap */ const char program_name[] = "lspci"; -static char options[] = "nvbxs:d:ti:mgp:kMD" GENERIC_OPTIONS ; - -static char help_msg[] = "\ -Usage: lspci []\n\ -\n\ --v\t\tBe verbose\n\ --n\t\tShow numeric ID's\n\ --nn\t\tShow both textual and numeric ID's (names & numbers)\n\ --b\t\tBus-centric view (PCI addresses and IRQ's instead of those seen by the CPU)\n\ --x\t\tShow hex-dump of the standard portion of config space\n\ --xxx\t\tShow hex-dump of the whole config space (dangerous; root only)\n\ --xxxx\t\tShow hex-dump of the 4096-byte extended config space (root only)\n\ --s [[[[]:]]:][][.[]]\tShow only devices in selected slots\n\ --d []:[]\tShow only selected devices\n\ --t\t\tShow bus tree\n\ --m\t\tProduce machine-readable output\n\ --i \tUse specified ID database instead of %s\n" +static char options[] = "nvbxs:d:ti:mgp:qkMDQ" GENERIC_OPTIONS ; + +static char help_msg[] = +"Usage: lspci []\n" +"\n" +"-v\t\tBe verbose\n" +"-n\t\tShow numeric ID's\n" +"-nn\t\tShow both textual and numeric ID's (names & numbers)\n" +#ifdef PCI_USE_DNS +"-q\t\tQuery the PCI ID database for unknown ID's via DNS\n" +"-qq\t\tAs above, but re-query locally cached entries\n" +"-Q\t\tQuery the PCI ID database for all ID's via DNS\n" +#endif +"-b\t\tBus-centric view (PCI addresses and IRQ's instead of those seen by the CPU)\n" +"-x\t\tShow hex-dump of the standard portion of config space\n" +"-xxx\t\tShow hex-dump of the whole config space (dangerous; root only)\n" +"-xxxx\t\tShow hex-dump of the 4096-byte extended config space (root only)\n" +"-s [[[[]:]]:][][.[]]\tShow only devices in selected slots\n" +"-d []:[]\tShow only selected devices\n" +"-t\t\tShow bus tree\n" +"-m\t\tProduce machine-readable output\n" +"-i \tUse specified ID database instead of %s\n" #ifdef PCI_OS_LINUX -"\ --k\t\tShow kernel drivers handling each device\n\ --p \tLook up kernel modules in a given file instead of default modules.pcimap\n" +"-k\t\tShow kernel drivers handling each device\n" +"-p \tLook up kernel modules in a given file instead of default modules.pcimap\n" #endif -"\ --D\t\tAlways show domain numbers\n\ --M\t\tEnable `bus mapping' mode (dangerous; root only)\n" +"-D\t\tAlways show domain numbers\n" +"-M\t\tEnable `bus mapping' mode (dangerous; root only)\n" GENERIC_HELP ; @@ -2728,6 +2733,18 @@ main(int argc, char **argv) case 'D': opt_domains = 2; break; +#ifdef PCI_USE_DNS + case 'q': + opt_query_dns++; + break; + case 'Q': + opt_query_all = 1; + break; +#else + case 'q': + case 'Q': + die("DNS queries are not available in this version"); +#endif default: if (parse_generic_option(i, pacc, optarg)) break; @@ -2738,8 +2755,15 @@ main(int argc, char **argv) if (optind < argc) goto bad; - /* FIXME */ - pacc->id_lookup_mode |= PCI_LOOKUP_NETWORK; + if (opt_query_dns) + { + pacc->id_lookup_mode |= PCI_LOOKUP_NETWORK; + if (opt_query_dns > 1) + pacc->id_lookup_mode |= PCI_LOOKUP_REFRESH_CACHE; + } + if (opt_query_all) + pacc->id_lookup_mode |= PCI_LOOKUP_NETWORK | PCI_LOOKUP_SKIP_LOCAL; + pci_init(pacc); if (opt_map_mode) map_the_bus();