fas_cmd
struct fas_cmd *sp = active->f_slot[tag];
int regno = (uintptr_t)&fasreg->fas_cmd - (uintptr_t)fasreg;
fasreg->fas_cmd = cmd;
struct fas_cmd *sp = fas->f_readyf[slot];
static int fas_prepare_pkt(struct fas *fas, struct fas_cmd *sp);
static int fas_alloc_tag(struct fas *fas, struct fas_cmd *sp);
static int fas_accept_pkt(struct fas *fas, struct fas_cmd *sp, int flag);
struct fas_cmd *cmd = PKT2CMD(pkt);
struct fas_cmd *sp = PKT2CMD(pkt);
static int fas_startcmd(struct fas *fas, struct fas_cmd *sp);
struct fas_cmd *cmd;
struct fas_cmd *new_cmd;
static int fas_pkt_alloc_extern(struct fas *fas, struct fas_cmd *sp,
static void fas_pkt_destroy_extern(struct fas *fas, struct fas_cmd *sp);
sizeof (struct fas_cmd));
static void fas_handle_qfull(struct fas *fas, struct fas_cmd *sp);
static void fas_runpoll(struct fas *fas, short slot, struct fas_cmd *sp);
struct fas_cmd *sp = PKT2CMD(pkt);
fas_pkt_alloc_extern(struct fas *fas, struct fas_cmd *sp,
fas_pkt_destroy_extern(struct fas *fas, struct fas_cmd *sp)
struct fas_cmd *cmd = buf;
struct fas_cmd *cmd = buf;
struct fas_cmd *sp = PKT2CMD(pkt);
static void fas_head_of_readyQ(struct fas *fas, struct fas_cmd *sp);
struct fas_cmd *dp = fas->f_waitb;
fas_prepare_pkt(struct fas *fas, struct fas_cmd *sp)
static void fas_sync_wide_backoff(struct fas *fas, struct fas_cmd *sp,
static int fas_set_new_window(struct fas *fas, struct fas_cmd *sp);
static int fas_restore_pointers(struct fas *fas, struct fas_cmd *sp);
struct fas_cmd *sp;
struct fas_cmd *waitf, *waitb;
static int fas_next_window(struct fas *fas, struct fas_cmd *sp, uint64_t end);
static void fas_dump_cmd(struct fas *fas, struct fas_cmd *sp);
static void fas_short_dump_cmd(struct fas *fas, struct fas_cmd *sp);
fas_accept_pkt(struct fas *fas, struct fas_cmd *sp, int flag)
static void fas_makeproxy_cmd(struct fas_cmd *sp,
static int fas_do_proxy_cmd(struct fas *fas, struct fas_cmd *sp,
struct fas_cmd *ssp = fas->f_readyf[slot];
struct fas_cmd *dp = ssp->cmd_forw;
static int fas_abort_cmd(struct fas *fas, struct fas_cmd *sp, int slot);
struct fas_cmd *dp = fas->f_readyb[slot];
static int fas_remove_from_readyQ(struct fas *fas, struct fas_cmd *sp,
fas_alloc_tag(struct fas *fas, struct fas_cmd *sp)
static void fas_flush_cmd(struct fas *fas, struct fas_cmd *sp,
static int fas_abort_connected_cmd(struct fas *fas, struct fas_cmd *sp,
struct fas_cmd *sp, uchar_t msg, int slot);
static void fas_set_pkt_reason(struct fas *fas, struct fas_cmd *sp,
struct fas_cmd *sp;
fas_startcmd(struct fas *fas, struct fas_cmd *sp)
struct fas_cmd *dp;
static void fas_remove_cmd(struct fas *fas, struct fas_cmd *sp, int timeout);
static void fas_decrement_ncmds(struct fas *fas, struct fas_cmd *sp);
static int fas_handle_sts_chk(struct fas *fas, struct fas_cmd *sp);
void fas_call_pkt_comp(struct fas *fas, struct fas_cmd *sp);
fas->f_reg->fas_cmd = (cmd), fas->f_last_cmd = (cmd)
fas_remove_cmd(struct fas *fas, struct fas_cmd *sp, int new_timeout_flag)
struct fas_cmd *ssp;
fas_decrement_ncmds(struct fas *fas, struct fas_cmd *sp)
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = NULL;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_current_sp;
fas_restore_pointers(struct fas *fas, struct fas_cmd *sp)
fas_set_new_window(struct fas *fas, struct fas_cmd *sp)
fas_next_window(struct fas *fas, struct fas_cmd *sp, uint64_t end)
fasreg->fas_cmd, fas->f_stat, fas->f_intr, fasreg->fas_step,
IPRINTF1("lastcmd=%x\n", fas->f_reg->fas_cmd);
fas_runpoll(struct fas *fas, short slot, struct fas_cmd *sp)
struct fas_cmd *rqpktp;
struct fas_cmd *rqpktp;
struct fas_cmd *sp = pkt->pkt_ha_private;
struct fas_cmd *ssp = arq_data->arq_save_sp;
fas_handle_sts_chk(struct fas *fas, struct fas_cmd *sp)
struct fas_cmd *arqsp = fas->f_arq_pkt[sp->cmd_slot];
fas_handle_qfull(struct fas *fas, struct fas_cmd *sp)
struct fas_cmd *sp = NULL;
struct fas_cmd *ssp;
fas_sync_wide_backoff(struct fas *fas, struct fas_cmd *sp,
struct fas_cmd *sp = fas->f_current_sp;
fas_abort_cmd(struct fas *fas, struct fas_cmd *sp, int slot)
struct fas_cmd *sp;
struct fas_cmd *cur_sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_readyf[slot];
fas_set_pkt_reason(struct fas *fas, struct fas_cmd *sp, uchar_t reason,
fas_remove_from_readyQ(struct fas *fas, struct fas_cmd *sp, int slot)
struct fas_cmd *ssp, *psp;
fas_head_of_readyQ(struct fas *fas, struct fas_cmd *sp)
struct fas_cmd *dp;
struct fas_cmd *sp, *nsp;
struct fas_cmd *sp;
fas_flush_cmd(struct fas *fas, struct fas_cmd *sp, uchar_t reason,
fas_makeproxy_cmd(struct fas_cmd *sp, struct scsi_address *ap,
fas_do_proxy_cmd(struct fas *fas, struct fas_cmd *sp,
fas_abort_connected_cmd(struct fas *fas, struct fas_cmd *sp, uchar_t msg)
struct fas_cmd *sp, uchar_t msg, int slot)
auto struct fas_cmd local;
struct fas_cmd *proxy_cmdp = &local;
struct fas_cmd *cur_sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_arq_pkt[i];
auto struct fas_cmd local;
struct fas_cmd *sp = &local;
struct fas_cmd *sp = fas->f_current_sp;
struct fas_cmd *sp = fas->f_arq_pkt[slot];
struct fas_cmd *sp = fas->f_current_sp;
fas_cnt, fasreg->fas_cmd, fasreg->fas_stat, fasreg->fas_stat2,
fas_dump_cmd(struct fas *fas, struct fas_cmd *sp)
fas_short_dump_cmd(struct fas *fas, struct fas_cmd *sp)
fas_call_pkt_comp(register struct fas *fas, register struct fas_cmd *sp)
register struct fas_cmd *dp = fas->f_c_qb;
register struct fas_cmd *sp);
register struct fas_cmd *sp;
register struct fas_cmd *qf = fas->f_c_qf;
_NOTE(SCHEME_PROTECTS_DATA("unique per pkt", fas_cmd))
struct fas_cmd *arq_save_sp;
#define PKT2CMD(pkt) ((struct fas_cmd *)(pkt)->pkt_ha_private)
#define EXTCMD_SIZE (sizeof (struct fas_cmd) + scsi_pkt_size())
struct fas_cmd *cmd_forw; /* ready fifo que link */
uint8_t fas_cmd; /* RW: command register */
struct fas_cmd *f_current_sp; /* currently active cmd */
struct fas_cmd *f_readyf[N_SLOTS]; /* waiting cmds */
struct fas_cmd *f_readyb[N_SLOTS];
struct fas_cmd *f_arq_pkt[N_SLOTS];
struct fas_cmd *f_c_qf;
struct fas_cmd *f_c_qb;
struct fas_cmd *f_waitf;
struct fas_cmd *f_waitb;
struct fas_cmd *f_slot[1]; /* may be for 256 for TQ */
(sizeof (struct fas_cmd *) * (NTAGS -1)))