Lines Matching defs:privp

2379 		struct sf_els_hdr	*privp;	/* ptr to private list */
2446 privp = sf->sf_els_list;
2447 while (privp != NULL) {
2448 fpkt = privp->fpkt;
2451 (privp->timeout != SF_INVALID_TIMEOUT)) {
2460 tmpp2 = privp->next; /* save ptr to next */
2463 privp->next = head;
2464 head = privp;
2486 privp = tmpp2; /* skip to next entry */
2488 tmpp1 = privp; /* save ptr to prev entry */
2489 privp = privp->next; /* skip to next entry */
2499 privp = head;
2500 while (privp != NULL) {
2501 fpkt = privp->fpkt;
2502 privp = privp->next;
2595 struct sf_els_hdr *privp;
2600 (caddr_t *)&privp, (caddr_t *)&logi) == NULL) {
2606 privp->lip_cnt = lip_cnt;
2625 privp->els_code = els_code;
2631 privp->timeout = sf_watchdog_time + SF_ELS_TIMEOUT;
2632 return (sf_els_transport(sf, privp));
2641 sf_els_transport(struct sf *sf, struct sf_els_hdr *privp)
2643 struct fcal_packet *fpkt = privp->fpkt;
2646 (void) ddi_dma_sync(privp->cmd_dma_handle, (off_t)0, (size_t)0,
2648 privp->prev = NULL;
2650 privp->next = sf->sf_els_list;
2652 sf->sf_els_list->prev = privp;
2654 sf->sf_els_list = privp;
2661 if (privp->prev != NULL) {
2662 privp->prev->next = privp->next;
2664 if (privp->next != NULL) {
2665 privp->next->prev = privp->prev;
2667 if (sf->sf_els_list == privp) {
2668 sf->sf_els_list = privp->next;
2684 struct sf_els_hdr *privp = fpkt->fcal_pkt_private;
2685 struct sf *sf = privp->sf;
2688 struct la_els_logi *ptr = (struct la_els_logi *)privp->rsp;
2701 if (privp->timeout == SF_INVALID_TIMEOUT) {
2705 if (privp->prev != NULL) {
2706 privp->prev->next = privp->next;
2708 if (privp->next != NULL) {
2709 privp->next->prev = privp->prev;
2711 if (sf->sf_els_list == privp) {
2712 sf->sf_els_list = privp->next;
2714 privp->prev = privp->next = NULL;
2725 (void) ddi_dma_sync(privp->rsp_dma_handle, (off_t)0, (size_t)0,
2736 switch (privp->els_code) {
2743 privp->dest_nport_id,
2747 if (!sf_do_prli(sf, privp, ptr)) {
2758 privp->dest_nport_id));
2760 if (sf_do_adisc(sf, privp) != 1) {
2772 privp->dest_nport_id));
2775 if ((target = sf_create_target(sf, privp,
2787 privp->dest_nport_id) {
2792 (uchar_t)privp->dest_nport_id],
2793 privp->dest_nport_id,
2803 if (!sf_do_reportlun(sf, privp, target)) {
2814 privp->els_code, privp->dest_nport_id));
2826 tgt_id = sf_alpa_to_switch[(uchar_t)privp->dest_nport_id];
2830 if (++(privp->retries) < sf_els_retries &&
2842 privp->timeout = sf_watchdog_time + SF_ELS_TIMEOUT;
2843 privp->prev = NULL;
2847 if (privp->lip_cnt == sf->sf_lip_cnt) {
2850 privp->els_code, privp->dest_nport_id));
2851 privp->next = sf->sf_els_list;
2853 sf->sf_els_list->prev = privp;
2856 sf->sf_els_list = privp;
2862 privp->delayed_retry = 1;
2870 if (privp->prev != NULL) {
2871 privp->prev->next =
2872 privp->next;
2874 if (privp->next != NULL) {
2875 privp->next->prev =
2876 privp->prev;
2878 if (sf->sf_els_list == privp) {
2879 sf->sf_els_list = privp->next;
2893 privp->els_code, privp->dest_nport_id));
2913 if (sf->sf_lip_cnt == privp->lip_cnt) {
2917 sf_finish_init(sf, privp->lip_cnt);
2932 sf_do_prli(struct sf *sf, struct sf_els_hdr *privp, struct la_els_logi *ptr)
2934 struct la_els_prli *prli = (struct la_els_prli *)privp->cmd;
2936 struct fcal_packet *fpkt = privp->fpkt;
2941 privp->els_code = LA_ELS_PRLI;
2961 bcopy((caddr_t)&ptr->nport_ww_name, (caddr_t)&privp->port_wwn,
2962 sizeof (privp->port_wwn));
2963 bcopy((caddr_t)&ptr->node_ww_name, (caddr_t)&privp->node_wwn,
2964 sizeof (privp->node_wwn));
2966 privp->timeout = sf_watchdog_time + SF_ELS_TIMEOUT;
2967 return (sf_els_transport(sf, privp));
2976 sf_do_adisc(struct sf *sf, struct sf_els_hdr *privp)
2978 struct la_els_adisc *adisc = (struct la_els_adisc *)privp->cmd;
2979 struct fcal_packet *fpkt = privp->fpkt;
2981 privp->els_code = LA_ELS_ADISC;
2995 privp->timeout = sf_watchdog_time + SF_ELS_TIMEOUT;
2996 return (sf_els_transport(sf, privp));
3007 struct sf_els_hdr *privp;
3026 if ((privp = (struct sf_els_hdr *)kmem_zalloc(priv_size,
3033 privp->size = priv_size;
3034 fpkt->fcal_pkt_private = (caddr_t)privp;
3109 privp->cmd = cmd;
3110 privp->sf = sf;
3111 privp->cmd_dma_handle = cmd_dma_handle;
3112 privp->cmd_acc_handle = cmd_acc_handle;
3113 privp->rsp = rsp;
3114 privp->rsp_dma_handle = rsp_dma_handle;
3115 privp->rsp_acc_handle = rsp_acc_handle;
3116 privp->dest_nport_id = dest_id;
3117 privp->fpkt = fpkt;
3154 *rprivp = (caddr_t)privp;
3164 privp->cmd_dma_handle = NULL;
3171 privp->rsp_dma_handle = NULL;
3181 struct sf_els_hdr *privp = fpkt->fcal_pkt_private;
3183 if (privp != NULL) {
3184 if (privp->cmd_dma_handle != NULL) {
3185 (void) ddi_dma_unbind_handle(privp->cmd_dma_handle);
3186 ddi_dma_free_handle(&privp->cmd_dma_handle);
3188 if (privp->cmd != NULL) {
3189 ddi_dma_mem_free(&privp->cmd_acc_handle);
3192 if (privp->rsp_dma_handle != NULL) {
3193 (void) ddi_dma_unbind_handle(privp->rsp_dma_handle);
3194 ddi_dma_free_handle(&privp->rsp_dma_handle);
3197 if (privp->rsp != NULL) {
3198 ddi_dma_mem_free(&privp->rsp_acc_handle);
3200 if (privp->data_dma_handle) {
3201 (void) ddi_dma_unbind_handle(privp->data_dma_handle);
3202 ddi_dma_free_handle(&privp->data_dma_handle);
3204 if (privp->data_buf) {
3205 ddi_dma_mem_free(&privp->data_acc_handle);
3207 kmem_free(privp, privp->size);
3214 sf_create_target(struct sf *sf, struct sf_els_hdr *privp, int tnum, int64_t lun)
3226 if (sf->sf_lip_cnt != privp->lip_cnt) {
3233 target = sf_lookup_target(sf, privp->port_wwn, lun);
3239 if ((ptarget = sf_lookup_target(sf, privp->port_wwn,
3268 target->sft_lip_cnt = privp->lip_cnt;
3272 target->sft_al_pa = (uchar_t)privp->dest_nport_id;
3286 bcopy((caddr_t)&privp->node_wwn,
3287 (caddr_t)&ntarget->sft_node_wwn, sizeof (privp->node_wwn));
3288 bcopy((caddr_t)&privp->port_wwn,
3289 (caddr_t)&ntarget->sft_port_wwn, sizeof (privp->port_wwn));
3301 hash = SF_HASH(privp->port_wwn, lun);
3305 ntarget->sft_lip_cnt = privp->lip_cnt;
3306 ntarget->sft_al_pa = (uchar_t)privp->dest_nport_id;
3358 if (bcmp((caddr_t)&privp->port_wwn, (caddr_t)&otarget->
3359 sft_port_wwn, sizeof (privp->port_wwn))) {
3376 bcopy((caddr_t)&privp->node_wwn,
3377 (caddr_t)&ntarget->sft_node_wwn, sizeof (privp->node_wwn));
3378 bcopy((caddr_t)&privp->port_wwn,
3379 (caddr_t)&ntarget->sft_port_wwn, sizeof (privp->port_wwn));
3389 hash = SF_HASH(privp->port_wwn, lun); /* lun 0 */
3394 target->sft_lip_cnt = privp->lip_cnt;
3395 target->sft_al_pa = (uchar_t)privp->dest_nport_id;
3409 target->sft_lip_cnt = privp->lip_cnt;
3412 target->sft_al_pa = (uchar_t)privp->dest_nport_id;
3465 sf_do_reportlun(struct sf *sf, struct sf_els_hdr *privp,
3468 struct fcal_packet *fpkt = privp->fpkt;
3477 struct fcp_cmd *reportlun = (struct fcp_cmd *)privp->cmd;
3512 privp->els_code = 0;
3513 privp->target = target;
3514 privp->data_dma_handle = lun_dma_handle;
3515 privp->data_acc_handle = lun_acc_handle;
3516 privp->data_buf = lun_buf;
3547 privp->timeout = sf_watchdog_time + SF_FCP_TIMEOUT;
3548 if (sf_els_transport(sf, privp) == 1)
3554 msg, sf_alpa_to_switch[privp->dest_nport_id]);
3575 struct sf_els_hdr *privp = (struct sf_els_hdr *)fpkt->
3578 (struct scsi_report_luns *)privp->data_buf;
3579 struct sf *sf = privp->sf;
3580 struct sf_target *target = privp->target;
3589 if (privp->timeout == SF_INVALID_TIMEOUT) {
3593 if (privp->prev)
3594 privp->prev->next = privp->next;
3595 if (privp->next)
3596 privp->next->prev = privp->prev;
3597 if (sf->sf_els_list == privp)
3598 sf->sf_els_list = privp->next;
3599 privp->prev = privp->next = NULL;
3608 (void) ddi_dma_sync(privp->rsp_dma_handle, 0,
3611 rsp = (struct fcp_rsp *)privp->rsp;
3615 privp->dest_nport_id,
3634 privp->dest_nport_id));
3643 privp->dest_nport_id,
3652 privp->dest_nport_id));
3657 privp->dest_nport_id,
3676 (void) ddi_dma_sync(privp->data_dma_handle,
3683 privp->dest_nport_id, ptr->lun_list_len));
3690 privp->dest_nport_id]);
3696 if (sf->sf_lip_cnt == privp->lip_cnt) {
3701 for (i = 0; i < ptr->lun_list_len && privp->lip_cnt ==
3709 privp, tid, ptr->lun[i]);
3723 privp->lip_cnt;
3729 if (sf->sf_lip_cnt == privp->
3743 privp->dest_nport_id, bep->rsp_code,
3753 if (++(privp->retries) < sf_els_retries ||
3754 (delayed_retry && privp->retries < SF_BSY_RETRIES)) {
3759 privp->retries--;
3760 privp->timeout = sf_watchdog_time + SF_BSY_TIMEOUT;
3761 privp->delayed_retry = 1;
3763 privp->timeout = sf_watchdog_time + SF_FCP_TIMEOUT;
3766 privp->prev = NULL;
3768 if (privp->lip_cnt == sf->sf_lip_cnt) {
3772 privp->dest_nport_id));
3773 privp->next = sf->sf_els_list;
3775 sf->sf_els_list->prev = privp;
3776 sf->sf_els_list = privp;
3782 if (privp->prev)
3783 privp->prev->next = privp->next;
3784 if (privp->next)
3785 privp->next->prev = privp->prev;
3786 if (sf->sf_els_list == privp)
3787 sf->sf_els_list = privp->next;
3799 if (sf_do_inquiry(sf, privp, target) != 0) {
3805 if (sf->sf_lip_cnt == privp->lip_cnt) {
3808 sf_alpa_to_switch[privp->dest_nport_id]);
3813 sf_finish_init(sf, privp->lip_cnt);
3823 sf_do_inquiry(struct sf *sf, struct sf_els_hdr *privp,
3826 struct fcal_packet *fpkt = privp->fpkt;
3835 struct fcp_cmd *inq = (struct fcp_cmd *)privp->cmd;
3870 privp->els_code = 0; /* not an ELS command */
3871 privp->target = target;
3872 privp->data_dma_handle = inq_dma_handle;
3873 privp->data_acc_handle = inq_acc_handle;
3874 privp->data_buf = inq_buf;
3898 privp->timeout = sf_watchdog_time + SF_FCP_TIMEOUT;
3901 privp->dest_nport_id,
3903 return (sf_els_transport(sf, privp));
3908 msg, sf_alpa_to_switch[privp->dest_nport_id]);
3929 struct sf_els_hdr *privp = (struct sf_els_hdr *)fpkt->
3931 struct scsi_inquiry *prt = (struct scsi_inquiry *)privp->data_buf;
3932 struct sf *sf = privp->sf;
3934 struct sf_target *target = privp->target;
3942 if (privp->timeout == SF_INVALID_TIMEOUT) {
3946 if (privp->prev != NULL) {
3947 privp->prev->next = privp->next;
3949 if (privp->next != NULL) {
3950 privp->next->prev = privp->prev;
3952 if (sf->sf_els_list == privp) {
3953 sf->sf_els_list = privp->next;
3955 privp->prev = privp->next = NULL;
3965 (void) ddi_dma_sync(privp->rsp_dma_handle, (off_t)0,
3968 rsp = (struct fcp_rsp *)privp->rsp;
3971 privp->dest_nport_id, rsp->fcp_u.fcp_status.scsi_status));
3988 privp->dest_nport_id, SCSA_LUN(target)));
3990 (void) ddi_dma_sync(privp->data_dma_handle,
3996 if (sf->sf_lip_cnt == privp->lip_cnt) {
4007 privp->lip_cnt);
4022 privp->dest_nport_id, fpkt->fcal_pkt_status));
4025 if (++(privp->retries) < sf_els_retries ||
4026 (delayed_retry && privp->retries < SF_BSY_RETRIES)) {
4038 privp->retries--;
4039 privp->timeout = sf_watchdog_time + SF_BSY_TIMEOUT;
4040 privp->delayed_retry = TRUE;
4042 privp->timeout = sf_watchdog_time + SF_FCP_TIMEOUT;
4045 privp->prev = NULL;
4047 if (privp->lip_cnt == sf->sf_lip_cnt) {
4051 privp->dest_nport_id));
4053 privp->next = sf->sf_els_list;
4055 sf->sf_els_list->prev = privp;
4057 sf->sf_els_list = privp;
4065 if (privp->prev != NULL) {
4066 privp->prev->next = privp->next;
4068 if (privp->next != NULL) {
4069 privp->next->prev = privp->prev;
4071 if (sf->sf_els_list == privp) {
4072 sf->sf_els_list = privp->next;
4083 if (sf->sf_lip_cnt == privp->lip_cnt) {
4088 sf_alpa_to_switch[privp->dest_nport_id],
4090 privp->retries);
4094 sf_finish_init(sf, privp->lip_cnt);
5938 struct sf_els_hdr *privp;
6014 privp = sf->sf_els_list;
6015 while (privp != NULL) {
6016 if (privp->timeout < sf_watchdog_time) {
6018 privp = sf_els_timeout(sf, privp);
6019 } else if ((privp->timeout == SF_INVALID_TIMEOUT) &&
6020 (privp->lip_cnt != sf->sf_lip_cnt)) {
6021 if (privp->prev != NULL) {
6022 privp->prev->next = privp->next;
6024 if (sf->sf_els_list == privp) {
6025 sf->sf_els_list = privp->next;
6027 if (privp->next != NULL) {
6028 privp->next->prev = privp->prev;
6031 sf_els_free(privp->fpkt);
6033 privp = sf->sf_els_list;
6035 privp = privp->next;
6324 sf_els_timeout(struct sf *sf, struct sf_els_hdr *privp)
6328 uint_t lip_cnt = privp->lip_cnt;
6329 uchar_t els_code = privp->els_code;
6330 struct sf_target *target = privp->target;
6333 fpkt = privp->fpkt;
6334 dflag = privp->delayed_retry;
6336 privp->timeout = SF_INVALID_TIMEOUT;
6339 if (privp->fpkt->fcal_pkt_comp == sf_els_callback) {
6346 ((sf_alpa_to_switch[privp->dest_nport_id] &
6347 0x0d) != 0x0d) && ((privp->dest_nport_id != 1) ||
6348 (privp->dest_nport_id != 2) ||
6349 (privp->dest_nport_id != 4) ||
6350 (privp->dest_nport_id != 8) ||
6351 (privp->dest_nport_id != 0xf))) {
6357 (void) sprintf(what, "ELS 0x%x", privp->els_code);
6358 } else if (privp->fpkt->fcal_pkt_comp == sf_reportlun_callback) {
6367 } else if (privp->fpkt->fcal_pkt_comp == sf_inq_callback) {
6387 sf_alpa_to_switch[privp->dest_nport_id]));
6388 privp->delayed_retry = FALSE;
6393 what, sf_alpa_to_switch[privp->dest_nport_id],
6394 privp->dest_nport_id);
6400 what, privp->dest_nport_id));
6404 if (privp->prev != NULL) {
6405 privp->prev->next = privp->next;
6407 if (sf->sf_els_list == privp) {
6408 sf->sf_els_list = privp->next;
6410 if (privp->next != NULL) {
6411 privp->next->prev = privp->prev;
6413 privp->prev = privp->next = NULL;
6415 privp->timeout = sf_watchdog_time + timeout;
6416 if ((++(privp->retries) < sf_els_retries) ||
6417 (dflag && (privp->retries < SF_BSY_RETRIES))) {
6422 sf_alpa_to_switch[privp->dest_nport_id]);
6423 if (sf_els_transport(sf, privp) == 1) {
6444 privp = sf->sf_els_list;
6451 sf_els_free(privp->fpkt);
6452 privp = NULL;
6464 sf_alpa_to_switch[privp->dest_nport_id], rval);
6465 privp = NULL;
6472 return (privp);
6642 struct sf_els_hdr *privp;
6684 (caddr_t *)&privp, (caddr_t *)&rsp) == NULL) {
6688 fpkt = privp->fpkt;
6706 ((struct la_els_logi *)privp->rsp)->ls_code = LA_ELS_ACC;
6709 privp->retries = sf_els_retries;
6710 privp->els_code = LA_ELS_RJT;
6711 privp->timeout = (unsigned)0xffffffff;
6712 (void) sf_els_transport(sf, privp);