#ifndef _UNDIROM_H
#define _UNDIROM_H

/** @file
 *
 * UNDI expansion ROMs
 *
 */

FILE_LICENCE ( GPL2_OR_LATER );

#include <pxe_types.h>

/** An UNDI PCI device ID */
struct undi_pci_device_id {
	/** PCI vendor ID */
	unsigned int vendor_id;
	/** PCI device ID */
	unsigned int device_id;
};

/** An UNDI device ID */
union undi_device_id {
	/** PCI device ID */
	struct undi_pci_device_id pci;
};

/** An UNDI ROM */
struct undi_rom {
	/** List of UNDI ROMs */
	struct list_head list;
	/** ROM segment address */
	unsigned int rom_segment;
	/** UNDI loader entry point */
	SEGOFF16_t loader_entry;
	/** Code segment size */
	size_t code_size;
	/** Data segment size */
	size_t data_size;
	/** Bus type
	 *
	 * Values are as used by @c PXENV_UNDI_GET_NIC_TYPE
	 */
	unsigned int bus_type;
	/** Device ID */
	union undi_device_id bus_id;
};

extern struct undi_rom * undirom_find_pci ( unsigned int vendor_id,
					    unsigned int device_id,
					    unsigned int rombase );

#endif /* _UNDIROM_H */
