Lines Matching defs:vport

259 	vldc_port_t	*vport = (vldc_port_t *)arg;
263 ASSERT(vport != NULL);
264 ASSERT(vport->minorp != NULL);
267 "event=0x%lx\n", vport->inst, vport->number, vport->ldc_id, event);
270 mutex_enter(&vport->minorp->lock);
272 if (vport->status == VLDC_PORT_CLOSED) {
276 old_status = vport->ldc_status;
277 rv = ldc_status(vport->ldc_handle, &vport->ldc_status);
280 "rv=%d\n", vport->inst, vport->number, rv);
281 mutex_exit(&vport->minorp->lock);
287 vport->hanged_up = B_FALSE;
297 vport->status = VLDC_PORT_RESET;
298 vport->hanged_up = B_TRUE;
301 rv = ldc_up(vport->ldc_handle);
304 "channel UP rv=%d\n", vport->inst,
305 vport->number, rv);
306 mutex_exit(&vport->minorp->lock);
309 rv = ldc_status(vport->ldc_handle, &vport->ldc_status);
312 "ldc status, rv=%d\n", vport->inst,
313 vport->number, rv);
314 mutex_exit(&vport->minorp->lock);
317 if (vport->ldc_status == LDC_UP) {
319 vport->hanged_up = B_FALSE;
327 vport->status = VLDC_PORT_RESET;
328 vport->hanged_up = B_TRUE;
335 mutex_exit(&vport->minorp->lock);
339 vport->number, pollevents);
340 pollwakeup(&vport->poll, pollevents);
579 vldc_port_t *vport;
603 vport = &(vldcp->port[portno]);
605 if (vport->minorp != NULL) {
611 vport->number = portno;
614 if (i_vldc_get_port_channel(mdp, node, &vport->ldc_id) == -1) {
619 vport->mtu = VLDC_DEFAULT_MTU;
662 vport->inst = vldc_inst;
663 vport->minorp = &vldcp->minor_tbl[minor_idx];
668 vport->inst, vport->number, vport->mtu, vport->ldc_id, sname);
693 vport->status = VLDC_PORT_CLOSED;
704 vldc_port_t *vport;
710 vport = &(vldcp->port[portno]);
711 vminor = vport->minorp;
727 pollwakeup(&vport->poll, POLLHUP);
735 if (vport->status != VLDC_PORT_CLOSED) {
741 ddi_remove_minor_node(vldcp->dip, vport->minorp->sname);
742 vport->minorp = NULL;
752 * Close and destroy the ldc channel associated with the port 'vport'
763 i_vldc_ldc_close(vldc_port_t *vport)
767 ASSERT(MUTEX_HELD(&vport->minorp->lock));
777 err = ldc_close(vport->ldc_handle);
781 err = ldc_unreg_callback(vport->ldc_handle);
785 err = ldc_fini(vport->ldc_handle);
789 vport->status = VLDC_PORT_OPEN;
798 vldc_port_t *vport;
802 vport = &(vldcp->port[portno]);
804 ASSERT(MUTEX_HELD(&vport->minorp->lock));
807 vport->inst, vport->minorp->portno);
809 vminor = vport->minorp;
811 switch (vport->status) {
815 "state (%d)\n", portno, vport->status);
821 rv = i_vldc_ldc_close(vport);
836 } while (vport->status != VLDC_PORT_CLOSED);
838 if ((rv != 0) || (vport->status == VLDC_PORT_CLOSED))
848 "state (%d)\n", portno, vport->status);
853 ASSERT(vport->status == VLDC_PORT_OPEN);
856 kmem_free(vport->send_buf, vport->mtu);
857 kmem_free(vport->recv_buf, vport->mtu);
860 kmem_free(vport->cookie_buf, vldc_max_cookie);
862 vport->status = VLDC_PORT_CLOSED;
1015 vldc_port_t *vport;
1032 vport = &(vldcp->port[portno]);
1036 if (vport->status != VLDC_PORT_CLOSED) {
1041 vport->recv_buf = kmem_alloc(vport->mtu, KM_SLEEP);
1042 vport->send_buf = kmem_alloc(vport->mtu, KM_SLEEP);
1044 if (strcmp(vport->minorp->sname, VLDC_HVCTL_SVCNAME) == 0)
1045 vport->cookie_buf = kmem_alloc(vldc_max_cookie, KM_SLEEP);
1047 vport->is_stream = B_FALSE; /* assume not a stream */
1048 vport->hanged_up = B_FALSE;
1050 vport->status = VLDC_PORT_OPEN;
1095 vldc_set_ldc_mode(vldc_port_t *vport, vldc_t *vldcp, int channel_mode)
1100 ASSERT(MUTEX_HELD(&vport->minorp->lock));
1105 vport->is_stream = B_TRUE;
1109 vport->is_stream = B_FALSE;
1115 if (vport->status == VLDC_PORT_READY) {
1116 rv = i_vldc_ldc_close(vport);
1124 D1("vldc_set_ldc_mode: vport status %d, mode %d\n",
1125 vport->status, channel_mode);
1127 vport->ldc_mode = channel_mode;
1132 attr.mtu = vport->mtu;
1133 attr.mode = vport->ldc_mode;
1135 if ((rv = ldc_init(vport->ldc_id, &attr,
1136 &vport->ldc_handle)) != 0) {
1142 if ((rv = ldc_reg_callback(vport->ldc_handle,
1143 i_vldc_cb, (caddr_t)vport)) != 0) {
1150 if ((rv = ldc_open(vport->ldc_handle)) != 0) {
1155 vport->status = VLDC_PORT_READY;
1161 rv = ldc_up(vport->ldc_handle);
1169 rv = ldc_status(vport->ldc_handle, &vport->ldc_status);
1172 "status, rv=%d\n", vport->inst, vport->number, rv);
1177 vport->ldc_id);
1182 vport->status = VLDC_PORT_OPEN;
1183 (void) ldc_close(vport->ldc_handle);
1185 (void) ldc_unreg_callback(vport->ldc_handle);
1187 (void) ldc_fini(vport->ldc_handle);
1194 i_vldc_ioctl_read_cookie(vldc_port_t *vport, int vldc_instance, void *arg,
1214 mutex_enter(&vport->minorp->lock);
1217 "size 0x%lx to 0x%p\n", vldc_instance, vport->number,
1221 rv = ldc_mem_rdwr_cookie(vport->ldc_handle, vport->cookie_buf,
1226 vldc_instance, vport->number, dst_addr, rv);
1227 mutex_exit(&vport->minorp->lock);
1232 vldc_instance, vport->number);
1234 mutex_exit(&vport->minorp->lock);
1240 rv = ddi_copyout(vport->cookie_buf, src_addr, copy_size, mode);
1262 i_vldc_ioctl_write_cookie(vldc_port_t *vport, int vldc_instance, void *arg,
1275 "to 0x%lx\n", vldc_instance, vport->number, copy_info.src_addr,
1290 if (ddi_copyin((caddr_t)src_addr, vport->cookie_buf,
1295 mutex_enter(&vport->minorp->lock);
1298 rv = ldc_mem_rdwr_cookie(vport->ldc_handle, vport->cookie_buf,
1303 vldc_instance, vport->number, dst_addr, rv);
1304 mutex_exit(&vport->minorp->lock);
1309 vldc_instance, vport->number);
1311 mutex_exit(&vport->minorp->lock);
1331 i_vldc_ioctl_opt_op(vldc_port_t *vport, vldc_t *vldcp, void *arg, int mode)
1348 vldc_cmd.opt_val = vport->mtu;
1361 mutex_enter(&vport->minorp->lock);
1363 if ((vport->status != VLDC_PORT_CLOSED) &&
1364 (new_mtu != vport->mtu)) {
1370 kmem_free(vport->recv_buf, vport->mtu);
1371 vport->recv_buf = kmem_alloc(new_mtu, KM_SLEEP);
1373 kmem_free(vport->send_buf, vport->mtu);
1374 vport->send_buf = kmem_alloc(new_mtu, KM_SLEEP);
1376 vport->mtu = new_mtu;
1379 mutex_exit(&vport->minorp->lock);
1387 vldc_cmd.opt_val = vport->status;
1401 vldc_cmd.opt_val = vport->ldc_mode;
1407 mutex_enter(&vport->minorp->lock);
1408 rv = vldc_set_ldc_mode(vport, vldcp, vldc_cmd.opt_val);
1409 mutex_exit(&vport->minorp->lock);
1435 vldc_port_t *vport;
1455 vport = &(vldcp->port[portno]);
1462 rv = i_vldc_ioctl_opt_op(vport, vldcp, (void *)arg, mode);
1466 if (strcmp(vport->minorp->sname, VLDC_HVCTL_SVCNAME)) {
1470 rv = i_vldc_ioctl_read_cookie(vport, instance,
1475 if (strcmp(vport->minorp->sname, VLDC_HVCTL_SVCNAME)) {
1479 rv = i_vldc_ioctl_write_cookie(vport, instance,
1513 vldc_port_t *vport;
1534 vport = &(vldcp->port[portno]);
1537 if (vport->status != VLDC_PORT_READY) {
1545 size = MIN(vport->mtu, uiop->uio_resid);
1546 rv = ldc_read(vport->ldc_handle, vport->recv_buf, &size);
1553 rv = uiomove(vport->recv_buf, size, UIO_READ, uiop);
1588 vldc_port_t *vport;
1607 vport = &(vldcp->port[portno]);
1610 if (vport->status != VLDC_PORT_READY) {
1620 if (size > vport->mtu) {
1621 if (vport->is_stream) {
1623 size = vport->mtu;
1633 rv = uiomove(vport->send_buf, size, UIO_WRITE, uiop);
1635 rv = ldc_write(vport->ldc_handle, (caddr_t)vport->send_buf,
1662 vldc_port_t *vport;
1681 vport = &(vldcp->port[portno]);
1684 if (vport->status != VLDC_PORT_READY) {
1694 if (vport->ldc_status == LDC_UP) {
1700 if ((ldc_chkq(vport->ldc_handle, &haspkts) == 0) &&
1709 } else if (vport->hanged_up) {
1711 vport->hanged_up = B_FALSE;
1717 *phpp = &vport->poll;