CommandControlBlock
static void arcmsr_post_srb(struct AdapterControlBlock *acb, struct CommandControlBlock *srb)
static void arcmsr_free_srb(struct CommandControlBlock *srb);
static struct CommandControlBlock *arcmsr_get_freesrb(struct AdapterControlBlock *acb);
static void arcmsr_polling_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb);
static void arcmsr_srb_complete(struct CommandControlBlock *srb, int stand_flag);
static void arcmsr_report_sense_info(struct CommandControlBlock *srb);
static void arcmsr_build_srb(struct CommandControlBlock *srb, bus_dma_segment_t *dm_segs, u_int32_t nseg);
struct CommandControlBlock *srb;
static void arcmsr_free_srb(struct CommandControlBlock *srb)
static struct CommandControlBlock *arcmsr_get_freesrb(struct AdapterControlBlock *acb)
struct CommandControlBlock *srb = NULL;
struct CommandControlBlock *srb = (struct CommandControlBlock *)arg;
struct CommandControlBlock *srb;
struct CommandControlBlock *srb;
static void arcmsr_polling_hba_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
struct CommandControlBlock *srb;
srb = (struct CommandControlBlock *)
static void arcmsr_polling_hbb_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
struct CommandControlBlock *srb;
srb = (struct CommandControlBlock *)
static void arcmsr_polling_hbc_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
struct CommandControlBlock *srb;
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb & 0xFFFFFFE0));/*frame must be 32 bytes aligned*/
static void arcmsr_polling_hbd_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
struct CommandControlBlock *srb;
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb & 0xFFFFFFE0));/*frame must be 32 bytes aligned*/
static void arcmsr_polling_hbe_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
struct CommandControlBlock *srb;
static void arcmsr_polling_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
cdb_phyaddr_lo32 = srb_phyaddr_lo32 + offsetof(struct CommandControlBlock, arcmsr_cdb);
struct CommandControlBlock *srb_tmp;
srb_tmp = (struct CommandControlBlock *)acb->uncacheptr;
srb_tmp = (struct CommandControlBlock *)((unsigned long)srb_tmp + SRB_SIZE);
struct CommandControlBlock *freesrb;
freesrb = (struct CommandControlBlock *)acb->uncacheptr;
struct CommandControlBlock *srb;
static void arcmsr_report_sense_info(struct CommandControlBlock *srb)
static void arcmsr_srb_complete(struct CommandControlBlock *srb, int stand_flag)
static void arcmsr_report_srb_state(struct AdapterControlBlock *acb, struct CommandControlBlock *srb, u_int16_t error)
struct CommandControlBlock *srb;
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb & 0xFFFFFFE0)); /*frame must be 32 bytes aligned*/
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb << 5));/*frame must be 32 bytes aligned*/
struct CommandControlBlock *srb = (struct CommandControlBlock *)arg;
struct CommandControlBlock *srb;
static void arcmsr_build_srb(struct CommandControlBlock *srb,
#define SRB_SIZE ((sizeof(struct CommandControlBlock)+0x1f) & 0xffe0)
struct CommandControlBlock *psrb_pool[ARCMSR_MAX_FREESRB_NUM]; /* serial srb pointer array */
struct CommandControlBlock *srbworkingQ[ARCMSR_MAX_FREESRB_NUM]; /* working srb pointer array */