]> mj.ucw.cz Git - pciutils.git/blobdiff - pciutils.h
update-pciids: Report itself as an user agent, version included
[pciutils.git] / pciutils.h
index cb958cd8b9ba5b844f08624638c95b06d2e782a1..95c26e64f3d00e19c8b5424e65f3fd4112c3a290 100644 (file)
@@ -1,55 +1,63 @@
 /*
- *     $Id: pciutils.h,v 1.14 2002/03/30 15:39:24 mj Exp $
+ *     The PCI Utilities -- Declarations
  *
- *     Linux PCI Utilities -- Declarations
+ *     Copyright (c) 1997--2018 Martin Mares <mj@ucw.cz>
  *
- *     Copyright (c) 1997--1999 Martin Mares <mj@ucw.cz>
+ *     Can be freely distributed and used under the terms of the GNU GPL v2+
  *
- *     Can be freely distributed and used under the terms of the GNU GPL.
+ *     SPDX-License-Identifier: GPL-2.0-or-later
  */
 
 #include "lib/pci.h"
+#include "lib/sysdep.h"
 
-#define PCIUTILS_VERSION PCILIB_VERSION
-
-#if !defined(__GNUC__)
-#define __attribute__(x)
-#define inline
+/*
+ * gcc predefines macro __MINGW32__ for all MinGW targets.
+ * Including some MinGW header (e.g. windef.h) defines additional
+ * macro __MINGW32_MAJOR_VERSION (available for all MinGW targets).
+ */
+#if defined(PCI_OS_WINDOWS) && defined(__MINGW32__)
+#include <windef.h>
 #endif
 
-void __attribute__((noreturn)) die(char *msg, ...);
-void *xmalloc(unsigned int howmuch);
-int parse_generic_option(int i, struct pci_access *pacc, char *optarg);
-
-#ifdef HAVE_PM_LINUX_PROC
-#define GENOPT_PROC "P:"
-#define GENHELP_PROC "-P <dir>\tUse specified directory instead of " PATH_PROC_BUS_PCI "\n"
+/*
+ * On Windows only MinGW 3.0 and higher versions provides <getopt.h>
+ * header file. Older MinGW versions and MSVC do not have it.
+ */
+#if defined(PCI_OS_WINDOWS) && !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 3)
+#include "compat/getopt.h"
 #else
-#define GENOPT_PROC
-#define GENHELP_PROC
+#include <unistd.h>
 #endif
-#ifdef HAVE_PM_INTEL_CONF
+
+#define PCIUTILS_VERSION PCILIB_VERSION
+
+extern const char program_name[];
+
+void die(char *msg, ...) NONRET PCI_PRINTF(1,2);
+void *xmalloc(size_t howmuch);
+void *xrealloc(void *ptr, size_t howmuch);
+char *xstrdup(const char *str);
+int parse_generic_option(int i, struct pci_access *pacc, char *arg);
+
+#ifdef PCI_HAVE_PM_INTEL_CONF
 #define GENOPT_INTEL "H:"
 #define GENHELP_INTEL "-H <mode>\tUse direct hardware access (<mode> = 1 or 2)\n"
 #else
 #define GENOPT_INTEL
 #define GENHELP_INTEL
 #endif
-#ifdef HAVE_PM_SYSCALLS
-#define GENOPT_SYSCALLS "S"
-#define GENHELP_SYSCALLS "-S\t\tUse direct hardware access via syscalls\n"
-#else
-#define GENOPT_SYSCALLS
-#define GENHELP_SYSCALLS
-#endif
-#ifdef HAVE_PM_DUMP
+#if defined(PCI_HAVE_PM_DUMP) && !defined(PCIUTILS_SETPCI)
 #define GENOPT_DUMP "F:"
-#define GENHELP_DUMP "-F <file>\tRead configuration data from given file\n"
+#define GENHELP_DUMP "-F <file>\tRead PCI configuration dump from a given file\n"
 #else
 #define GENOPT_DUMP
 #define GENHELP_DUMP
 #endif
 
-#define GENERIC_OPTIONS "G" GENOPT_PROC GENOPT_INTEL GENOPT_SYSCALLS GENOPT_DUMP
-#define GENERIC_HELP GENHELP_PROC GENHELP_INTEL GENHELP_SYSCALLS GENHELP_DUMP \
-       "-G\t\tEnable PCI access debugging\n"
+#define GENERIC_OPTIONS "A:GO:" GENOPT_INTEL GENOPT_DUMP
+#define GENERIC_HELP \
+       "-A <method>\tUse the specified PCI access method (see `-A help' for a list)\n" \
+       "-O <par>=<val>\tSet PCI access parameter (see `-O help' for a list)\n" \
+       "-G\t\tEnable PCI access debugging\n" \
+       GENHELP_INTEL GENHELP_DUMP