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