static void  wdgetdisklabel	__P((dev_t dev, struct wd_softc *));
static void  wdgetdisklabel __P((dev_t dev, struct wd_softc *, struct disklabel *, struct cpu_disklabel *, int));
LIST_HEAD(, wd_ioctl) wi_head;struct	wd_ioctl *wi_find __P((struct buf *));void	wi_free __P((struct wd_ioctl *));struct	wd_ioctl *wi_get __P((void));void	wdioctlstrategy __P((struct buf *));void  wdgetdefaultlabel __P((struct wd_softc *, struct disklabel *));static void  wdgetdisklabel	__P((dev_t dev, struct wd_softc *));void  wdstrategy	__P((struct buf *));void  wdstart	__P((void *));void  __wdstart	__P((struct wd_softc*, struct buf *));void  wdrestart __P((void*));int   wd_get_params __P((struct wd_softc *, u_int8_t, struct ataparams *));void  wd_flushcache __P((struct wd_softc *, int));void  wd_shutdown __P((void*));struct dkdriver wddkdriver = { wdstrategy };/* XXX: these should go elsewhere */cdev_decl(wd);bdev_decl(wd);#ifdef HAS_BAD144_HANDLINGstatic void bad144intern __P((struct wd_softc *));#endifint	wdlock	__P((struct wd_softc *));void	wdunlock	__P((struct wd_softc *));intwdprobe(parent, match_, aux)	struct device *parent;#ifndef __OpenBSD__	struct cfdata *match;#else	void *match_;#endif	void *aux;{	struct ata_atapi_attach *aa_link = aux;	struct cfdata *match = match_;	if (aa_link == NULL)		return 0;	if (aa_link->aa_type != T_ATA)		return 0;#ifndef __OpenBSD__	if (match->cf_loc[ATACF_CHANNEL] != ATACF_CHANNEL_DEFAULT &&	    match->cf_loc[ATACF_CHANNEL] != aa_link->aa_channel)		return 0;	if (match->cf_loc[ATACF_DRIVE] != ATACF_DRIVE_DEFAULT &&	    match->cf_loc[ATACF_DRIVE] != aa_link->aa_drv_data->drive)		return 0;#else	if (match->cf_loc[0] != -1 &&	    match->cf_loc[0] != aa_link->aa_channel)		return 0;	if (match->cf_loc[1] != -1 &&	    match->cf_loc[1] != aa_link->aa_drv_data->drive)		return 0;#endif	return 1;}