Lines Matching refs:dip

137 	dlpi_impl_t  	*dip;  in dlpi_open()  local
155 if ((dip = calloc(1, sizeof (dlpi_impl_t))) == NULL) in dlpi_open()
159 dip->dli_timeout = DLPI_DEF_TIMEOUT; in dlpi_open()
160 dip->dli_ppa = ifsp.ifsp_ppa; in dlpi_open()
161 dip->dli_oflags = flags; in dlpi_open()
162 dip->dli_notifylistp = NULL; in dlpi_open()
163 dip->dli_note_processing = B_FALSE; in dlpi_open()
165 dip->dli_oflags |= DLPI_DEVONLY; in dlpi_open()
168 if (strlcpy(dip->dli_linkname, linkname, sizeof (dip->dli_linkname)) >= in dlpi_open()
169 sizeof (dip->dli_linkname)) { in dlpi_open()
170 free(dip); in dlpi_open()
175 (void) strlcpy(dip->dli_provider, ifsp.ifsp_devnm, in dlpi_open()
176 sizeof (dip->dli_provider)); in dlpi_open()
183 if (dip->dli_oflags & DLPI_SERIAL) { in dlpi_open()
184 if ((retval = i_dlpi_style2_open(dip)) != DLPI_SUCCESS) { in dlpi_open()
185 free(dip); in dlpi_open()
189 *dhp = (dlpi_handle_t)dip; in dlpi_open()
193 if ((retval = i_dlpi_style1_open(dip)) != DLPI_SUCCESS) { in dlpi_open()
202 } else if (!(dip->dli_oflags & DLPI_DEVIPNET)) { in dlpi_open()
203 retval = i_dlpi_style2_open(dip); in dlpi_open()
206 free(dip); in dlpi_open()
211 if (dip->dli_oflags & DLPI_PASSIVE) in dlpi_open()
212 i_dlpi_passive(dip); in dlpi_open()
214 if ((dip->dli_oflags & DLPI_RAW) && in dlpi_open()
215 ioctl(dip->dli_fd, DLIOCRAW, 0) < 0) { in dlpi_open()
216 dlpi_close((dlpi_handle_t)dip); in dlpi_open()
220 if ((dip->dli_oflags & DLPI_IPNETINFO) && in dlpi_open()
221 ioctl(dip->dli_fd, DLIOCIPNETINFO, &on) < 0) { in dlpi_open()
222 dlpi_close((dlpi_handle_t)dip); in dlpi_open()
231 if (dip->dli_oflags & DLPI_NATIVE) { in dlpi_open()
232 if ((retval = ioctl(dip->dli_fd, DLIOCNATIVE, 0)) > 0) in dlpi_open()
233 dip->dli_mactype = retval; in dlpi_open()
236 *dhp = (dlpi_handle_t)dip; in dlpi_open()
243 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_close() local
246 if (dip != NULL) { in dlpi_close()
247 for (dnp = dip->dli_notifylistp; dnp != NULL; dnp = next) { in dlpi_close()
252 (void) close(dip->dli_fd); in dlpi_close()
253 free(dip); in dlpi_close()
270 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_info() local
272 if (dip == NULL) in dlpi_info()
300 retval = i_dlpi_msg_common(dip, &req, &ack, DL_INFO_ACK_SIZE, RS_HIPRI); in dlpi_info()
311 dip->dli_style = infoackp->dl_provider_style; in dlpi_info()
312 dip->dli_mactype = infoackp->dl_mac_type; in dlpi_info()
345 dip->dli_saplen = abs(infoackp->dl_sap_length); in dlpi_info()
346 dip->dli_sapbefore = (infoackp->dl_sap_length > 0); in dlpi_info()
347 infop->di_physaddrlen = infoackp->dl_addr_length - dip->dli_saplen; in dlpi_info()
350 dip->dli_saplen > DLPI_SAPLEN_MAX) in dlpi_info()
361 if (dip->dli_sapbefore) in dlpi_info()
362 addrp += dip->dli_saplen; in dlpi_info()
367 infop->di_sap = i_dlpi_buildsap(sapp, dip->dli_saplen); in dlpi_info()
390 (void) strlcpy(infop->di_linkname, dip->dli_linkname, in dlpi_info()
392 infop->di_timeout = dip->dli_timeout; in dlpi_info()
443 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_bind() local
445 if (dip == NULL) in dlpi_bind()
457 bindreqp->dl_sap = ((dip->dli_mactype == DL_TPR) ? 2 : 0); in dlpi_bind()
466 retval = i_dlpi_msg_common(dip, &req, &ack, DL_BIND_ACK_SIZE, 0); in dlpi_bind()
487 dip->dli_sap = bindackp->dl_sap; /* save sap value in handle */ in dlpi_bind()
495 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_unbind() local
497 if (dip == NULL) in dlpi_unbind()
503 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0)); in dlpi_unbind()
516 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in i_dlpi_multi() local
518 if (dip == NULL) in i_dlpi_multi()
532 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0)); in i_dlpi_multi()
557 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in i_dlpi_promisc() local
559 if (dip == NULL) in i_dlpi_promisc()
568 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0)); in i_dlpi_promisc()
592 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_get_physaddr() local
594 if (dip == NULL) in dlpi_get_physaddr()
606 retval = i_dlpi_msg_common(dip, &req, &ack, DL_PHYS_ADDR_ACK_SIZE, 0); in dlpi_get_physaddr()
638 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_set_physaddr() local
640 if (dip == NULL) in dlpi_set_physaddr()
655 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0)); in dlpi_set_physaddr()
665 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_send() local
667 if (dip == NULL) in dlpi_send()
670 if (dip->dli_oflags & DLPI_RAW) in dlpi_send()
671 return (i_dlpi_strputmsg(dip, NULL, msgbuf, msglen, 0)); in dlpi_send()
691 sap = dip->dli_sap; in dlpi_send()
694 udatareqp->dl_dest_addr_length = daddrlen + dip->dli_saplen; in dlpi_send()
702 if (dip->dli_sapbefore) { in dlpi_send()
703 i_dlpi_writesap(&udatareqp[1], sap, dip->dli_saplen); in dlpi_send()
704 (void) memcpy((caddr_t)&udatareqp[1] + dip->dli_saplen, in dlpi_send()
709 dip->dli_saplen); in dlpi_send()
712 return (i_dlpi_strputmsg(dip, &req, msgbuf, msglen, 0)); in dlpi_send()
725 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_recv() local
727 if (dip == NULL) in dlpi_recv()
733 if (dip->dli_oflags & DLPI_RAW) { in dlpi_recv()
734 retval = i_dlpi_strgetmsg(dip, msec, NULL, 0, 0, 0, msgbuf, in dlpi_recv()
746 if ((retval = i_dlpi_strgetmsg(dip, msec, &ind, DL_UNITDATA_IND, in dlpi_recv()
767 *saddrlenp = datalen - dip->dli_saplen; in dlpi_recv()
771 if (dip->dli_sapbefore) in dlpi_recv()
772 datap += dip->dli_saplen; in dlpi_recv()
792 recvp->dri_destaddrlen = datalen - dip->dli_saplen; in dlpi_recv()
796 if (dip->dli_sapbefore) in dlpi_recv()
797 datap += dip->dli_saplen; in dlpi_recv()
818 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_enabnotify() local
822 if (dip == NULL) in dlpi_enabnotify()
825 retval = dlpi_info((dlpi_handle_t)dip, &dlinfo, 0); in dlpi_enabnotify()
829 if (dip->dli_note_processing) in dlpi_enabnotify()
846 retval = i_dlpi_msg_common(dip, &req, &ack, DL_NOTIFY_ACK_SIZE, 0); in dlpi_enabnotify()
863 newnotifp->dln_next = dip->dli_notifylistp; in dlpi_enabnotify()
864 dip->dli_notifylistp = newnotifp; in dlpi_enabnotify()
873 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_disabnotify() local
876 if (dip == NULL) in dlpi_disabnotify()
880 if (!(i_dlpi_notifyidexists(dip, remid))) in dlpi_disabnotify()
888 if (!dip->dli_note_processing) in dlpi_disabnotify()
889 i_dlpi_deletenotifyid(dip); in dlpi_disabnotify()
897 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_fd() local
899 return (dip != NULL ? dip->dli_fd : -1); in dlpi_fd()
905 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_set_timeout() local
907 if (dip == NULL) in dlpi_set_timeout()
910 dip->dli_timeout = sec; in dlpi_set_timeout()
917 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_linkname() local
919 return (dip != NULL ? dip->dli_linkname : NULL); in dlpi_linkname()
930 dlpi_impl_t *dip = (dlpi_impl_t *)dh; in dlpi_style() local
932 return (dip->dli_style); in dlpi_style()
1128 i_dlpi_style1_open(dlpi_impl_t *dip) in i_dlpi_style1_open() argument
1133 retval = i_dlpi_open(dip->dli_linkname, &fd, dip->dli_oflags, B_TRUE); in i_dlpi_style1_open()
1136 dip->dli_fd = fd; in i_dlpi_style1_open()
1138 if ((retval = i_dlpi_checkstyle(dip, DL_STYLE1)) != DLPI_SUCCESS) { in i_dlpi_style1_open()
1140 (void) close(dip->dli_fd); in i_dlpi_style1_open()
1151 i_dlpi_style2_open(dlpi_impl_t *dip) in i_dlpi_style2_open() argument
1156 retval = i_dlpi_open(dip->dli_provider, &fd, dip->dli_oflags, B_FALSE); in i_dlpi_style2_open()
1159 dip->dli_fd = fd; in i_dlpi_style2_open()
1165 if (dip->dli_oflags & DLPI_SERIAL) in i_dlpi_style2_open()
1168 if ((retval = i_dlpi_checkstyle(dip, DL_STYLE2)) != DLPI_SUCCESS) in i_dlpi_style2_open()
1175 if (dip->dli_oflags & DLPI_NOATTACH) in i_dlpi_style2_open()
1179 if ((retval = i_dlpi_attach(dip)) == DLPI_SUCCESS) in i_dlpi_style2_open()
1184 (void) close(dip->dli_fd); in i_dlpi_style2_open()
1194 i_dlpi_checkstyle(dlpi_impl_t *dip, t_uscalar_t style) in i_dlpi_checkstyle() argument
1199 retval = dlpi_info((dlpi_handle_t)dip, &dlinfo, 0); in i_dlpi_checkstyle()
1200 if (retval == DLPI_SUCCESS && dip->dli_style != style) in i_dlpi_checkstyle()
1210 i_dlpi_attach(dlpi_impl_t *dip) in i_dlpi_attach() argument
1219 if (dip->dli_style != DL_STYLE2 && !(dip->dli_oflags & DLPI_SERIAL)) in i_dlpi_attach()
1226 attachreqp->dl_ppa = dip->dli_ppa; in i_dlpi_attach()
1228 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0)); in i_dlpi_attach()
1239 i_dlpi_passive(dlpi_impl_t *dip) in i_dlpi_passive() argument
1246 (void) i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0); in i_dlpi_passive()
1260 i_dlpi_strputmsg(dlpi_impl_t *dip, const dlpi_msg_t *dlreqp, in i_dlpi_strputmsg() argument
1264 int fd = dip->dli_fd; in i_dlpi_strputmsg()
1303 i_dlpi_strgetmsg(dlpi_impl_t *dip, int msec, dlpi_msg_t *dlreplyp, in i_dlpi_strgetmsg() argument
1309 int fd = dip->dli_fd; in i_dlpi_strgetmsg()
1410 if (dip->dli_notifylistp != NULL && in i_dlpi_strgetmsg()
1416 (void) i_dlpi_notifyind_process(dip, dlnotif); in i_dlpi_strgetmsg()
1483 i_dlpi_msg_common(dlpi_impl_t *dip, const dlpi_msg_t *dlreqp, in i_dlpi_msg_common() argument
1491 retval = i_dlpi_strputmsg(dip, dlreqp, NULL, 0, flags); in i_dlpi_msg_common()
1496 retval = i_dlpi_strgetmsg(dip, (dip->dli_timeout * MILLISEC), in i_dlpi_msg_common()
1732 i_dlpi_notifyind_process(dlpi_impl_t *dip, dl_notify_ind_t *dlnotifyindp) argument
1768 notifinfo.dni_physaddrlen = datalen - dip->dli_saplen;
1778 dip->dli_note_processing = B_TRUE;
1780 for (dnp = dip->dli_notifylistp; dnp != NULL; dnp = dnp->dln_next) {
1782 dnp->dln_fnp((dlpi_handle_t)dip, &notifinfo, dnp->arg);
1787 dip->dli_note_processing = B_FALSE;
1791 i_dlpi_deletenotifyid(dip);
1799 i_dlpi_notifyidexists(dlpi_impl_t *dip, dlpi_notifyent_t *id) argument
1803 for (dnp = dip->dli_notifylistp; dnp != NULL; dnp = dnp->dln_next) {
1815 i_dlpi_deletenotifyid(dlpi_impl_t *dip) argument
1820 dnp = dip->dli_notifylistp;
1826 dip->dli_notifylistp = dnp->dln_next;
1828 dnp = dip->dli_notifylistp;