1*c2e0c6b5SAndroid Build Coastguard Worker /* 2*c2e0c6b5SAndroid Build Coastguard Worker * The PCI Utilities -- Declarations 3*c2e0c6b5SAndroid Build Coastguard Worker * 4*c2e0c6b5SAndroid Build Coastguard Worker * Copyright (c) 1997--2018 Martin Mares <[email protected]> 5*c2e0c6b5SAndroid Build Coastguard Worker * 6*c2e0c6b5SAndroid Build Coastguard Worker * Can be freely distributed and used under the terms of the GNU GPL v2+ 7*c2e0c6b5SAndroid Build Coastguard Worker * 8*c2e0c6b5SAndroid Build Coastguard Worker * SPDX-License-Identifier: GPL-2.0-or-later 9*c2e0c6b5SAndroid Build Coastguard Worker */ 10*c2e0c6b5SAndroid Build Coastguard Worker 11*c2e0c6b5SAndroid Build Coastguard Worker #include "lib/pci.h" 12*c2e0c6b5SAndroid Build Coastguard Worker #include "lib/sysdep.h" 13*c2e0c6b5SAndroid Build Coastguard Worker #include "bitops.h" 14*c2e0c6b5SAndroid Build Coastguard Worker 15*c2e0c6b5SAndroid Build Coastguard Worker /* 16*c2e0c6b5SAndroid Build Coastguard Worker * gcc predefines macro __MINGW32__ for all MinGW targets. 17*c2e0c6b5SAndroid Build Coastguard Worker * Including some MinGW header (e.g. windef.h) defines additional 18*c2e0c6b5SAndroid Build Coastguard Worker * macro __MINGW32_MAJOR_VERSION (available for all MinGW targets). 19*c2e0c6b5SAndroid Build Coastguard Worker */ 20*c2e0c6b5SAndroid Build Coastguard Worker #if defined(PCI_OS_WINDOWS) && defined(__MINGW32__) 21*c2e0c6b5SAndroid Build Coastguard Worker #include <windef.h> 22*c2e0c6b5SAndroid Build Coastguard Worker #endif 23*c2e0c6b5SAndroid Build Coastguard Worker 24*c2e0c6b5SAndroid Build Coastguard Worker /* 25*c2e0c6b5SAndroid Build Coastguard Worker * On Windows only MinGW 3.0 and higher versions provides <getopt.h> 26*c2e0c6b5SAndroid Build Coastguard Worker * header file. Older MinGW versions and MSVC do not have it. 27*c2e0c6b5SAndroid Build Coastguard Worker * DJGPP does not provide <getopt.h>. 28*c2e0c6b5SAndroid Build Coastguard Worker */ 29*c2e0c6b5SAndroid Build Coastguard Worker #if defined(PCI_OS_DJGPP) || (defined(PCI_OS_WINDOWS) && !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 3)) 30*c2e0c6b5SAndroid Build Coastguard Worker #include "compat/getopt.h" 31*c2e0c6b5SAndroid Build Coastguard Worker #else 32*c2e0c6b5SAndroid Build Coastguard Worker #include <getopt.h> 33*c2e0c6b5SAndroid Build Coastguard Worker #endif 34*c2e0c6b5SAndroid Build Coastguard Worker 35*c2e0c6b5SAndroid Build Coastguard Worker #define PCIUTILS_VERSION PCILIB_VERSION 36*c2e0c6b5SAndroid Build Coastguard Worker 37*c2e0c6b5SAndroid Build Coastguard Worker extern const char program_name[]; 38*c2e0c6b5SAndroid Build Coastguard Worker 39*c2e0c6b5SAndroid Build Coastguard Worker void die(char *msg, ...) NONRET PCI_PRINTF(1,2); 40*c2e0c6b5SAndroid Build Coastguard Worker void *xmalloc(size_t howmuch); 41*c2e0c6b5SAndroid Build Coastguard Worker void *xrealloc(void *ptr, size_t howmuch); 42*c2e0c6b5SAndroid Build Coastguard Worker char *xstrdup(const char *str); 43*c2e0c6b5SAndroid Build Coastguard Worker int parse_generic_option(int i, struct pci_access *pacc, char *arg); 44*c2e0c6b5SAndroid Build Coastguard Worker 45*c2e0c6b5SAndroid Build Coastguard Worker #ifdef PCI_HAVE_PM_INTEL_CONF 46*c2e0c6b5SAndroid Build Coastguard Worker #define GENOPT_INTEL "H:" 47*c2e0c6b5SAndroid Build Coastguard Worker #define GENHELP_INTEL "-H <mode>\tUse direct hardware access (<mode> = 1 or 2)\n" 48*c2e0c6b5SAndroid Build Coastguard Worker #else 49*c2e0c6b5SAndroid Build Coastguard Worker #define GENOPT_INTEL 50*c2e0c6b5SAndroid Build Coastguard Worker #define GENHELP_INTEL 51*c2e0c6b5SAndroid Build Coastguard Worker #endif 52*c2e0c6b5SAndroid Build Coastguard Worker #if defined(PCI_HAVE_PM_DUMP) && !defined(PCIUTILS_SETPCI) 53*c2e0c6b5SAndroid Build Coastguard Worker #define GENOPT_DUMP "F:" 54*c2e0c6b5SAndroid Build Coastguard Worker #define GENHELP_DUMP "-F <file>\tRead PCI configuration dump from a given file\n" 55*c2e0c6b5SAndroid Build Coastguard Worker #else 56*c2e0c6b5SAndroid Build Coastguard Worker #define GENOPT_DUMP 57*c2e0c6b5SAndroid Build Coastguard Worker #define GENHELP_DUMP 58*c2e0c6b5SAndroid Build Coastguard Worker #endif 59*c2e0c6b5SAndroid Build Coastguard Worker 60*c2e0c6b5SAndroid Build Coastguard Worker #define GENERIC_OPTIONS "A:GO:" GENOPT_INTEL GENOPT_DUMP 61*c2e0c6b5SAndroid Build Coastguard Worker #define GENERIC_HELP \ 62*c2e0c6b5SAndroid Build Coastguard Worker "-A <method>\tUse the specified PCI access method (see `-A help' for a list)\n" \ 63*c2e0c6b5SAndroid Build Coastguard Worker "-O <par>=<val>\tSet PCI access parameter (see `-O help' for a list)\n" \ 64*c2e0c6b5SAndroid Build Coastguard Worker "-G\t\tEnable PCI access debugging\n" \ 65*c2e0c6b5SAndroid Build Coastguard Worker GENHELP_INTEL GENHELP_DUMP 66