/* * $Id: common.c,v 1.1 1999/01/22 21:04:50 mj Exp $ * * Linux PCI Utilities -- Common Functions * * Copyright (c) 1997--1999 Martin Mares * * Can be freely distributed and used under the terms of the GNU GPL. */ #include #include #include #include #include #include "pciutils.h" void __attribute__((noreturn)) die(char *msg, ...) { va_list args; va_start(args, msg); fputs("lspci: ", stderr); vfprintf(stderr, msg, args); fputc('\n', stderr); exit(1); } void * xmalloc(unsigned int howmuch) { void *p = malloc(howmuch); if (!p) die("Unable to allocate %d bytes of memory", howmuch); return p; } int parse_generic_option(int i, struct pci_access *pacc, char *optarg) { switch (i) { #ifdef HAVE_PM_LINUX_PROC case 'P': pacc->method_params[PCI_ACCESS_PROC_BUS_PCI] = optarg; pacc->method = PCI_ACCESS_PROC_BUS_PCI; break; #endif #ifdef HAVE_PM_INTEL_CONF case 'H': if (!strcmp(optarg, "1")) pacc->method = PCI_ACCESS_I386_TYPE1; else if (!strcmp(optarg, "2")) pacc->method = PCI_ACCESS_I386_TYPE2; else die("Unknown hardware configuration type %s", optarg); break; #endif #ifdef HAVE_PM_SYSCALLS case 'S': pacc->method = PCI_ACCESS_SYSCALLS; break; #endif #ifdef HAVE_PM_DUMP case 'F': pacc->method_params[PCI_ACCESS_DUMP] = optarg; pacc->method = PCI_ACCESS_DUMP; break; #endif case 'G': pacc->debugging++; break; default: return 0; } return 1; }