}
/* Call UNDI ROM loader to create pixie */
- if ( ( rc = undi_load_pci ( undi, undirom, pci->bus,
- pci->devfn ) ) != 0 )
+ if ( ( rc = undi_load_pci ( undi, undirom, busdevfn ) ) != 0 )
goto err_load_pci;
}
* @v undirom UNDI ROM
* @ret rc Return status code
*/
-static int undi_load ( struct undi_device *undi, struct undi_rom *undirom ) {
+int undi_load ( struct undi_device *undi, struct undi_rom *undirom ) {
struct s_PXE ppxe;
uint16_t fbms;
unsigned int fbms_seg;
return 0;
}
-/**
- * Call UNDI loader to create a pixie
- *
- * @v undi UNDI device
- * @v undirom UNDI ROM
- * @v pci_busdevfn PCI bus:dev.fn
- * @ret rc Return status code
- */
-int undi_load_pci ( struct undi_device *undi, struct undi_rom *undirom,
- unsigned int bus, unsigned int devfn ) {
- undi->pci_busdevfn = ( ( bus << 8 ) | devfn );
- undi->isapnp_csn = 0xffff;
- undi->isapnp_read_port = 0xffff;
- return undi_load ( undi, undirom );
-}
-
/**
* Unload a pixie
*
/* Erase signatures */
if ( undi->pxenv.segment )
put_real ( dead, undi->pxenv.segment, undi->pxenv.offset );
- if ( undi->ppxe_segment )
+ if ( undi->ppxe.segment )
put_real ( dead, undi->ppxe.segment, undi->ppxe.offset );
/* Free base memory, if possible */
struct undi_device;
struct undi_rom;
-extern int undi_load_pci ( struct undi_device *undi, struct undi_rom *undirom,
- unsigned int bus, unsigned int devfn );
+extern int undi_load ( struct undi_device *undi, struct undi_rom *undirom );
extern int undi_unload ( struct undi_device *undi );
+/**
+ * Call UNDI loader to create a pixie
+ *
+ * @v undi UNDI device
+ * @v undirom UNDI ROM
+ * @v pci_busdevfn PCI bus:dev.fn
+ * @ret rc Return status code
+ */
+static inline int undi_load_pci ( struct undi_device *undi,
+ struct undi_rom *undirom,
+ unsigned int pci_busdevfn ) {
+ undi->pci_busdevfn = pci_busdevfn;
+ undi->isapnp_csn = 0xffff;
+ undi->isapnp_read_port = 0xffff;
+ return undi_load ( undi, undirom );
+}
+
#endif /* _UNDILOAD_H */