Lines Matching defs:sp

61  * 	sp->cons_input_type = CONSOLE_LOCAL
67 * sp->cons_input_type = CONSOLE_TIP
74 * sp->cons_input_type = CONSOLE_SERIAL_KEYBOARD
493 consconfig_tem_supported(cons_state_t *sp)
501 if (sp->cons_fb_path == NULL)
504 if ((dev = ddi_pathname_to_dev_t(sp->cons_fb_path)) == NODEV)
517 sp->cons_fb_path);
592 consconfig_setup_polledio(cons_state_t *sp, dev_t dev)
601 FREAD|FWRITE|FNOCTTY, kcred, &lh, sp->cons_li) != 0)
638 cons_state_t *sp;
642 sp = kmem_zalloc(sizeof (cons_state_t), KM_SLEEP);
643 sp->cons_keyboard_problem = B_FALSE;
645 mutex_init(&sp->cons_lock, NULL, MUTEX_DRIVER, NULL);
664 sp->cons_keyboard_path = consconfig_usb_kb_path;
666 sp->cons_keyboard_path = usb_kb_path;
668 sp->cons_keyboard_path = plat_kbdpath();
672 sp->cons_mouse_path = consconfig_usb_ms_path;
674 sp->cons_mouse_path = usb_ms_path;
676 sp->cons_mouse_path = plat_mousepath();
680 sp->cons_stdout_path = plat_stdoutpath();
681 sp->cons_stdout_is_fb = plat_stdout_is_framebuffer();
683 sp->cons_stdin_is_kbd = plat_stdin_is_keyboard();
685 if (sp->cons_stdin_is_kbd &&
687 sp->cons_stdin_path = sp->cons_keyboard_path;
696 sp->cons_stdin_path = plat_stdinpath();
699 if (sp->cons_stdout_is_fb) {
700 sp->cons_fb_path = sp->cons_stdout_path;
703 sp->cons_tem_supported = consconfig_tem_supported(sp);
711 if (!sp->cons_tem_supported) {
715 sp->cons_stdin_is_kbd = 0;
716 sp->cons_stdout_is_fb = 0;
717 sp->cons_stdin_path = path;
718 sp->cons_stdout_path = path;
719 sp->cons_fb_path = plat_fbpath();
724 sp->cons_fb_path);
729 sp->cons_fb_path = plat_fbpath();
731 sp->cons_tem_supported = consconfig_tem_supported(sp);
735 sp->cons_li = ldi_ident_from_anon();
738 rval = space_store("consconfig", (uintptr_t)sp);
741 return (sp);
745 consconfig_relink_wc(cons_state_t *sp, ldi_handle_t new_lh, int *muxid)
767 wc_dev = sp->cons_wc_vp->v_rdev;
769 kcred, &wc_lh, sp->cons_li);
770 ASSERT(wc_dev == sp->cons_wc_vp->v_rdev);
804 cons_build_upper_layer(cons_state_t *sp)
825 kcred, &sp->conskbd_lh, sp->cons_li) != 0) {
830 DPRINTF(DPRINT_L0, "conskbd_lh = %p\n", sp->conskbd_lh);
834 kcred, &sp->consms_lh, sp->cons_li) != 0) {
839 DPRINTF(DPRINT_L0, "consms_lh = %p\n", sp->consms_lh);
848 sp->cons_wc_vp = i_consconfig_createvp(WC_PATH);
849 if (sp->cons_wc_vp == NULL)
852 if (e_ddi_hold_devi_by_dev(sp->cons_wc_vp->v_rdev, 0) == NULL)
870 (void) consconfig_relink_wc(sp, sp->conskbd_lh, &sp->conskbd_muxid);
890 if (sp->cons_fb_path == NULL) {
892 if (sp->cons_stdout_is_fb)
899 dev = ddi_pathname_to_dev_t(sp->cons_fb_path);
903 sp->cons_fb_path);
913 if (!sp->cons_tem_supported)
918 wc_dev = sp->cons_wc_vp->v_rdev;
920 &wc_lh, sp->cons_li)) {
925 ASSERT(wc_dev == sp->cons_wc_vp->v_rdev);
929 strioc.ic_len = strlen(sp->cons_fb_path) + 1;
930 strioc.ic_dp = sp->cons_fb_path;
942 consconfig_load_drivers(cons_state_t *sp)
979 if (sp->cons_stdin_path != NULL)
980 stdindev = ddi_pathname_to_dev_t(sp->cons_stdin_path);
983 "!fail to attach stdin: %s\n", sp->cons_stdin_path);
985 if (sp->cons_stdout_path != NULL)
986 stdoutdev = ddi_pathname_to_dev_t(sp->cons_stdout_path);
987 if (sp->cons_keyboard_path != NULL)
988 kbddev = ddi_pathname_to_dev_t(sp->cons_keyboard_path);
989 if (sp->cons_mouse_path != NULL)
990 mousedev = ddi_pathname_to_dev_t(sp->cons_mouse_path);
998 if (sp->cons_fb_path != NULL)
999 fbdev = ddi_pathname_to_dev_t(sp->cons_fb_path);
1008 consconfig_virtual_console_vp(cons_state_t *sp)
1018 ASSERT(sp->cons_stdout_path != NULL);
1019 if (strcmp(virtual_cons_path, sp->cons_stdout_path) == 0) {
1037 consconfig_init_framebuffer(cons_state_t *sp)
1039 if (!sp->cons_stdout_is_fb)
1043 ASSERT(strcmp(sp->cons_fb_path, sp->cons_stdout_path) == 0);
1056 fbvp = i_consconfig_createvp(sp->cons_stdout_path);
1067 pm_cfb_setup(sp->cons_stdout_path);
1135 consconfig_relink_conskbd(cons_state_t *sp, ldi_handle_t new_lh, int *muxid)
1144 sp->conskbd_lh, new_lh, *muxid);
1153 if (sp->conskbd_muxid != -1) {
1156 err = consconfig_relink_wc(sp, NULL, &sp->conskbd_muxid);
1168 err = ldi_ioctl(sp->conskbd_lh, I_PLINK, (uintptr_t)new_lh,
1182 err = ldi_ioctl(sp->conskbd_lh, I_PUNLINK, *muxid,
1192 consconfig_check_phys_kbd(sp);
1207 err = consconfig_relink_wc(sp, sp->conskbd_lh, &sp->conskbd_muxid);
1220 (void) consconfig_relink_wc(sp, sp->conskbd_lh, &sp->conskbd_muxid);
1235 consconfig_relink_consms(cons_state_t *sp, ldi_handle_t new_lh, int *muxid)
1241 (void *)sp->consms_lh, (void *)new_lh, *muxid);
1247 err = ldi_ioctl(sp->consms_lh, I_PLINK, (uintptr_t)new_lh,
1257 err = ldi_ioctl(sp->consms_lh, I_PUNLINK, *muxid,
1270 cons_get_input_type(cons_state_t *sp)
1278 if (sp->cons_stdin_is_kbd) {
1296 consconfig_init_input(cons_state_t *sp)
1304 switch (sp->cons_input_type) {
1342 sp->cons_keyboard_problem = B_TRUE;
1345 cons_final_dev = sp->cons_wc_vp->v_rdev;
1350 sp->cons_stdin_path);
1356 rconsvp = i_consconfig_createvp(sp->cons_stdin_path);
1360 sp->cons_stdin_path);
1384 (void) consconfig_relink_wc(sp, NULL, &sp->conskbd_muxid);
1385 sp->conskbd_muxid = -1;
1391 err = ldi_open_by_name(sp->cons_stdin_path,
1392 FREAD|FWRITE|FNOCTTY, kcred, &new_lh, sp->cons_li);
1399 "kb", TR_CANNOT, sp->cons_input_type, CONS_KBD);
1423 (void) consconfig_relink_wc(sp, new_lh, &stdin_muxid);
1428 cons_final_dev = sp->cons_wc_vp->v_rdev;
1452 kcred, &new_lh, sp->cons_li);
1472 consconfig_setup_polledio(sp, sp->cons_wc_vp->v_rdev);
1474 consconfig_setup_polledio(sp, cons_final_dev);
1572 do_config(cons_state_t *sp, cons_prop_t *prop)
1582 FREAD|FWRITE|FNOCTTY, kcred, &lh, sp->cons_li);
1593 sp->cons_input_type, prop->cp_type);
1605 error = consconfig_relink_conskbd(sp, lh, &prop->cp_muxid);
1608 error = consconfig_relink_consms(sp, lh, &prop->cp_muxid);
1628 do_unconfig(cons_state_t *sp, cons_prop_t *prop)
1633 return (consconfig_relink_conskbd(sp, NULL, &prop->cp_muxid));
1635 return (consconfig_relink_consms(sp, NULL, &prop->cp_muxid));
1645 cons_state_t *sp;
1658 if ((sp = (cons_state_t *)space_fetch("consconfig")) == NULL)
1672 mutex_enter(&sp->cons_lock);
1677 if (consconfig_find_dev(sp, dev) != NULL) {
1678 mutex_exit(&sp->cons_lock);
1691 if (do_config(sp, prop) != DACF_SUCCESS) {
1698 mutex_exit(&sp->cons_lock);
1703 consconfig_add_dev(sp, prop);
1709 if ((type == CONS_KBD) && (sp->cons_keyboard_problem)) {
1710 consconfig_setup_polledio(sp, sp->cons_wc_vp->v_rdev);
1711 sp->cons_keyboard_problem = B_FALSE;
1717 mutex_exit(&sp->cons_lock);
1731 cons_state_t *sp;
1739 if ((sp = (cons_state_t *)space_fetch("consconfig")) == NULL)
1753 mutex_enter(&sp->cons_lock);
1754 if ((prop = consconfig_find_dev(sp, dev)) == NULL) {
1755 mutex_exit(&sp->cons_lock);
1763 (void) do_unconfig(sp, prop);
1764 consconfig_rem_dev(sp, dev);
1767 mutex_exit(&sp->cons_lock);
1822 cons_state_t *sp;
1825 if ((sp = (cons_state_t *)space_fetch("consconfig")) == NULL)
1831 mutex_enter(&sp->cons_lock);
1832 if ((prop = consconfig_find_dev(sp, dev)) == NULL) {
1833 mutex_exit(&sp->cons_lock);
1837 if (do_config(sp, prop) != DACF_SUCCESS) {
1845 consconfig_rem_dev(sp, dev);
1848 mutex_exit(&sp->cons_lock);
1856 cons_state_t *sp;
1860 if ((sp = (cons_state_t *)space_fetch("consconfig")) == NULL)
1866 mutex_enter(&sp->cons_lock);
1867 if ((prop = consconfig_find_dev(sp, dev)) == NULL) {
1868 mutex_exit(&sp->cons_lock);
1872 error = do_unconfig(sp, prop);
1877 mutex_exit(&sp->cons_lock);
2027 consconfig_check_phys_kbd(cons_state_t *sp)
2034 for (prop = sp->cons_km_prop; prop; prop = prop->cp_next) {
2039 FREAD|FWRITE|FNOCTTY, kcred, &kb_lh, sp->cons_li);
2042 (void) ldi_ioctl(sp->conskbd_lh, I_PUNLINK,
2054 consconfig_rem_dev(sp, NODEV);
2061 consconfig_rem_dev(cons_state_t *sp, dev_t dev)
2070 for (prop = sp->cons_km_prop; prop != NULL; ) {
2084 sp->cons_km_prop = head_prop;
2091 consconfig_add_dev(cons_state_t *sp, cons_prop_t *prop)
2093 prop->cp_next = sp->cons_km_prop;
2094 sp->cons_km_prop = prop;
2101 consconfig_find_dev(cons_state_t *sp, dev_t dev)
2105 for (prop = sp->cons_km_prop; prop; prop = prop->cp_next) {
2189 cons_state_t *sp;
2191 if ((sp = (cons_state_t *)space_fetch("consconfig")) == NULL)
2194 if (sp->cons_input_type == CONSOLE_TIP)
2203 cons_state_t *sp;
2205 if ((sp = (cons_state_t *)space_fetch("consconfig")) == NULL)
2208 return (sp->cons_initialized);