mirror of https://github.com/ipxe/ipxe.git
[pci] Allow pci_vpd_init() return status to be ignored
Most xxx_init() functions are void functions with no failure cases. Allow pci_vpd_init() to be used in the same way. (Subsequent calls to pci_vpd_read() etc. will fail if pci_vpd_init() fails.) Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/1/head
parent
17d28f4877
commit
267ef31791
|
@ -73,6 +73,10 @@ static int pci_vpd_read_dword ( struct pci_vpd *vpd, int address,
|
||||||
unsigned int retries;
|
unsigned int retries;
|
||||||
uint16_t flag;
|
uint16_t flag;
|
||||||
|
|
||||||
|
/* Fail if no VPD present */
|
||||||
|
if ( ! cap )
|
||||||
|
return -ENOTTY;
|
||||||
|
|
||||||
/* Return cached value, if present */
|
/* Return cached value, if present */
|
||||||
if ( pci_vpd_cache_is_valid ( vpd ) &&
|
if ( pci_vpd_cache_is_valid ( vpd ) &&
|
||||||
( vpd->cache.address == address ) ) {
|
( vpd->cache.address == address ) ) {
|
||||||
|
@ -127,6 +131,10 @@ static int pci_vpd_write_dword ( struct pci_vpd *vpd, int address,
|
||||||
unsigned int retries;
|
unsigned int retries;
|
||||||
uint16_t flag;
|
uint16_t flag;
|
||||||
|
|
||||||
|
/* Fail if no VPD present */
|
||||||
|
if ( ! cap )
|
||||||
|
return -ENOTTY;
|
||||||
|
|
||||||
/* Invalidate cache */
|
/* Invalidate cache */
|
||||||
pci_vpd_invalidate_cache ( vpd );
|
pci_vpd_invalidate_cache ( vpd );
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,17 @@ struct pci_vpd {
|
||||||
struct pci_vpd_cache cache;
|
struct pci_vpd_cache cache;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check for presence of PCI VPD
|
||||||
|
*
|
||||||
|
* @v vpd PCI VPD
|
||||||
|
* @ret is_present VPD is present
|
||||||
|
*/
|
||||||
|
static inline __attribute__ (( always_inline )) int
|
||||||
|
pci_vpd_is_present ( struct pci_vpd *vpd ) {
|
||||||
|
return ( vpd->cap != 0 );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if PCI VPD read cache is valid
|
* Check if PCI VPD read cache is valid
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue