xref: /pciutils/pciutils.h (revision 370be0de)
198e39e09SMartin Mares /*
24284af58SMartin Mares  *	The PCI Utilities -- Declarations
398e39e09SMartin Mares  *
4af34f014SMartin Mares  *	Copyright (c) 1997--2018 Martin Mares <[email protected]>
598e39e09SMartin Mares  *
661829219SMartin Mares  *	Can be freely distributed and used under the terms of the GNU GPL v2+
761829219SMartin Mares  *
861829219SMartin Mares  *	SPDX-License-Identifier: GPL-2.0-or-later
998e39e09SMartin Mares  */
1098e39e09SMartin Mares 
11727ce158SMartin Mares #include "lib/pci.h"
12489233b4SMartin Mares #include "lib/sysdep.h"
131ffd04a8SMartin Mares #include "bitops.h"
1498e39e09SMartin Mares 
154658bfadSPali Rohár /*
164658bfadSPali Rohár  * gcc predefines macro __MINGW32__ for all MinGW targets.
174658bfadSPali Rohár  * Including some MinGW header (e.g. windef.h) defines additional
184658bfadSPali Rohár  * macro __MINGW32_MAJOR_VERSION (available for all MinGW targets).
194658bfadSPali Rohár  */
204658bfadSPali Rohár #if defined(PCI_OS_WINDOWS) && defined(__MINGW32__)
214658bfadSPali Rohár #include <windef.h>
224658bfadSPali Rohár #endif
234658bfadSPali Rohár 
244658bfadSPali Rohár /*
254658bfadSPali Rohár  * On Windows only MinGW 3.0 and higher versions provides <getopt.h>
264658bfadSPali Rohár  * header file. Older MinGW versions and MSVC do not have it.
27*370be0deSPali Rohár  * DJGPP does not provide <getopt.h>.
284658bfadSPali Rohár  */
29*370be0deSPali Rohár #if defined(PCI_OS_DJGPP) || (defined(PCI_OS_WINDOWS) && !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 3))
30ee7d8384SMartin Mares #include "compat/getopt.h"
31a30f0839SMartin Mares #else
3237ccbb7eSMartin Mares #include <getopt.h>
33ee7d8384SMartin Mares #endif
34ee7d8384SMartin Mares 
35727ce158SMartin Mares #define PCIUTILS_VERSION PCILIB_VERSION
36727ce158SMartin Mares 
3781afa98cSMartin Mares extern const char program_name[];
3881afa98cSMartin Mares 
394f6b38caSMartin Mares void die(char *msg, ...) NONRET PCI_PRINTF(1,2);
40d1d7d88aSMartin Mares void *xmalloc(size_t howmuch);
41d1d7d88aSMartin Mares void *xrealloc(void *ptr, size_t howmuch);
42d1d7d88aSMartin Mares char *xstrdup(const char *str);
43af34f014SMartin Mares int parse_generic_option(int i, struct pci_access *pacc, char *arg);
44727ce158SMartin Mares 
45489233b4SMartin Mares #ifdef PCI_HAVE_PM_INTEL_CONF
46727ce158SMartin Mares #define GENOPT_INTEL "H:"
47727ce158SMartin Mares #define GENHELP_INTEL "-H <mode>\tUse direct hardware access (<mode> = 1 or 2)\n"
48727ce158SMartin Mares #else
49727ce158SMartin Mares #define GENOPT_INTEL
50727ce158SMartin Mares #define GENHELP_INTEL
51727ce158SMartin Mares #endif
521b99a704SMartin Mares #if defined(PCI_HAVE_PM_DUMP) && !defined(PCIUTILS_SETPCI)
53727ce158SMartin Mares #define GENOPT_DUMP "F:"
541b99a704SMartin Mares #define GENHELP_DUMP "-F <file>\tRead PCI configuration dump from a given file\n"
55727ce158SMartin Mares #else
56727ce158SMartin Mares #define GENOPT_DUMP
57727ce158SMartin Mares #define GENHELP_DUMP
58fb38eee8SMartin Mares #endif
59fb38eee8SMartin Mares 
60f2b31663SMartin Mares #define GENERIC_OPTIONS "A:GO:" GENOPT_INTEL GENOPT_DUMP
611b99a704SMartin Mares #define GENERIC_HELP \
62a0407443SMartin Mares 	"-A <method>\tUse the specified PCI access method (see `-A help' for a list)\n" \
631b99a704SMartin Mares 	"-O <par>=<val>\tSet PCI access parameter (see `-O help' for a list)\n" \
64553d12c8SMartin Mares 	"-G\t\tEnable PCI access debugging\n" \
651b99a704SMartin Mares 	GENHELP_INTEL GENHELP_DUMP
66