ctl_softc
ctl_isc_ha_link_up(struct ctl_softc *softc)
struct ctl_softc *softc = CTL_SOFTC(ctsio);
ctl_isc_ha_link_down(struct ctl_softc *softc)
ctl_isc_ua(struct ctl_softc *softc, union ctl_ha_msg *msg, int len)
ctl_isc_lun_sync(struct ctl_softc *softc, union ctl_ha_msg *msg, int len)
struct ctl_softc *softc = CTL_SOFTC(ctnio);
struct ctl_softc *softc = lun->ctl_softc;
ctl_isc_port_sync(struct ctl_softc *softc, union ctl_ha_msg *msg, int len)
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = CTL_SOFTC(rio);
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
ctl_i_t_nexus_loss(struct ctl_softc *softc, uint32_t initidx,
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
ctl_isc_iid_sync(struct ctl_softc *softc, union ctl_ha_msg *msg, int len)
mtx_assert(&((struct ctl_softc *)CTL_SOFTC(io))->ctl_lock, MA_NOTOWNED);
ctl_isc_login(struct ctl_softc *softc, union ctl_ha_msg *msg, int len)
mtx_assert(&((struct ctl_softc *)CTL_SOFTC(io))->ctl_lock, MA_NOTOWNED);
struct ctl_softc *softc = CTL_SOFTC(io);
ctl_isc_mode_sync(struct ctl_softc *softc, union ctl_ha_msg *msg, int len)
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = thr->ctl_softc;
struct ctl_softc *softc = (struct ctl_softc *)arg;
lun->ctl_softc->ha_mode == CTL_HA_MODE_XFER) {
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = lun->ctl_softc;
ctl_clr_ua_allluns(struct ctl_softc *ctl_softc, uint32_t initidx,
mtx_assert(&ctl_softc->ctl_lock, MA_OWNED);
STAILQ_FOREACH(lun, &ctl_softc->lun_list, links) {
struct ctl_softc *softc = (struct ctl_softc *)arg1;
struct ctl_softc *softc;
thr->ctl_softc = softc;
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = dev->si_drv1;
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = port->ctl_softc;
ctl_pool_create(struct ctl_softc *ctl_softc, const char *pool_name,
pool->ctl_softc = ctl_softc;
NULL, NULL, NULL, ctl_softc->io_zone);
pool->zone = ctl_softc->io_zone;
CTL_SOFTC(io) = pool->ctl_softc;
CTL_SOFTC(io) = pool->ctl_softc;
CTL_SOFTC(io) = pool->ctl_softc;
static int ctl_pro_preempt(struct ctl_softc *softc, struct ctl_lun *lun,
struct ctl_softc *ctl_softc = control_softc;
mtx_lock(&ctl_softc->ctl_lock);
|| (ctl_is_set(ctl_softc->ctl_lun_mask, be_lun->req_lun_id))) {
mtx_unlock(&ctl_softc->ctl_lock);
lun_number = ctl_ffz(ctl_softc->ctl_lun_mask, 0, ctl_max_luns);
mtx_unlock(&ctl_softc->ctl_lock);
ctl_set_mask(ctl_softc->ctl_lun_mask, lun_number);
mtx_unlock(&ctl_softc->ctl_lock);
static void ctl_i_t_nexus_loss(struct ctl_softc *softc, uint32_t initidx,
lun->ctl_softc = ctl_softc;
mtx_lock(&ctl_softc->ctl_lock);
STAILQ_FOREACH(nlun, &ctl_softc->lun_list, links) {
STAILQ_INSERT_TAIL(&ctl_softc->lun_list, lun, links);
ctl_softc->ctl_luns[lun_number] = lun;
ctl_softc->num_luns++;
mtx_unlock(&ctl_softc->ctl_lock);
mtx_lock(&ctl_softc->ctl_lock);
STAILQ_REMOVE(&ctl_softc->lun_list, lun, ctl_lun, links);
ctl_clear_mask(ctl_softc->ctl_lun_mask, lun_number);
ctl_softc->ctl_luns[lun_number] = NULL;
ctl_softc->num_luns--;
mtx_unlock(&ctl_softc->ctl_lock);
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc;
softc = lun->ctl_softc;
struct ctl_softc *softc;
softc = lun->ctl_softc;
lun->ctl_softc->ha_mode == CTL_HA_MODE_XFER) {
if (lun->ctl_softc->ha_mode == CTL_HA_MODE_XFER) {
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = CTL_SOFTC(ctsio);
ctl_isc_handler_finish_xfer(struct ctl_softc *ctl_softc,
struct ctl_softc *softc = CTL_SOFTC(ctsio);
ctl_isc_handler_finish_ser_only(struct ctl_softc *ctl_softc,
ctl_pro_preempt(struct ctl_softc *softc, struct ctl_lun *lun, uint64_t res_key,
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = CTL_SOFTC(io);
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *control_softc = NULL;
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc;
void ctl_clr_ua_allluns(struct ctl_softc *ctl_softc, uint32_t initidx,
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = control_softc;
mtx_assert(&lun->ctl_softc->ctl_lock, MA_NOTOWNED);
mtx_lock(&lun->ctl_softc->ctl_lock);
ctl_clr_ua_allluns(lun->ctl_softc, initidx, ua_to_build);
mtx_unlock(&lun->ctl_softc->ctl_lock);
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = control_softc;
struct ctl_softc *softc = control_softc;
port->ctl_softc = softc;
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = port->ctl_softc;
struct ctl_softc *softc = control_softc;
struct ctl_softc *ctl_softc;
struct ctl_softc *ha_ctl_softc;
ctl_ha_msg_init(struct ctl_softc *ctl_softc)
softc->ha_ctl_softc = ctl_softc;
&ctl_softc->ctl_proc, NULL, 0, 0, "ctl", "ha_tx");
ctl_ha_msg_shutdown, ctl_softc, SHUTDOWN_PRI_FIRST);
SYSCTL_ADD_PROC(&ctl_softc->sysctl_ctx,
SYSCTL_CHILDREN(ctl_softc->sysctl_tree),
ctl_ha_msg_shutdown(struct ctl_softc *ctl_softc)
ctl_ha_msg_destroy(struct ctl_softc *ctl_softc)
ctl_ha_msg_shutdown(ctl_softc); /* Just in case. */
struct ctl_softc;
ctl_ha_status ctl_ha_msg_init(struct ctl_softc *softc);
void ctl_ha_msg_shutdown(struct ctl_softc *softc);
ctl_ha_status ctl_ha_msg_destroy(struct ctl_softc *softc);
#define CTL_PORT(io) (((struct ctl_softc *)CTL_SOFTC(io))-> \
struct ctl_softc *ctl_softc;
struct ctl_softc *ctl_softc;
struct ctl_softc *ctl_softc;
extern struct ctl_softc *control_softc;
int ctl_pool_create(struct ctl_softc *ctl_softc, const char *pool_name,
void ctl_tpc_init(struct ctl_softc *softc);
void ctl_tpc_shutdown(struct ctl_softc *softc);
struct ctl_softc *ctl_softc;
struct ctl_softc *softc = lun->ctl_softc;
struct ctl_softc *softc = arg;
ctl_tpc_init(struct ctl_softc *softc)
struct ctl_softc *softc = CTL_SOFTC(ctsio);
ctl_tpc_shutdown(struct ctl_softc *softc)
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = CTL_SOFTC(ctsio);
struct ctl_softc *softc = lun->ctl_softc;
return (tpcl_resolve(list->lun->ctl_softc,
uint64_t tpcl_resolve(struct ctl_softc *softc, int init_port,
tpcl_resolve(struct ctl_softc *softc, int init_port,