• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _GPXE_PCIBACKUP_H
2 #define _GPXE_PCIBACKUP_H
3 
4 /** @file
5  *
6  * PCI configuration space backup and restoration
7  *
8  */
9 
10 FILE_LICENCE ( GPL2_OR_LATER );
11 
12 #include <stdint.h>
13 
14 /** A PCI configuration space backup */
15 struct pci_config_backup {
16 	uint32_t dwords[64];
17 };
18 
19 /** PCI configuration space backup exclusion list end marker */
20 #define PCI_CONFIG_BACKUP_EXCLUDE_END 0xff
21 
22 /** Define a PCI configuration space backup exclusion list */
23 #define PCI_CONFIG_BACKUP_EXCLUDE(...) \
24 	{ __VA_ARGS__, PCI_CONFIG_BACKUP_EXCLUDE_END }
25 
26 extern void pci_backup ( struct pci_device *pci,
27 			 struct pci_config_backup *backup,
28 			 const uint8_t *exclude );
29 extern void pci_restore ( struct pci_device *pci,
30 			  struct pci_config_backup *backup,
31 			  const uint8_t *exclude );
32 
33 #endif /* _GPXE_PCIBACKUP_H */
34