From: Martin Mares Date: Tue, 12 Feb 2008 09:19:38 +0000 (+0100) Subject: Added an option for selection of access methods. X-Git-Tag: v3.0.0~1^2~40 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=a0407443c25b4a1fcb3a37261a56ae48d65f447e;p=pciutils.git Added an option for selection of access methods. --- diff --git a/common.c b/common.c index ed439b4..77974f3 100644 --- a/common.c +++ b/common.c @@ -44,6 +44,29 @@ xrealloc(void *ptr, unsigned int howmuch) return p; } +static void +set_pci_method(struct pci_access *pacc, char *arg) +{ + char *name; + int i; + + if (!strcmp(arg, "help")) + { + printf("Known PCI access methods:\n\n"); + for (i=0; name = pci_get_method_name(i); i++) + if (name[0]) + printf("%s\n", name); + exit(0); + } + else + { + i = pci_lookup_method(arg); + if (i < 0) + die("No such PCI access method: %s (see `-A help' for a list)", arg); + pacc->method = i; + } +} + static void set_pci_option(struct pci_access *pacc, char *arg) { @@ -62,7 +85,7 @@ set_pci_option(struct pci_access *pacc, char *arg) die("Invalid PCI access parameter syntax: %s", arg); *sep++ = 0; if (pci_set_param(pacc, arg, sep) < 0) - die("Unrecognized PCI access parameter: %s", arg); + die("Unrecognized PCI access parameter: %s (see `-O help' for a list)", arg); } } @@ -93,6 +116,9 @@ parse_generic_option(int i, struct pci_access *pacc, char *optarg) pacc->method = PCI_ACCESS_DUMP; break; #endif + case 'A': + set_pci_method(pacc, optarg); + break; case 'G': pacc->debugging++; break; diff --git a/pciutils.h b/pciutils.h index 02071ac..9408102 100644 --- a/pciutils.h +++ b/pciutils.h @@ -1,7 +1,7 @@ /* * The PCI Utilities -- Declarations * - * Copyright (c) 1997--2004 Martin Mares + * Copyright (c) 1997--2008 Martin Mares * * Can be freely distributed and used under the terms of the GNU GPL. */ @@ -44,7 +44,8 @@ int parse_generic_option(int i, struct pci_access *pacc, char *optarg); #define GENHELP_DUMP #endif -#define GENERIC_OPTIONS "GO:" GENOPT_PROC GENOPT_INTEL GENOPT_DUMP +#define GENERIC_OPTIONS "A:GO:" GENOPT_PROC GENOPT_INTEL GENOPT_DUMP #define GENERIC_HELP GENHELP_PROC GENHELP_INTEL GENHELP_DUMP \ + "-A \tUse the specified PCI access method (see `-A help' for a list)\n" \ "-G\t\tEnable PCI access debugging\n" \ - "-O =\tSet PCI access parameter (see `-O help' for the list)\n" + "-O =\tSet PCI access parameter (see `-O help' for a list)\n"