int	iop_lct_get0(struct iop_softc *, struct i2o_lct *, int, u_int32_t);
int	iop_lct_get0(struct iop_softc *, struct i2o_lct *, size_t, u_int32_t);
LIST_HEAD(, iop_initiator) *iop_ictxhashtbl;u_long	iop_ictxhash;void	*iop_sdh;struct	i2o_systab *iop_systab;int	iop_systab_size;struct cfdriver iop_cd = {	NULL, "iop", DV_DULL};#define	IC_CONFIGURE	0x01#define	IC_PRIORITY	0x02struct iop_class {	u_short	ic_class;	u_short	ic_flags;#ifdef I2OVERBOSE	const char	*ic_caption;#endif} static const iop_class[] = {	{			I2O_CLASS_EXECUTIVE,		0,		COMMENT("executive")	},	{		I2O_CLASS_DDM,		0,		COMMENT("device driver module")	},	{		I2O_CLASS_RANDOM_BLOCK_STORAGE,		IC_CONFIGURE | IC_PRIORITY,		IFVERBOSE("random block storage")	},	{		I2O_CLASS_SEQUENTIAL_STORAGE,		IC_CONFIGURE | IC_PRIORITY,		IFVERBOSE("sequential storage")	},	{		I2O_CLASS_LAN,		IC_CONFIGURE | IC_PRIORITY,		IFVERBOSE("LAN port")	},	{		I2O_CLASS_WAN,		IC_CONFIGURE | IC_PRIORITY,		IFVERBOSE("WAN port")	},	{		I2O_CLASS_FIBRE_CHANNEL_PORT,		IC_CONFIGURE,		IFVERBOSE("fibrechannel port")	},	{		I2O_CLASS_FIBRE_CHANNEL_PERIPHERAL,		0,		COMMENT("fibrechannel peripheral")	}, 	{ 		I2O_CLASS_SCSI_PERIPHERAL, 		0, 		COMMENT("SCSI peripheral") 	},	{		I2O_CLASS_ATE_PORT,		IC_CONFIGURE,		IFVERBOSE("ATE port")	},	{			I2O_CLASS_ATE_PERIPHERAL,		0,		COMMENT("ATE peripheral")	},	{			I2O_CLASS_FLOPPY_CONTROLLER,		IC_CONFIGURE,		IFVERBOSE("floppy controller")	},	{		I2O_CLASS_FLOPPY_DEVICE,		0,		COMMENT("floppy device")	},	{		I2O_CLASS_BUS_ADAPTER_PORT,		IC_CONFIGURE,		IFVERBOSE("bus adapter port" )	},};#if defined(I2ODEBUG) && defined(I2OVERBOSE)static const char * const iop_status[] = {	"success",	"abort (dirty)",	"abort (no data transfer)",	"abort (partial transfer)",	"error (dirty)",	"error (no data transfer)",	"error (partial transfer)",	"undefined error code",	"process abort (dirty)",	"process abort (no data transfer)",	"process abort (partial transfer)",	"transaction error",};#endifstatic inline u_int32_t	iop_inl(struct iop_softc *, int);static inline void	iop_outl(struct iop_softc *, int, u_int32_t);void	iop_config_interrupts(struct device *);void	iop_configure_devices(struct iop_softc *, int, int);void	iop_devinfo(int, char *);int	iop_print(void *, const char *);int	iop_reconfigure(struct iop_softc *, u_int);void	iop_shutdown(void *);int	iop_submatch(struct device *, void *, void *);#ifdef notyetint	iop_vendor_print(void *, const char *);#endifvoid	iop_adjqparam(struct iop_softc *, int);void	iop_create_reconf_thread(void *);int	iop_handle_reply(struct iop_softc *, u_int32_t);int	iop_hrt_get(struct iop_softc *);int	iop_hrt_get0(struct iop_softc *, struct i2o_hrt *, int);void	iop_intr_event(struct device *, struct iop_msg *, void *);int	iop_lct_get0(struct iop_softc *, struct i2o_lct *, int,			     u_int32_t);void	iop_msg_poll(struct iop_softc *, struct iop_msg *, int);void	iop_msg_wait(struct iop_softc *, struct iop_msg *, int);int	iop_ofifo_init(struct iop_softc *);int	iop_passthrough(struct iop_softc *, struct ioppt *);int	iop_post(struct iop_softc *, u_int32_t *, int size);void	iop_reconf_thread(void *);void	iop_release_mfa(struct iop_softc *, u_int32_t);int	iop_reset(struct iop_softc *);int	iop_status_get(struct iop_softc *, int);int	iop_systab_set(struct iop_softc *);void	iop_tfn_print(struct iop_softc *, struct i2o_fault_notify *);#ifdef I2ODEBUGvoid	iop_reply_print(struct iop_softc *, struct i2o_reply *);#endifcdev_decl(iop);static inline u_int32_tiop_inl(struct iop_softc *sc, int off){	bus_space_barrier(sc->sc_iot, sc->sc_ioh, off, 4,	    BUS_SPACE_BARRIER_WRITE | BUS_SPACE_BARRIER_READ);	return (bus_space_read_4(sc->sc_iot, sc->sc_ioh, off));}