]>
git.ipfire.org Git - thirdparty/pciutils.git/blob - lspci.h
2 * The PCI Utilities -- List All PCI Devices
4 * Copyright (c) 1997--2010 Martin Mares <mj@ucw.cz>
6 * Can be freely distributed and used under the terms of the GNU GPL.
13 * If we aren't being compiled by GCC, use xmalloc() instead of alloca().
14 * This increases our memory footprint, but only slightly since we don't
17 #if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__DragonFly__)
18 /* alloca() is defined in stdlib.h */
19 #elif defined(__GNUC__) && !defined(PCI_OS_WINDOWS)
23 #define alloca xmalloc
29 extern struct pci_filter filter
;
30 extern char *opt_pcimap
;
32 /*** PCI devices and access to their config space ***/
37 unsigned int config_cached
, config_bufsize
;
38 byte
*config
; /* Cached configuration space data */
39 byte
*present
; /* Maps which configuration bytes are present */
42 extern struct device
*first_dev
;
43 extern struct pci_access
*pacc
;
45 struct device
*scan_device(struct pci_dev
*p
);
46 void show_device(struct device
*d
);
48 int config_fetch(struct device
*d
, unsigned int pos
, unsigned int len
);
49 u32
get_conf_long(struct device
*d
, unsigned int pos
);
50 word
get_conf_word(struct device
*d
, unsigned int pos
);
51 byte
get_conf_byte(struct device
*d
, unsigned int pos
);
53 void get_subid(struct device
*d
, word
*subvp
, word
*subdp
);
55 /* Useful macros for decoding of bits and bit fields */
57 #define FLAG(x,y) ((x & y) ? '+' : '-')
58 #define BITS(x,at,width) (((x) >> (at)) & ((1 << (width)) - 1))
59 #define TABLE(tab,x,buf) ((x) < sizeof(tab)/sizeof((tab)[0]) ? (tab)[x] : (sprintf((buf), "??%d", (x)), (buf)))
63 void cap_vpd(struct device
*d
);
67 void show_caps(struct device
*d
);
71 void show_ext_caps(struct device
*d
);
75 void show_kernel_machine(struct device
*d UNUSED
);
76 void show_kernel(struct device
*d UNUSED
);
80 void show_forest(void);
84 void map_the_bus(void);