Lines Matching defs:vio
31 #include <asm/vio.h>
61 ldc_disconnect(port->vio.lp);
68 int sunvnet_send_attr_common(struct vio_driver_state *vio)
70 struct vnet_port *port = to_vnet_port(vio);
76 err = vnet_port_alloc_tx_ring(to_vnet_port(vio));
84 pkt.tag.sid = vio_send_sid(vio);
85 if (vio_version_before(vio, 1, 2))
93 if (vio_version_after(vio, 1, 3)) {
101 if (vio_version_after_eq(vio, 1, 6))
103 } else if (vio_version_before(vio, 1, 3)) {
110 if (vio_version_after_eq(vio, 1, 7) && port->tso) {
127 return vio_ldc_send(vio, &pkt, sizeof(pkt));
131 static int handle_attr_info(struct vio_driver_state *vio,
134 struct vnet_port *port = to_vnet_port(vio);
147 pkt->tag.sid = vio_send_sid(vio);
151 if (vio_version_before(vio, 1, 2) && xfer_mode == VIO_DRING_MODE)
160 if (vio_version_before(vio, 1, 3)) {
162 } else if (vio_version_after(vio, 1, 3)) {
172 if (vio_version_after_eq(vio, 1, 7))
193 if (vio_version_after_eq(vio, 1, 6)) {
205 (void)vio_ldc_send(vio, pkt, sizeof(*pkt));
221 return vio_ldc_send(vio, pkt, sizeof(*pkt));
224 static int handle_attr_ack(struct vio_driver_state *vio,
232 static int handle_attr_nack(struct vio_driver_state *vio,
240 int sunvnet_handle_attr_common(struct vio_driver_state *vio, void *arg)
246 return handle_attr_info(vio, pkt);
249 return handle_attr_ack(vio, pkt);
252 return handle_attr_nack(vio, pkt);
260 void sunvnet_handshake_complete_common(struct vio_driver_state *vio)
264 dr = &vio->drings[VIO_DRIVER_RX_RING];
268 dr = &vio->drings[VIO_DRIVER_TX_RING];
401 err = ldc_copy(port->vio.lp, LDC_COPY_IN,
413 if (vio_version_after_eq(&port->vio, 1, 8)) {
477 .sid = vio_send_sid(&port->vio),
490 err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr));
522 struct vio_net_desc *desc = port->vio.desc_buf;
525 err = ldc_get_dring_entry(port->vio.lp, desc, dr->entry_size,
541 err = ldc_put_dring_entry(port->vio.lp, desc, dr->entry_size,
555 struct vio_driver_state *vio = &port->vio;
576 trace_vnet_rx_one(port->vio._local_sid, port->vio._peer_sid,
589 struct vio_driver_state *vio = &port->vio;
628 trace_vnet_tx_send_stopped_ack(port->vio._local_sid,
629 port->vio._peer_sid,
634 trace_vnet_tx_defer_stopped_ack(port->vio._local_sid,
635 port->vio._peer_sid,
647 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_RX_RING];
648 struct vio_driver_state *vio = &port->vio;
687 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
708 trace_vnet_rx_stopped_ack(port->vio._local_sid,
709 port->vio._peer_sid, end);
773 struct vio_driver_state *vio = &vnet->vio;
775 return !!(vio->hs_state & VIO_HS_COMPLETE);
782 struct vio_driver_state *vio = &port->vio;
800 vio_link_state_change(vio, LDC_EVENT_RESET);
802 vio_port_up(vio);
827 vio_link_state_change(vio, LDC_EVENT_UP);
845 &port->vio.drings[VIO_DRIVER_RX_RING];
855 err = ldc_read(vio->lp, &msgbuf, sizeof(msgbuf));
858 vio_conn_reset(vio);
868 err = vio_validate_sid(vio, &msgbuf.tag);
899 err = vio_control_pkt_engine(vio, &msgbuf);
916 struct vio_driver_state *vio = &port->vio;
922 vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED);
931 struct vio_driver_state *vio = &port->vio;
934 vio_set_intr(vio->vdev->rx_ino, HV_INTR_DISABLED);
941 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
947 .sid = vio_send_sid(&port->vio),
957 trace_vnet_tx_pending_stopped_ack(port->vio._local_sid,
958 port->vio._peer_sid,
961 &port->vio.drings[VIO_DRIVER_RX_RING],
971 err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr));
982 trace_vnet_tx_trigger(port->vio._local_sid,
983 port->vio._peer_sid, start, err);
991 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
1021 ldc_unmap(port->vio.lp,
1225 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
1350 if (vio_version_after_eq(&port->vio, 1, 3))
1377 dr = &port->vio.drings[VIO_DRIVER_TX_RING];
1404 err = vnet_skb_map(port->vio.lp, skb, port->tx_bufs[txi].cookies, 2,
1428 if (vio_version_after_eq(&port->vio, 1, 7)) {
1437 if (vio_version_after_eq(&port->vio, 1, 8) &&
1472 trace_vnet_skip_tx_trigger(port->vio._local_sid,
1473 port->vio._peer_sid, dr->cons);
1596 info.tag.sid = vio_send_sid(&port->vio);
1609 (void)vio_ldc_send(&port->vio, &info,
1616 (void)vio_ldc_send(&port->vio, &info, sizeof(info));
1634 (void)vio_ldc_send(&port->vio, &info,
1644 (void)vio_ldc_send(&port->vio, &info, sizeof(info));
1675 dr = &port->vio.drings[VIO_DRIVER_TX_RING];
1689 ldc_unmap(port->vio.lp,
1696 ldc_free_exp_dring(port->vio.lp, dr->base,
1724 dr = &port->vio.drings[VIO_DRIVER_TX_RING];
1728 if (vio_version_after_eq(&port->vio, 1, 7))
1733 dring = ldc_alloc_exp_dring(port->vio.lp, len,