ASC_SOFTC
adv_create_ccbs(ASC_SOFTC *sc, ADV_CCB *ccbstore, int count)
ASC_SOFTC *sc = xsc;
adv_init_ccb(ASC_SOFTC *sc, ADV_CCB *ccb)
ASC_SOFTC *sc = xsc;
adv_queue_ccb(ASC_SOFTC *sc, ADV_CCB *ccb)
adv_start_ccbs(ASC_SOFTC *sc)
adv_init(ASC_SOFTC *sc)
adv_attach(ASC_SOFTC *sc)
ASC_SOFTC *sc = sc_link->bus->sb_adapter_softc;
static int adv_alloc_ccbs(ASC_SOFTC *);
static int adv_create_ccbs(ASC_SOFTC *, ADV_CCB *, int);
static int adv_init_ccb(ASC_SOFTC *, ADV_CCB *);
static void adv_queue_ccb(ASC_SOFTC *, ADV_CCB *);
ASC_SOFTC *sc = arg;
static void adv_start_ccbs(ASC_SOFTC *);
adv_poll(ASC_SOFTC *sc, struct scsi_xfer *xs, int count)
ASC_SOFTC *sc = sc_link->bus->sb_adapter_softc;
static void adv_narrow_isr_callback(ASC_SOFTC *, ASC_QDONE_INFO *);
static int adv_poll(ASC_SOFTC *, struct scsi_xfer *, int);
ASC_SOFTC *sc = sc_link->bus->sb_adapter_softc;
adv_narrow_isr_callback(ASC_SOFTC *sc, ASC_QDONE_INFO *qdonep)
adv_alloc_ccbs(ASC_SOFTC *sc)
int adv_init(ASC_SOFTC *sc);
void adv_attach(ASC_SOFTC *sc);
AscInitMicroCodeVar(ASC_SOFTC *sc)
AscGetOnePhyAddr(ASC_SOFTC *sc, u_int8_t *buf_addr, u_int32_t buf_size)
AscGetSGList(ASC_SOFTC *sc, u_int8_t *buf_addr, u_int32_t buf_len,
static u_int16_t AscInitMicroCodeVar(ASC_SOFTC *);
static u_int32_t AscGetOnePhyAddr(ASC_SOFTC *, u_int8_t *, u_int32_t);
static u_int32_t AscGetSGList(ASC_SOFTC *, u_int8_t *, u_int32_t,
AscISR(ASC_SOFTC *sc)
AscIsrQDone(ASC_SOFTC *sc)
static void AscIsrChipHalted(ASC_SOFTC *);
static int AscIsrQDone(ASC_SOFTC *);
static int AscWaitTixISRDone(ASC_SOFTC *, u_int8_t);
static int AscWaitISRDone(ASC_SOFTC *);
AscIsrChipHalted(ASC_SOFTC *sc)
AscWaitTixISRDone(ASC_SOFTC *sc, u_int8_t target_ix)
static void AscHandleExtMsgIn(ASC_SOFTC *, u_int16_t, u_int8_t,
AscWaitISRDone(ASC_SOFTC *sc)
static u_int8_t AscMsgOutSDTR(ASC_SOFTC *, u_int8_t, u_int8_t);
static u_int8_t AscCalSDTRData(ASC_SOFTC *, u_int8_t, u_int8_t);
static u_int8_t AscGetSynPeriodIndex(ASC_SOFTC *, u_int8_t);
static int AscSendScsiQueue(ASC_SOFTC *, ASC_SCSI_Q *, u_int8_t);
static u_int AscGetNumOfFreeQueue(ASC_SOFTC *, u_int8_t, u_int8_t);
static int AscPutReadyQueue(ASC_SOFTC *, ASC_SCSI_Q *, u_int8_t);
static int AscPutReadySgListQueue(ASC_SOFTC *, ASC_SCSI_Q *, u_int8_t);
AscHandleExtMsgIn(ASC_SOFTC *sc, u_int16_t halt_q_addr, u_int8_t q_cntl,
static int AscRiscHaltedAbortCCB(ASC_SOFTC *, u_int32_t);
static int AscRiscHaltedAbortTIX(ASC_SOFTC *, u_int8_t);
static int AscSetLibErrorCode(ASC_SOFTC *, u_int16_t);
AscMsgOutSDTR(ASC_SOFTC *sc, u_int8_t sdtr_period, u_int8_t sdtr_offset)
static void AscAsyncFix(ASC_SOFTC *, u_int8_t, ASC_SCSI_INQUIRY *);
AscCalSDTRData(ASC_SOFTC *sc, u_int8_t sdtr_period, u_int8_t syn_offset)
AscGetSynPeriodIndex(ASC_SOFTC *sc, u_int8_t syn_time)
AscExeScsiQueue(ASC_SOFTC *sc, ASC_SCSI_Q *scsiq)
AscSendScsiQueue(ASC_SOFTC *sc, ASC_SCSI_Q *scsiq, u_int8_t n_q_required)
AscInitASC_SOFTC(ASC_SOFTC *sc)
AscPutReadySgListQueue(ASC_SOFTC *sc, ASC_SCSI_Q *scsiq, u_int8_t q_no)
AscPutReadyQueue(ASC_SOFTC *sc, ASC_SCSI_Q *scsiq, u_int8_t q_no)
AscGetNumOfFreeQueue(ASC_SOFTC *sc, u_int8_t target_ix, u_int8_t n_qs)
AscAbortCCB(ASC_SOFTC *sc, u_int32_t ccb)
AscRiscHaltedAbortCCB(ASC_SOFTC *sc, u_int32_t ccb)
AscRiscHaltedAbortTIX(ASC_SOFTC *sc, u_int8_t target_ix)
AscResetDevice(ASC_SOFTC *sc, u_char target_ix)
AscResetBus(ASC_SOFTC *sc)
AscSetLibErrorCode(ASC_SOFTC *sc, u_int16_t err_code)
AscInquiryHandling(ASC_SOFTC *sc, u_int8_t tid_no, ASC_SCSI_INQUIRY *inq)
AscAsyncFix(ASC_SOFTC *sc, u_int8_t tid_no, ASC_SCSI_INQUIRY *inq)
AscInitFromEEP(ASC_SOFTC *sc)
AscInitFromASC_SOFTC(ASC_SOFTC *sc)
AscInitDriver(ASC_SOFTC *sc)
AscInitLram(ASC_SOFTC *sc)
AscReInitLram(ASC_SOFTC *sc)
AscInitQLinkVar(ASC_SOFTC *sc)
static void AscInitLram(ASC_SOFTC *);
static void AscInitQLinkVar(ASC_SOFTC *);
void AscInitASC_SOFTC(ASC_SOFTC *);
u_int16_t AscInitFromEEP(ASC_SOFTC *);
u_int16_t AscInitFromASC_SOFTC(ASC_SOFTC *);
int AscInitDriver(ASC_SOFTC *);
void AscReInitLram(ASC_SOFTC *);
int AscISR(ASC_SOFTC *);
int AscExeScsiQueue(ASC_SOFTC *, ASC_SCSI_Q *);
void AscInquiryHandling(ASC_SOFTC *, u_int8_t, ASC_SCSI_INQUIRY *);
int AscAbortCCB(ASC_SOFTC *, u_int32_t);
int AscResetBus(ASC_SOFTC *);
int AscResetDevice(ASC_SOFTC *, u_char);
typedef int (* ASC_ISR_CALLBACK) (ASC_SOFTC *, ASC_QDONE_INFO *);
ASC_SOFTC *sc = (void *) self;
sizeof(ASC_SOFTC), adv_pci_match, adv_pci_attach