Lines Matching refs:vccp

86 static int	i_vcc_ldc_init(vcc_t *vccp, vcc_port_t *vport);
87 static int i_vcc_add_port(vcc_t *vccp, char *group_name, uint64_t tcp_port,
89 static int i_vcc_config_port(vcc_t *vccp, uint_t portno, uint64_t ldc_id);
90 static int i_vcc_reset_events(vcc_t *vccp);
91 static int i_vcc_cons_tbl(vcc_t *vccp, uint_t num_ports,
93 static int i_vcc_del_cons_ok(vcc_t *vccp, caddr_t buf, int mode);
284 vcc_t *vccp = NULL; in vcc_getinfo() local
289 if ((vccp = ddi_get_soft_state(vcc_ssp, instance)) == NULL) { in vcc_getinfo()
293 *resultp = vccp->dip; in vcc_getinfo()
410 i_vcc_ldc_init(vcc_t *vccp, vcc_port_t *vport) in i_vcc_ldc_init() argument
420 attr.instance = ddi_get_instance(vccp->dip); in i_vcc_ldc_init()
678 i_vcc_config_port(vcc_t *vccp, uint_t portno, uint64_t ldc_id) in i_vcc_config_port() argument
689 vport = &(vccp->port[portno]); in i_vcc_config_port()
710 if ((rv = i_vcc_ldc_init(vccp, vport)) != 0) { in i_vcc_config_port()
731 i_vcc_add_port(vcc_t *vccp, char *group_name, uint64_t tcp_port, in i_vcc_add_port() argument
746 vport = &(vccp->port[portno]); in i_vcc_add_port()
768 for (minor_idx = 0; minor_idx < vccp->minors_assigned; minor_idx++) { in i_vcc_add_port()
769 if (strcmp(vccp->minor_tbl[minor_idx].domain_name, in i_vcc_add_port()
776 if (minor_idx == vccp->minors_assigned) { in i_vcc_add_port()
785 (void) strlcpy(vccp->minor_tbl[minor_idx].domain_name, in i_vcc_add_port()
788 vccp->minors_assigned++; in i_vcc_add_port()
791 vport->minorp = &vccp->minor_tbl[minor_idx]; in i_vcc_add_port()
792 vccp->minor_tbl[minor_idx].portno = portno; in i_vcc_add_port()
806 instance = ddi_get_instance(vccp->dip); in i_vcc_add_port()
813 rv = ddi_create_minor_node(vccp->dip, name, S_IFCHR, minor, in i_vcc_add_port()
817 vccp->minors_assigned--; in i_vcc_add_port()
831 i_vcc_delete_port(vcc_t *vccp, vcc_port_t *vport) in i_vcc_delete_port() argument
855 ddi_remove_minor_node(vccp->dip, name); in i_vcc_delete_port()
868 i_vcc_mdeg_register(vcc_t *vccp, int instance) in i_vcc_mdeg_register() argument
895 vccp, &mdeg_hdl); in i_vcc_mdeg_register()
906 vccp->md_ispecp = (void *)ispecp; in i_vcc_mdeg_register()
907 vccp->mdeg_hdl = mdeg_hdl; in i_vcc_mdeg_register()
914 i_vcc_cleanup_port_table(vcc_t *vccp) in i_vcc_cleanup_port_table() argument
920 vport = &(vccp->port[i]); in i_vcc_cleanup_port_table()
936 vcc_t *vccp; in vcc_attach() local
948 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_attach()
949 if (vccp == NULL) { in vcc_attach()
950 ddi_soft_state_free(vccp, instance); in vcc_attach()
957 mutex_init(&vccp->lock, NULL, MUTEX_DRIVER, NULL); in vcc_attach()
959 mutex_enter(&vccp->lock); in vcc_attach()
961 vccp->dip = dip; in vcc_attach()
964 vport = &(vccp->port[i]); in vcc_attach()
971 vport = &vccp->port[VCC_CONTROL_PORT]; in vcc_attach()
974 vport->minorp = &vccp->minor_tbl[VCC_CONTROL_MINOR_IDX]; in vcc_attach()
980 vccp->minor_tbl[VCC_CONTROL_PORT].portno = in vcc_attach()
984 rv = ddi_create_minor_node(vccp->dip, "ctl", S_IFCHR, minor, in vcc_attach()
993 i_vcc_cleanup_port_table(vccp); in vcc_attach()
995 mutex_exit(&vccp->lock); in vcc_attach()
997 ddi_soft_state_free(vccp, instance); in vcc_attach()
1010 i_vcc_cleanup_port_table(vccp); in vcc_attach()
1013 ddi_remove_minor_node(vccp->dip, NULL); in vcc_attach()
1016 mutex_exit(&vccp->lock); in vcc_attach()
1017 ddi_soft_state_free(vccp, instance); in vcc_attach()
1028 mutex_exit(&vccp->lock); in vcc_attach()
1031 rv = i_vcc_mdeg_register(vccp, inst); in vcc_attach()
1035 i_vcc_cleanup_port_table(vccp); in vcc_attach()
1038 ddi_remove_minor_node(vccp->dip, NULL); in vcc_attach()
1041 ddi_soft_state_free(vccp, instance); in vcc_attach()
1065 vcc_t *vccp; in vcc_detach() local
1074 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_detach()
1075 if (vccp == NULL) in vcc_detach()
1080 mutex_enter(&vccp->lock); in vcc_detach()
1084 ASSERT(vccp->mdeg_hdl); in vcc_detach()
1085 (void) mdeg_unregister(vccp->mdeg_hdl); in vcc_detach()
1087 ispecp = (mdeg_node_spec_t *)vccp->md_ispecp; in vcc_detach()
1094 ddi_remove_minor_node(vccp->dip, NULL); in vcc_detach()
1095 mutex_exit(&vccp->lock); in vcc_detach()
1099 vport = &vccp->port[i]; in vcc_detach()
1107 if ((vccp->port[i].status & VCC_PORT_AVAIL) && in vcc_detach()
1110 (void) i_vcc_delete_port(vccp, vport); in vcc_detach()
1121 mutex_destroy(&vccp->lock); in vcc_detach()
1146 vcc_t *vccp; in vcc_open() local
1152 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_open()
1153 if (vccp == NULL) { in vcc_open()
1157 portno = VCCPORT(vccp, minor); in vcc_open()
1159 vport = &(vccp->port[portno]); in vcc_open()
1178 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in vcc_open()
1202 rv = i_vcc_ldc_init(vccp, vport); in vcc_open()
1264 vcc_t *vccp; in vcc_close() local
1270 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_close()
1271 if (vccp == NULL) { in vcc_close()
1275 portno = VCCPORT(vccp, minor); in vcc_close()
1279 vport = &(vccp->port[portno]); in vcc_close()
1299 rv = i_vcc_reset_events(vccp); in vcc_close()
1305 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in vcc_close()
1326 i_vcc_cons_tbl(vcc_t *vccp, uint_t num_ports, caddr_t buf, int mode) in i_vcc_cons_tbl() argument
1335 (void) ddi_pathname(vccp->dip, pathname); in i_vcc_cons_tbl()
1338 vport = &vccp->port[i]; in i_vcc_cons_tbl()
1392 vport = &vccp->port[VCC_CONTROL_PORT]; in i_vcc_cons_tbl()
1423 i_vcc_turn_off_event(vcc_t *vccp, uint32_t port_status, uint32_t event) in i_vcc_turn_off_event() argument
1431 vport = &(vccp->port[i]); in i_vcc_turn_off_event()
1446 vport = &vccp->port[VCC_CONTROL_PORT]; in i_vcc_turn_off_event()
1456 i_vcc_cons_info(vcc_t *vccp, caddr_t buf, int mode) in i_vcc_cons_info() argument
1474 vport = &vccp->port[portno]; in i_vcc_cons_info()
1495 (void) ddi_pathname(vccp->dip, pathname), in i_vcc_cons_info()
1511 i_vcc_turn_off_event(vccp, VCC_PORT_ADDED, VCC_POLL_ADD_PORT); in i_vcc_cons_info()
1519 i_vcc_inquiry(vcc_t *vccp, caddr_t buf, int mode) in i_vcc_inquiry() argument
1525 vport = &(vccp->port[VCC_CONTROL_PORT]); in i_vcc_inquiry()
1536 if ((vccp->port[i].status & VCC_PORT_AVAIL) == 0) { in i_vcc_inquiry()
1540 if (vccp->port[i].status & VCC_PORT_ADDED) { in i_vcc_inquiry()
1571 i_vcc_reset_events(vcc_t *vccp) in i_vcc_reset_events() argument
1577 vport = &(vccp->port[i]); in i_vcc_reset_events()
1605 vport = &vccp->port[VCC_CONTROL_PORT]; in i_vcc_reset_events()
1612 i_vcc_force_close(vcc_t *vccp, caddr_t buf, int mode) in i_vcc_force_close() argument
1629 vport = &vccp->port[portno]; in i_vcc_force_close()
1649 i_vcc_cons_status(vcc_t *vccp, caddr_t buf, int mode) in i_vcc_cons_status() argument
1667 vport = &vccp->port[console.cons_no]; in i_vcc_cons_status()
1694 i_vcc_ctrl_ioctl(vcc_t *vccp, int cmd, void* arg, int mode) in i_vcc_ctrl_ioctl() argument
1704 mutex_enter(&vccp->lock); in i_vcc_ctrl_ioctl()
1705 num_ports = vccp->num_ports; in i_vcc_ctrl_ioctl()
1706 mutex_exit(&vccp->lock); in i_vcc_ctrl_ioctl()
1714 return (i_vcc_cons_tbl(vccp, num_ports, (caddr_t)arg, mode)); in i_vcc_ctrl_ioctl()
1719 return (i_vcc_inquiry(vccp, (caddr_t)arg, mode)); in i_vcc_ctrl_ioctl()
1723 return (i_vcc_cons_info(vccp, (caddr_t)arg, mode)); in i_vcc_ctrl_ioctl()
1727 return (i_vcc_force_close(vccp, (caddr_t)arg, mode)); in i_vcc_ctrl_ioctl()
1731 return (i_vcc_cons_status(vccp, (caddr_t)arg, mode)); in i_vcc_ctrl_ioctl()
1791 i_vcc_port_ioctl(vcc_t *vccp, minor_t minor, int portno, int cmd, void *arg, in i_vcc_port_ioctl() argument
1802 vport = &(vccp->port[portno]); in i_vcc_port_ioctl()
1818 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in i_vcc_port_ioctl()
1841 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in i_vcc_port_ioctl()
1858 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in i_vcc_port_ioctl()
1895 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in i_vcc_port_ioctl()
1953 vcc_t *vccp; in vcc_ioctl() local
1959 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_ioctl()
1960 if (vccp == NULL) { in vcc_ioctl()
1964 portno = VCCPORT(vccp, minor); in vcc_ioctl()
1979 return (i_vcc_ctrl_ioctl(vccp, cmd, (void *)arg, mode)); in vcc_ioctl()
1983 return (i_vcc_port_ioctl(vccp, minor, portno, cmd, (void *)arg, mode)); in vcc_ioctl()
1995 vcc_t *vccp; in vcc_read() local
2006 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_read()
2007 if (vccp == NULL) { in vcc_read()
2011 portno = VCCPORT(vccp, minor); in vcc_read()
2025 vport = &(vccp->port[portno]); in vcc_read()
2030 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in vcc_read()
2113 vcc_t *vccp; in vcc_write() local
2124 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_write()
2125 if (vccp == NULL) { in vcc_write()
2129 portno = VCCPORT(vccp, minor); in vcc_write()
2135 vport = &(vccp->port[portno]); in vcc_write()
2144 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in vcc_write()
2185 if ((rv = i_vcc_can_use_port(VCCMINORP(vccp, minor), in vcc_write()
2209 i_vcc_md_remove_port(md_t *mdp, mde_cookie_t mdep, vcc_t *vccp) in i_vcc_md_remove_port() argument
2233 vport = &(vccp->port[portno]); in i_vcc_md_remove_port()
2237 rv = i_vcc_delete_port(vccp, vport); in i_vcc_md_remove_port()
2240 mutex_enter(&vccp->lock); in i_vcc_md_remove_port()
2241 vccp->num_ports--; in i_vcc_md_remove_port()
2242 mutex_exit(&vccp->lock); in i_vcc_md_remove_port()
2294 i_vcc_md_add_port(md_t *mdp, mde_cookie_t mdep, vcc_t *vccp) in i_vcc_md_add_port() argument
2337 if (i_vcc_add_port(vccp, group_name, tcp_port, portno, domain_name)) { in i_vcc_md_add_port()
2341 vport = &vccp->port[portno]; in i_vcc_md_add_port()
2344 (void) i_vcc_delete_port(vccp, vport); in i_vcc_md_add_port()
2350 if (i_vcc_config_port(vccp, portno, ldc_id)) { in i_vcc_md_add_port()
2352 (void) i_vcc_delete_port(vccp, vport); in i_vcc_md_add_port()
2357 mutex_enter(&vccp->lock); in i_vcc_md_add_port()
2358 vccp->num_ports++; in i_vcc_md_add_port()
2359 mutex_exit(&vccp->lock); in i_vcc_md_add_port()
2361 vport = &vccp->port[VCC_CONTROL_PORT]; in i_vcc_md_add_port()
2379 vcc_t *vccp; in vcc_mdeg_cb() local
2382 vccp = (vcc_t *)cb_argp; in vcc_mdeg_cb()
2383 ASSERT(vccp); in vcc_mdeg_cb()
2394 resp->added.mdep[idx], vccp); in vcc_mdeg_cb()
2406 resp->removed.mdep[idx], vccp); in vcc_mdeg_cb()
2432 vcc_t *vccp; in vcc_chpoll() local
2439 vccp = ddi_get_soft_state(vcc_ssp, instance); in vcc_chpoll()
2440 if (vccp == NULL) { in vcc_chpoll()
2444 portno = VCCPORT(vccp, minor); in vcc_chpoll()
2446 vport = &(vccp->port[portno]); in vcc_chpoll()