version 1.114, 2020/04/04 21:36:15 |
version 1.115, 2020/04/13 10:49:34 |
Line 102 extern int wdcdebug_wd_mask; /* inited i |
|
Line 102 extern int wdcdebug_wd_mask; /* inited i |
|
|
|
#define ATA_DELAY 10000 /* 10s for a drive I/O */ |
#define ATA_DELAY 10000 /* 10s for a drive I/O */ |
|
|
static int wdc_ata_bio(struct ata_drive_datas*, struct ata_xfer *); |
static void wdc_ata_bio(struct ata_drive_datas*, struct ata_xfer *); |
static int wdc_ata_bio_start(struct ata_channel *,struct ata_xfer *); |
static int wdc_ata_bio_start(struct ata_channel *,struct ata_xfer *); |
static int _wdc_ata_bio_start(struct ata_channel *,struct ata_xfer *); |
static int _wdc_ata_bio_start(struct ata_channel *,struct ata_xfer *); |
static void wdc_ata_bio_poll(struct ata_channel *,struct ata_xfer *); |
static void wdc_ata_bio_poll(struct ata_channel *,struct ata_xfer *); |
Line 140 static const struct ata_xfer_ops wdc_bio |
|
Line 140 static const struct ata_xfer_ops wdc_bio |
|
}; |
}; |
|
|
/* |
/* |
* Handle block I/O operation. Return ATACMD_COMPLETE, ATACMD_QUEUED, or |
* Handle block I/O operation. |
* ATACMD_TRY_AGAIN. Must be called at splbio(). |
|
*/ |
*/ |
static int |
static void |
wdc_ata_bio(struct ata_drive_datas *drvp, struct ata_xfer *xfer) |
wdc_ata_bio(struct ata_drive_datas *drvp, struct ata_xfer *xfer) |
{ |
{ |
struct ata_channel *chp = drvp->chnl_softc; |
struct ata_channel *chp = drvp->chnl_softc; |
Line 171 wdc_ata_bio(struct ata_drive_datas *drvp |
|
Line 170 wdc_ata_bio(struct ata_drive_datas *drvp |
|
xfer->c_bcount = ata_bio->bcount; |
xfer->c_bcount = ata_bio->bcount; |
xfer->ops = &wdc_bio_xfer_ops; |
xfer->ops = &wdc_bio_xfer_ops; |
ata_exec_xfer(chp, xfer); |
ata_exec_xfer(chp, xfer); |
return (ata_bio->flags & ATA_ITSDONE) ? ATACMD_COMPLETE : ATACMD_QUEUED; |
|
} |
} |
|
|
static int |
static int |