Lines Matching refs:port
550 struct vtcon_port *port; in vtcon_destroy_ports() local
561 port = scport->vcsp_port; in vtcon_destroy_ports()
562 if (port != NULL) { in vtcon_destroy_ports()
564 VTCON_PORT_LOCK(port); in vtcon_destroy_ports()
566 vtcon_port_teardown(port); in vtcon_destroy_ports()
727 struct vtcon_port *port; in vtcon_ctrl_port_remove_event() local
733 port = scport->vcsp_port; in vtcon_ctrl_port_remove_event()
734 if (port == NULL) { in vtcon_ctrl_port_remove_event()
742 VTCON_PORT_LOCK(port); in vtcon_ctrl_port_remove_event()
744 vtcon_port_teardown(port); in vtcon_ctrl_port_remove_event()
752 struct vtcon_port *port; in vtcon_ctrl_port_console_event() local
758 port = scport->vcsp_port; in vtcon_ctrl_port_console_event()
759 if (port == NULL) { in vtcon_ctrl_port_console_event()
766 VTCON_PORT_LOCK(port); in vtcon_ctrl_port_console_event()
768 port->vtcport_flags |= VTCON_PORT_FLAG_CONSOLE; in vtcon_ctrl_port_console_event()
769 vtcon_port_submit_event(port, VIRTIO_CONSOLE_PORT_OPEN, 1); in vtcon_ctrl_port_console_event()
770 VTCON_PORT_UNLOCK(port); in vtcon_ctrl_port_console_event()
778 struct vtcon_port *port; in vtcon_ctrl_port_open_event() local
784 port = scport->vcsp_port; in vtcon_ctrl_port_open_event()
785 if (port == NULL) { in vtcon_ctrl_port_open_event()
792 VTCON_PORT_LOCK(port); in vtcon_ctrl_port_open_event()
794 vtcon_port_enable_intr(port); in vtcon_ctrl_port_open_event()
795 VTCON_PORT_UNLOCK(port); in vtcon_ctrl_port_open_event()
937 vtcon_port_enqueue_buf(struct vtcon_port *port, void *buf, size_t len) in vtcon_port_enqueue_buf() argument
944 vq = port->vtcport_invq; in vtcon_port_enqueue_buf()
957 vtcon_port_create_buf(struct vtcon_port *port) in vtcon_port_create_buf() argument
966 error = vtcon_port_enqueue_buf(port, buf, VTCON_BULK_BUFSZ); in vtcon_port_create_buf()
974 vtcon_port_requeue_buf(struct vtcon_port *port, void *buf) in vtcon_port_requeue_buf() argument
978 error = vtcon_port_enqueue_buf(port, buf, VTCON_BULK_BUFSZ); in vtcon_port_requeue_buf()
984 vtcon_port_populate(struct vtcon_port *port) in vtcon_port_populate() argument
989 vq = port->vtcport_invq; in vtcon_port_populate()
993 error = vtcon_port_create_buf(port); in vtcon_port_populate()
1007 vtcon_port_destroy(struct vtcon_port *port) in vtcon_port_destroy() argument
1010 port->vtcport_sc = NULL; in vtcon_port_destroy()
1011 port->vtcport_scport = NULL; in vtcon_port_destroy()
1012 port->vtcport_invq = NULL; in vtcon_port_destroy()
1013 port->vtcport_outvq = NULL; in vtcon_port_destroy()
1014 port->vtcport_id = -1; in vtcon_port_destroy()
1015 mtx_destroy(&port->vtcport_mtx); in vtcon_port_destroy()
1016 free(port, M_DEVBUF); in vtcon_port_destroy()
1020 vtcon_port_init_vqs(struct vtcon_port *port) in vtcon_port_init_vqs() argument
1025 scport = port->vtcport_scport; in vtcon_port_init_vqs()
1027 port->vtcport_invq = scport->vcsp_invq; in vtcon_port_init_vqs()
1028 port->vtcport_outvq = scport->vcsp_outvq; in vtcon_port_init_vqs()
1035 vtcon_port_drain(port); in vtcon_port_init_vqs()
1037 KASSERT(virtqueue_empty(port->vtcport_invq), in vtcon_port_init_vqs()
1039 KASSERT(virtqueue_empty(port->vtcport_outvq), in vtcon_port_init_vqs()
1042 error = vtcon_port_populate(port); in vtcon_port_init_vqs()
1054 struct vtcon_port *port; in vtcon_port_create() local
1063 port = malloc(sizeof(struct vtcon_port), M_DEVBUF, M_NOWAIT | M_ZERO); in vtcon_port_create()
1064 if (port == NULL) in vtcon_port_create()
1067 port->vtcport_sc = sc; in vtcon_port_create()
1068 port->vtcport_scport = scport; in vtcon_port_create()
1069 port->vtcport_id = id; in vtcon_port_create()
1070 mtx_init(&port->vtcport_mtx, "vtcpmtx", NULL, MTX_DEF); in vtcon_port_create()
1071 port->vtcport_tty = tty_alloc_mutex(&vtcon_tty_class, port, in vtcon_port_create()
1072 &port->vtcport_mtx); in vtcon_port_create()
1074 error = vtcon_port_init_vqs(port); in vtcon_port_create()
1076 VTCON_PORT_LOCK(port); in vtcon_port_create()
1077 vtcon_port_teardown(port); in vtcon_port_create()
1082 VTCON_PORT_LOCK(port); in vtcon_port_create()
1083 scport->vcsp_port = port; in vtcon_port_create()
1084 vtcon_port_enable_intr(port); in vtcon_port_create()
1085 vtcon_port_submit_event(port, VIRTIO_CONSOLE_PORT_READY, 1); in vtcon_port_create()
1086 VTCON_PORT_UNLOCK(port); in vtcon_port_create()
1089 tty_makedev(port->vtcport_tty, NULL, "%s%r.%r", VTCON_TTY_PREFIX, in vtcon_port_create()
1108 vtcon_port_drain(struct vtcon_port *port) in vtcon_port_drain() argument
1111 vtcon_port_drain_bufs(port->vtcport_invq); in vtcon_port_drain()
1115 vtcon_port_teardown(struct vtcon_port *port) in vtcon_port_teardown() argument
1119 tp = port->vtcport_tty; in vtcon_port_teardown()
1121 port->vtcport_flags |= VTCON_PORT_FLAG_GONE; in vtcon_port_teardown()
1127 vtcon_port_destroy(port); in vtcon_port_teardown()
1131 vtcon_port_change_size(struct vtcon_port *port, uint16_t cols, uint16_t rows) in vtcon_port_change_size() argument
1136 tp = port->vtcport_tty; in vtcon_port_change_size()
1151 struct vtcon_port *port; in vtcon_port_update_console_size() local
1164 port = scport->vcsp_port; in vtcon_port_update_console_size()
1166 if (port != NULL) { in vtcon_port_update_console_size()
1167 VTCON_PORT_LOCK(port); in vtcon_port_update_console_size()
1169 vtcon_port_change_size(port, cols, rows); in vtcon_port_update_console_size()
1170 VTCON_PORT_UNLOCK(port); in vtcon_port_update_console_size()
1176 vtcon_port_enable_intr(struct vtcon_port *port) in vtcon_port_enable_intr() argument
1183 virtqueue_enable_intr(port->vtcport_invq); in vtcon_port_enable_intr()
1187 vtcon_port_disable_intr(struct vtcon_port *port) in vtcon_port_disable_intr() argument
1190 if (port->vtcport_invq != NULL) in vtcon_port_disable_intr()
1191 virtqueue_disable_intr(port->vtcport_invq); in vtcon_port_disable_intr()
1192 if (port->vtcport_outvq != NULL) in vtcon_port_disable_intr()
1193 virtqueue_disable_intr(port->vtcport_outvq); in vtcon_port_disable_intr()
1197 vtcon_port_in(struct vtcon_port *port) in vtcon_port_in() argument
1205 tp = port->vtcport_tty; in vtcon_port_in()
1206 vq = port->vtcport_invq; in vtcon_port_in()
1214 if (port->vtcport_flags & VTCON_PORT_FLAG_CONSOLE) in vtcon_port_in()
1216 &port->vtcport_alt_break_state); in vtcon_port_in()
1220 vtcon_port_requeue_buf(port, buf); in vtcon_port_in()
1237 struct vtcon_port *port; in vtcon_port_intr() local
1243 port = scport->vcsp_port; in vtcon_port_intr()
1244 if (port == NULL) { in vtcon_port_intr()
1248 VTCON_PORT_LOCK(port); in vtcon_port_intr()
1250 if ((port->vtcport_flags & VTCON_PORT_FLAG_GONE) == 0) in vtcon_port_intr()
1251 vtcon_port_in(port); in vtcon_port_intr()
1252 VTCON_PORT_UNLOCK(port); in vtcon_port_intr()
1256 vtcon_port_out(struct vtcon_port *port, void *buf, int bufsize) in vtcon_port_out() argument
1263 vq = port->vtcport_outvq; in vtcon_port_out()
1265 ("%s: port %p out virtqueue not emtpy", __func__, port)); in vtcon_port_out()
1280 vtcon_port_submit_event(struct vtcon_port *port, uint16_t event, in vtcon_port_submit_event() argument
1285 sc = port->vtcport_sc; in vtcon_port_submit_event()
1287 vtcon_ctrl_send_control(sc, port->vtcport_id, event, value); in vtcon_port_submit_event()
1293 struct vtcon_port *port; in vtcon_tty_open() local
1295 port = tty_softc(tp); in vtcon_tty_open()
1297 if (port->vtcport_flags & VTCON_PORT_FLAG_GONE) in vtcon_tty_open()
1300 vtcon_port_submit_event(port, VIRTIO_CONSOLE_PORT_OPEN, 1); in vtcon_tty_open()
1308 struct vtcon_port *port; in vtcon_tty_close() local
1310 port = tty_softc(tp); in vtcon_tty_close()
1312 if (port->vtcport_flags & VTCON_PORT_FLAG_GONE) in vtcon_tty_close()
1315 vtcon_port_submit_event(port, VIRTIO_CONSOLE_PORT_OPEN, 0); in vtcon_tty_close()
1321 struct vtcon_port *port; in vtcon_tty_outwakeup() local
1325 port = tty_softc(tp); in vtcon_tty_outwakeup()
1327 if (port->vtcport_flags & VTCON_PORT_FLAG_GONE) in vtcon_tty_outwakeup()
1331 vtcon_port_out(port, buf, len); in vtcon_tty_outwakeup()
1337 struct vtcon_port *port; in vtcon_tty_free() local
1339 port = xport; in vtcon_tty_free()
1341 vtcon_port_destroy(port); in vtcon_tty_free()
1363 struct vtcon_port *port; in vtcon_enable_interrupts() local
1374 port = scport->vcsp_port; in vtcon_enable_interrupts()
1375 if (port == NULL) in vtcon_enable_interrupts()
1378 VTCON_PORT_LOCK(port); in vtcon_enable_interrupts()
1379 vtcon_port_enable_intr(port); in vtcon_enable_interrupts()
1380 VTCON_PORT_UNLOCK(port); in vtcon_enable_interrupts()
1390 struct vtcon_port *port; in vtcon_disable_interrupts() local
1401 port = scport->vcsp_port; in vtcon_disable_interrupts()
1402 if (port == NULL) in vtcon_disable_interrupts()
1405 VTCON_PORT_LOCK(port); in vtcon_disable_interrupts()
1406 vtcon_port_disable_intr(port); in vtcon_disable_interrupts()
1407 VTCON_PORT_UNLOCK(port); in vtcon_disable_interrupts()