Lines Matching defs:dip

142 	dlpi_impl_t  	*dip;
160 if ((dip = calloc(1, sizeof (dlpi_impl_t))) == NULL)
164 dip->dli_timeout = DLPI_DEF_TIMEOUT;
165 dip->dli_ppa = ppa;
166 dip->dli_oflags = flags;
167 dip->dli_notifylistp = NULL;
168 dip->dli_note_processing = B_FALSE;
170 dip->dli_oflags |= DLPI_DEVONLY;
173 if (strlcpy(dip->dli_linkname, linkname, sizeof (dip->dli_linkname)) >=
174 sizeof (dip->dli_linkname)) {
175 free(dip);
180 (void) strlcpy(dip->dli_provider, provider, sizeof (dip->dli_provider));
187 if (dip->dli_oflags & DLPI_SERIAL) {
188 if ((retval = i_dlpi_style2_open(dip)) != DLPI_SUCCESS) {
189 free(dip);
193 *dhp = (dlpi_handle_t)dip;
197 if ((retval = i_dlpi_style1_open(dip)) != DLPI_SUCCESS) {
206 } else if (!(dip->dli_oflags & DLPI_DEVIPNET)) {
207 retval = i_dlpi_style2_open(dip);
210 free(dip);
215 if (dip->dli_oflags & DLPI_PASSIVE)
216 i_dlpi_passive(dip);
218 if ((dip->dli_oflags & DLPI_RAW) &&
219 ioctl(dip->dli_fd, DLIOCRAW, 0) < 0) {
220 dlpi_close((dlpi_handle_t)dip);
224 if ((dip->dli_oflags & DLPI_IPNETINFO) &&
225 ioctl(dip->dli_fd, DLIOCIPNETINFO, &on) < 0) {
226 dlpi_close((dlpi_handle_t)dip);
235 if (dip->dli_oflags & DLPI_NATIVE) {
236 if ((retval = ioctl(dip->dli_fd, DLIOCNATIVE, 0)) > 0)
237 dip->dli_mactype = retval;
240 *dhp = (dlpi_handle_t)dip;
247 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
250 if (dip != NULL) {
251 for (dnp = dip->dli_notifylistp; dnp != NULL; dnp = next) {
256 (void) close(dip->dli_fd);
257 free(dip);
275 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
277 if (dip == NULL)
316 retval = i_dlpi_msg_common(dip, &req, &ack, DL_INFO_ACK_SIZE, RS_HIPRI);
327 dip->dli_style = infoackp->dl_provider_style;
328 dip->dli_mactype = infoackp->dl_mac_type;
363 dip->dli_saplen = abs(infoackp->dl_sap_length);
364 dip->dli_sapbefore = (infoackp->dl_sap_length > 0);
366 infoackp->dl_addr_length - dip->dli_saplen);
369 DLPI_PHYSADDR_MAX || dip->dli_saplen > DLPI_SAPLEN_MAX)
380 if (dip->dli_sapbefore)
381 addrp += dip->dli_saplen;
388 i_dlpi_buildsap(sapp, dip->dli_saplen));
411 _DLPI_INFO_COPY(infop, version, di_linkname, dip->dli_linkname,
414 _DLPI_INFO_SET(infop, version, di_timeout, dip->dli_timeout);
480 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
482 if (dip == NULL)
494 bindreqp->dl_sap = ((dip->dli_mactype == DL_TPR) ?
504 retval = i_dlpi_msg_common(dip, &req, &ack, DL_BIND_ACK_SIZE, 0);
525 dip->dli_sap = bindackp->dl_sap; /* save sap value in handle */
533 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
535 if (dip == NULL)
541 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0));
554 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
556 if (dip == NULL)
570 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0));
595 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
597 if (dip == NULL)
606 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0));
630 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
632 if (dip == NULL)
644 retval = i_dlpi_msg_common(dip, &req, &ack, DL_PHYS_ADDR_ACK_SIZE, 0);
676 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
678 if (dip == NULL)
693 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0));
703 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
705 if (dip == NULL)
708 if (dip->dli_oflags & DLPI_RAW)
709 return (i_dlpi_strputmsg(dip, NULL, msgbuf, msglen, 0));
729 sap = dip->dli_sap;
732 udatareqp->dl_dest_addr_length = daddrlen + dip->dli_saplen;
740 if (dip->dli_sapbefore) {
741 i_dlpi_writesap(&udatareqp[1], sap, dip->dli_saplen);
742 (void) memcpy((caddr_t)&udatareqp[1] + dip->dli_saplen,
747 dip->dli_saplen);
750 return (i_dlpi_strputmsg(dip, &req, msgbuf, msglen, 0));
763 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
765 if (dip == NULL)
771 if (dip->dli_oflags & DLPI_RAW) {
772 retval = i_dlpi_strgetmsg(dip, msec, NULL, 0, 0, 0, msgbuf,
784 if ((retval = i_dlpi_strgetmsg(dip, msec, &ind, DL_UNITDATA_IND,
805 *saddrlenp = datalen - dip->dli_saplen;
809 if (dip->dli_sapbefore)
810 datap += dip->dli_saplen;
830 recvp->dri_destaddrlen = datalen - dip->dli_saplen;
834 if (dip->dli_sapbefore)
835 datap += dip->dli_saplen;
856 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
860 if (dip == NULL)
863 retval = dlpi_info((dlpi_handle_t)dip, &dlinfo, DLPI_INFO_VERSION);
867 if (dip->dli_note_processing)
884 retval = i_dlpi_msg_common(dip, &req, &ack, DL_NOTIFY_ACK_SIZE, 0);
901 newnotifp->dln_next = dip->dli_notifylistp;
902 dip->dli_notifylistp = newnotifp;
911 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
914 if (dip == NULL)
918 if (!(i_dlpi_notifyidexists(dip, remid)))
926 if (!dip->dli_note_processing)
927 i_dlpi_deletenotifyid(dip);
935 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
937 return (dip != NULL ? dip->dli_fd : -1);
943 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
945 if (dip == NULL)
948 dip->dli_timeout = sec;
955 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
957 return (dip != NULL ? dip->dli_linkname : NULL);
968 dlpi_impl_t *dip = (dlpi_impl_t *)dh;
970 return (dip->dli_style);
1185 i_dlpi_style1_open(dlpi_impl_t *dip)
1190 retval = i_dlpi_open(dip->dli_linkname, &fd, dip->dli_oflags, B_TRUE);
1193 dip->dli_fd = fd;
1195 if ((retval = i_dlpi_checkstyle(dip, DL_STYLE1)) != DLPI_SUCCESS) {
1197 (void) close(dip->dli_fd);
1208 i_dlpi_style2_open(dlpi_impl_t *dip)
1213 retval = i_dlpi_open(dip->dli_provider, &fd, dip->dli_oflags, B_FALSE);
1216 dip->dli_fd = fd;
1222 if (dip->dli_oflags & DLPI_SERIAL)
1225 if ((retval = i_dlpi_checkstyle(dip, DL_STYLE2)) != DLPI_SUCCESS)
1232 if (dip->dli_oflags & DLPI_NOATTACH)
1236 if ((retval = i_dlpi_attach(dip)) == DLPI_SUCCESS)
1241 (void) close(dip->dli_fd);
1251 i_dlpi_checkstyle(dlpi_impl_t *dip, t_uscalar_t style)
1256 retval = dlpi_info((dlpi_handle_t)dip, &dlinfo, DLPI_INFO_VERSION);
1257 if (retval == DLPI_SUCCESS && dip->dli_style != style)
1267 i_dlpi_attach(dlpi_impl_t *dip)
1276 if (dip->dli_style != DL_STYLE2 && !(dip->dli_oflags & DLPI_SERIAL))
1283 attachreqp->dl_ppa = dip->dli_ppa;
1285 return (i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0));
1296 i_dlpi_passive(dlpi_impl_t *dip)
1303 (void) i_dlpi_msg_common(dip, &req, &ack, DL_OK_ACK_SIZE, 0);
1309 * dlpi_impl_t *dip: internal dlpi handle to open stream
1317 i_dlpi_strputmsg(dlpi_impl_t *dip, const dlpi_msg_t *dlreqp,
1321 int fd = dip->dli_fd;
1342 * dlpi_impl_t *dip: internal dlpi handle
1360 i_dlpi_strgetmsg(dlpi_impl_t *dip, int msec, dlpi_msg_t *dlreplyp,
1366 int fd = dip->dli_fd;
1468 if (dip->dli_notifylistp != NULL &&
1474 (void) i_dlpi_notifyind_process(dip, dlnotif);
1529 * dlpi_impl_t *dip: internal dlpi handle
1541 i_dlpi_msg_common(dlpi_impl_t *dip, const dlpi_msg_t *dlreqp,
1549 retval = i_dlpi_strputmsg(dip, dlreqp, NULL, 0, flags);
1554 retval = i_dlpi_strgetmsg(dip, (dip->dli_timeout * MILLISEC),
1790 i_dlpi_notifyind_process(dlpi_impl_t *dip, dl_notify_ind_t *dlnotifyindp)
1853 notifinfo.dni_physaddrlen = datalen - dip->dli_saplen;
1863 dip->dli_note_processing = B_TRUE;
1865 for (dnp = dip->dli_notifylistp; dnp != NULL; dnp = dnp->dln_next) {
1867 dnp->dln_fnp((dlpi_handle_t)dip, &notifinfo, dnp->arg);
1872 dip->dli_note_processing = B_FALSE;
1876 i_dlpi_deletenotifyid(dip);
1884 i_dlpi_notifyidexists(dlpi_impl_t *dip, dlpi_notifyent_t *id)
1888 for (dnp = dip->dli_notifylistp; dnp != NULL; dnp = dnp->dln_next) {
1900 i_dlpi_deletenotifyid(dlpi_impl_t *dip)
1905 dnp = dip->dli_notifylistp;
1911 dip->dli_notifylistp = dnp->dln_next;
1913 dnp = dip->dli_notifylistp;