Lines Matching refs:tem

121 static void	tem_safe_clear_chars(struct tem_vt_state *tem,
124 static void tem_safe_copy_area(struct tem_vt_state *tem,
132 static void tem_safe_bell(struct tem_vt_state *tem,
134 static void tem_safe_pix_clear_prom_output(struct tem_vt_state *tem,
145 static void tem_safe_align_cursor(struct tem_vt_state *tem);
146 static void bit_to_pix4(struct tem_vt_state *tem, uchar_t c,
148 static void bit_to_pix8(struct tem_vt_state *tem, uchar_t c,
150 static void bit_to_pix24(struct tem_vt_state *tem, uchar_t c,
207 #define tem_safe_callback_bit2pix(tem, c, fg, bg) { \ argument
209 (void) (*tems.ts_callbacks->tsc_bit2pix)((tem), (c), (fg), (bg));\
214 struct tem_vt_state *tem, in tem_safe_check_first_time() argument
220 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_check_first_time()
234 tem_safe_text_cursor(tem, VIS_GET_CURSOR, credp, called_from); in tem_safe_check_first_time()
235 tem_safe_align_cursor(tem); in tem_safe_check_first_time()
254 struct tem_vt_state *tem = (struct tem_vt_state *)tem_arg; in tem_safe_polled_write() local
261 if (!tem->tvs_initialized) { in tem_safe_polled_write()
265 tem_safe_check_first_time(tem, kcred, CALLED_FROM_STANDALONE); in tem_safe_polled_write()
266 tem_safe_terminal_emulate(tem, buf, len, NULL, CALLED_FROM_STANDALONE); in tem_safe_polled_write()
280 struct tem_vt_state *tem, in tem_safe_terminal_emulate() argument
287 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_terminal_emulate()
290 if (tem->tvs_isactive) in tem_safe_terminal_emulate()
291 tem_safe_callback_cursor(tem, in tem_safe_terminal_emulate()
295 tem_safe_parse(tem, *buf, credp, called_from); in tem_safe_terminal_emulate()
300 tem_safe_send_data(tem, credp, called_from); in tem_safe_terminal_emulate()
302 if (tem->tvs_isactive) in tem_safe_terminal_emulate()
303 tem_safe_callback_cursor(tem, in tem_safe_terminal_emulate()
366 struct tem_vt_state *tem, in tem_safe_control() argument
371 tem->tvs_state = A_STATE_START; in tem_safe_control()
374 tem_safe_bell(tem, called_from); in tem_safe_control()
378 tem_safe_mv_cursor(tem, in tem_safe_control()
379 tem->tvs_c_cursor.row, in tem_safe_control()
380 tem->tvs_c_cursor.col - 1, in tem_safe_control()
385 tem_safe_tab(tem, credp, called_from); in tem_safe_control()
396 tem_safe_send_data(tem, credp, called_from); in tem_safe_control()
397 tem_safe_lf(tem, credp, called_from); in tem_safe_control()
401 tem_safe_send_data(tem, credp, called_from); in tem_safe_control()
402 tem_safe_cls(tem, credp, called_from); in tem_safe_control()
406 tem_safe_send_data(tem, credp, called_from); in tem_safe_control()
407 tem_safe_cr(tem); in tem_safe_control()
411 tem->tvs_state = A_STATE_ESC; in tem_safe_control()
417 tem->tvs_curparam = 0; in tem_safe_control()
418 tem->tvs_paramval = 0; in tem_safe_control()
419 tem->tvs_gotparam = B_FALSE; in tem_safe_control()
422 tem->tvs_params[i] = -1; in tem_safe_control()
423 tem->tvs_state = A_STATE_CSI; in tem_safe_control()
428 tem_safe_back_tab(tem, credp, called_from); in tem_safe_control()
443 tem_safe_setparam(struct tem_vt_state *tem, int count, int newparam) in tem_safe_setparam() argument
448 if (tem->tvs_params[i] == -1) in tem_safe_setparam()
449 tem->tvs_params[i] = newparam; in tem_safe_setparam()
458 tem_safe_selgraph(struct tem_vt_state *tem) in tem_safe_selgraph() argument
464 tem->tvs_state = A_STATE_START; in tem_safe_selgraph()
466 curparam = tem->tvs_curparam; in tem_safe_selgraph()
468 param = tem->tvs_params[count]; in tem_safe_selgraph()
474 tem->tvs_fg_color = tems.ts_init_color.fg_color; in tem_safe_selgraph()
475 tem->tvs_bg_color = tems.ts_init_color.bg_color; in tem_safe_selgraph()
476 tem->tvs_flags = tems.ts_init_color.a_flags; in tem_safe_selgraph()
480 tem->tvs_flags |= TEM_ATTR_BOLD; in tem_safe_selgraph()
484 tem->tvs_flags &= ~TEM_ATTR_BOLD; in tem_safe_selgraph()
488 tem->tvs_flags |= TEM_ATTR_BLINK; in tem_safe_selgraph()
492 if (tem->tvs_flags & TEM_ATTR_SCREEN_REVERSE) { in tem_safe_selgraph()
493 tem->tvs_flags &= ~TEM_ATTR_REVERSE; in tem_safe_selgraph()
495 tem->tvs_flags |= TEM_ATTR_REVERSE; in tem_safe_selgraph()
507 tem->tvs_fg_color = param - 30; in tem_safe_selgraph()
518 tem->tvs_bg_color = param - 40; in tem_safe_selgraph()
538 struct tem_vt_state *tem, in tem_safe_chkparam() argument
548 MUTEX_HELD(&tem->tvs_lock)); in tem_safe_chkparam()
550 row = tem->tvs_c_cursor.row; in tem_safe_chkparam()
551 col = tem->tvs_c_cursor.col; in tem_safe_chkparam()
556 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
557 tem_safe_selgraph(tem); in tem_safe_chkparam()
561 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
562 tem_safe_shift(tem, tem->tvs_params[0], TEM_SHIFT_RIGHT, in tem_safe_chkparam()
567 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
568 tem_safe_mv_cursor(tem, row - tem->tvs_params[0], col, in tem_safe_chkparam()
573 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
574 tem_safe_mv_cursor(tem, tem->tvs_params[0] - 1, col, in tem_safe_chkparam()
580 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
581 tem_safe_mv_cursor(tem, row + tem->tvs_params[0], col, in tem_safe_chkparam()
587 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
588 tem_safe_mv_cursor(tem, row, col + tem->tvs_params[0], in tem_safe_chkparam()
593 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
594 tem_safe_mv_cursor(tem, row, tem->tvs_params[0] - 1, in tem_safe_chkparam()
599 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
600 tem_safe_mv_cursor(tem, row, col - tem->tvs_params[0], in tem_safe_chkparam()
605 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
606 tem_safe_mv_cursor(tem, row + tem->tvs_params[0], 0, in tem_safe_chkparam()
611 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
612 tem_safe_mv_cursor(tem, row - tem->tvs_params[0], 0, in tem_safe_chkparam()
617 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
618 tem_safe_mv_cursor(tem, row, tem->tvs_params[0] - 1, in tem_safe_chkparam()
623 tem_safe_setparam(tem, 1, 0); in tem_safe_chkparam()
624 tem_safe_clear_tabs(tem, tem->tvs_params[0]); in tem_safe_chkparam()
629 tem_safe_setparam(tem, 2, 1); in tem_safe_chkparam()
630 tem_safe_mv_cursor(tem, in tem_safe_chkparam()
631 tem->tvs_params[0] - 1, in tem_safe_chkparam()
632 tem->tvs_params[1] - 1, in tem_safe_chkparam()
641 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
642 tem_safe_setparam(tem, 1, 0); in tem_safe_chkparam()
643 switch (tem->tvs_params[0]) { in tem_safe_chkparam()
647 tem_safe_clear_chars(tem, in tem_safe_chkparam()
649 tem->tvs_c_cursor.col, in tem_safe_chkparam()
650 tem->tvs_c_cursor.row, in tem_safe_chkparam()
651 tem->tvs_c_cursor.col, credp, called_from); in tem_safe_chkparam()
654 for (row = tem->tvs_c_cursor.row + 1; in tem_safe_chkparam()
657 tem_safe_clear_chars(tem, in tem_safe_chkparam()
667 row < tem->tvs_c_cursor.row; in tem_safe_chkparam()
669 tem_safe_clear_chars(tem, in tem_safe_chkparam()
674 tem_safe_clear_chars(tem, in tem_safe_chkparam()
675 tem->tvs_c_cursor.col + 1, in tem_safe_chkparam()
676 tem->tvs_c_cursor.row, in tem_safe_chkparam()
685 tem_safe_clear_chars(tem, in tem_safe_chkparam()
694 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
695 tem_safe_setparam(tem, 1, 0); in tem_safe_chkparam()
696 switch (tem->tvs_params[0]) { in tem_safe_chkparam()
699 tem_safe_clear_chars(tem, in tem_safe_chkparam()
701 tem->tvs_c_cursor.col), in tem_safe_chkparam()
702 tem->tvs_c_cursor.row, in tem_safe_chkparam()
703 tem->tvs_c_cursor.col, in tem_safe_chkparam()
709 tem_safe_clear_chars(tem, in tem_safe_chkparam()
710 tem->tvs_c_cursor.col + 1, in tem_safe_chkparam()
711 tem->tvs_c_cursor.row, in tem_safe_chkparam()
717 tem_safe_clear_chars(tem, in tem_safe_chkparam()
719 tem->tvs_c_cursor.row, in tem_safe_chkparam()
726 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
727 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
728 tem_safe_scroll(tem, in tem_safe_chkparam()
729 tem->tvs_c_cursor.row, in tem_safe_chkparam()
731 tem->tvs_params[0], TEM_SCROLL_DOWN, in tem_safe_chkparam()
736 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
737 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
738 tem_safe_scroll(tem, in tem_safe_chkparam()
739 tem->tvs_c_cursor.row, in tem_safe_chkparam()
741 tem->tvs_params[0], TEM_SCROLL_UP, in tem_safe_chkparam()
746 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
747 tem_safe_shift(tem, tem->tvs_params[0], TEM_SHIFT_LEFT, in tem_safe_chkparam()
752 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
753 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
754 tem_safe_scroll(tem, 0, in tem_safe_chkparam()
756 tem->tvs_params[0], TEM_SCROLL_UP, in tem_safe_chkparam()
761 tem_safe_send_data(tem, credp, called_from); in tem_safe_chkparam()
762 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
763 tem_safe_scroll(tem, 0, in tem_safe_chkparam()
765 tem->tvs_params[0], TEM_SCROLL_DOWN, in tem_safe_chkparam()
770 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
771 tem_safe_clear_chars(tem, in tem_safe_chkparam()
772 tem->tvs_params[0], in tem_safe_chkparam()
773 tem->tvs_c_cursor.row, in tem_safe_chkparam()
774 tem->tvs_c_cursor.col, in tem_safe_chkparam()
779 tem_safe_setparam(tem, 1, 1); in tem_safe_chkparam()
788 if (tem->tvs_params[0] > tems.ts_c_dimension.width) in tem_safe_chkparam()
789 tem->tvs_params[0] = tems.ts_c_dimension.width; in tem_safe_chkparam()
791 for (i = 0; i < tem->tvs_params[0]; i++) in tem_safe_chkparam()
792 tem_safe_back_tab(tem, credp, called_from); in tem_safe_chkparam()
795 tem->tvs_state = A_STATE_START; in tem_safe_chkparam()
803 tem_safe_getparams(struct tem_vt_state *tem, uchar_t ch, in tem_safe_getparams() argument
807 MUTEX_HELD(&tem->tvs_lock)); in tem_safe_getparams()
810 tem->tvs_paramval = ((tem->tvs_paramval * 10) + (ch - '0')); in tem_safe_getparams()
811 tem->tvs_gotparam = B_TRUE; /* Remember got parameter */ in tem_safe_getparams()
813 } else if (tem->tvs_state == A_STATE_CSI_EQUAL || in tem_safe_getparams()
814 tem->tvs_state == A_STATE_CSI_QMARK) { in tem_safe_getparams()
815 tem->tvs_state = A_STATE_START; in tem_safe_getparams()
817 if (tem->tvs_curparam < TEM_MAXPARAMS) { in tem_safe_getparams()
818 if (tem->tvs_gotparam) { in tem_safe_getparams()
820 tem->tvs_params[tem->tvs_curparam] = in tem_safe_getparams()
821 tem->tvs_paramval; in tem_safe_getparams()
823 tem->tvs_curparam++; in tem_safe_getparams()
828 tem->tvs_gotparam = B_FALSE; in tem_safe_getparams()
829 tem->tvs_paramval = 0; /* No parame value yet */ in tem_safe_getparams()
832 tem_safe_chkparam(tem, ch, credp, called_from); in tem_safe_getparams()
843 tem_safe_outch(struct tem_vt_state *tem, uchar_t ch, in tem_safe_outch() argument
847 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_outch()
852 tem->tvs_outbuf[tem->tvs_outindex++] = ch; in tem_safe_outch()
853 tem->tvs_c_cursor.col++; in tem_safe_outch()
854 if (tem->tvs_c_cursor.col >= tems.ts_c_dimension.width) { in tem_safe_outch()
855 tem_safe_send_data(tem, credp, called_from); in tem_safe_outch()
856 tem_safe_new_line(tem, credp, called_from); in tem_safe_outch()
861 tem_safe_new_line(struct tem_vt_state *tem, in tem_safe_new_line() argument
864 tem_safe_cr(tem); in tem_safe_new_line()
865 tem_safe_lf(tem, credp, called_from); in tem_safe_new_line()
869 tem_safe_cr(struct tem_vt_state *tem) in tem_safe_cr() argument
871 tem->tvs_c_cursor.col = 0; in tem_safe_cr()
872 tem_safe_align_cursor(tem); in tem_safe_cr()
876 tem_safe_lf(struct tem_vt_state *tem, in tem_safe_lf() argument
882 MUTEX_HELD(&tem->tvs_lock)); in tem_safe_lf()
890 row = tem->tvs_c_cursor.row + 1; in tem_safe_lf()
893 if (tem->tvs_nscroll != 0) { in tem_safe_lf()
894 tem_safe_scroll(tem, 0, in tem_safe_lf()
896 tem->tvs_nscroll, TEM_SCROLL_UP, in tem_safe_lf()
899 tem->tvs_nscroll; in tem_safe_lf()
910 tem_safe_mv_cursor(tem, row, tem->tvs_c_cursor.col, in tem_safe_lf()
913 if (tem->tvs_nscroll == 0) { in tem_safe_lf()
915 tem_safe_clear_chars(tem, in tem_safe_lf()
917 tem->tvs_c_cursor.col, in tem_safe_lf()
918 tem->tvs_c_cursor.row, in tem_safe_lf()
919 tem->tvs_c_cursor.col, in tem_safe_lf()
924 tem_safe_align_cursor(tem); in tem_safe_lf()
928 tem_safe_send_data(struct tem_vt_state *tem, cred_t *credp, in tem_safe_send_data() argument
935 MUTEX_HELD(&tem->tvs_lock)); in tem_safe_send_data()
937 if (tem->tvs_outindex == 0) { in tem_safe_send_data()
938 tem_safe_align_cursor(tem); in tem_safe_send_data()
942 tem_safe_get_color(tem, &fg_color, &bg_color, TEM_ATTR_REVERSE); in tem_safe_send_data()
943 tem_safe_virtual_display(tem, in tem_safe_send_data()
944 tem->tvs_outbuf, tem->tvs_outindex, in tem_safe_send_data()
945 tem->tvs_s_cursor.row, tem->tvs_s_cursor.col, in tem_safe_send_data()
948 if (tem->tvs_isactive) { in tem_safe_send_data()
952 tem_safe_callback_display(tem, in tem_safe_send_data()
953 tem->tvs_outbuf, tem->tvs_outindex, in tem_safe_send_data()
954 tem->tvs_s_cursor.row, tem->tvs_s_cursor.col, in tem_safe_send_data()
959 tem->tvs_outindex = 0; in tem_safe_send_data()
961 tem_safe_align_cursor(tem); in tem_safe_send_data()
971 tem_safe_align_cursor(struct tem_vt_state *tem) in tem_safe_align_cursor() argument
973 tem->tvs_s_cursor.row = tem->tvs_c_cursor.row; in tem_safe_align_cursor()
974 tem->tvs_s_cursor.col = tem->tvs_c_cursor.col; in tem_safe_align_cursor()
983 tem_safe_parse(struct tem_vt_state *tem, uchar_t ch, in tem_safe_parse() argument
989 MUTEX_HELD(&tem->tvs_lock)); in tem_safe_parse()
991 if (tem->tvs_state == A_STATE_START) { /* Normal state? */ in tem_safe_parse()
994 tem_safe_control(tem, ch, credp, called_from); in tem_safe_parse()
997 tem_safe_outch(tem, ch, credp, called_from); in tem_safe_parse()
1003 if (tem->tvs_state != A_STATE_ESC) { /* Need to get parameters? */ in tem_safe_parse()
1004 if (tem->tvs_state != A_STATE_CSI) { in tem_safe_parse()
1005 tem_safe_getparams(tem, ch, credp, called_from); in tem_safe_parse()
1011 tem->tvs_state = A_STATE_CSI_QMARK; in tem_safe_parse()
1014 tem->tvs_state = A_STATE_CSI_EQUAL; in tem_safe_parse()
1038 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1041 tem_safe_mv_cursor(tem, tem->tvs_r_cursor.row, in tem_safe_parse()
1042 tem->tvs_r_cursor.col, credp, called_from); in tem_safe_parse()
1043 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1046 tem_safe_send_data(tem, credp, called_from); in tem_safe_parse()
1051 if (tem->tvs_flags & TEM_ATTR_SCREEN_REVERSE) { in tem_safe_parse()
1052 tem->tvs_flags &= ~TEM_ATTR_SCREEN_REVERSE; in tem_safe_parse()
1058 if (tem->tvs_flags & TEM_ATTR_REVERSE) in tem_safe_parse()
1059 tem->tvs_flags &= ~TEM_ATTR_REVERSE; in tem_safe_parse()
1061 tem->tvs_flags |= TEM_ATTR_REVERSE; in tem_safe_parse()
1063 tem_safe_cls(tem, credp, called_from); in tem_safe_parse()
1064 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1067 tem_safe_send_data(tem, credp, called_from); in tem_safe_parse()
1072 if (!(tem->tvs_flags & TEM_ATTR_SCREEN_REVERSE)) { in tem_safe_parse()
1073 tem->tvs_flags |= TEM_ATTR_SCREEN_REVERSE; in tem_safe_parse()
1079 if (!(tem->tvs_flags & TEM_ATTR_REVERSE)) in tem_safe_parse()
1080 tem->tvs_flags |= TEM_ATTR_REVERSE; in tem_safe_parse()
1082 tem->tvs_flags &= ~TEM_ATTR_REVERSE; in tem_safe_parse()
1085 tem_safe_cls(tem, credp, called_from); in tem_safe_parse()
1086 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1092 tem->tvs_nscroll = tem->tvs_paramval; in tem_safe_parse()
1093 if (tem->tvs_nscroll > tems.ts_c_dimension.height) in tem_safe_parse()
1094 tem->tvs_nscroll = tems.ts_c_dimension.height; in tem_safe_parse()
1095 if (tem->tvs_nscroll < 0) in tem_safe_parse()
1096 tem->tvs_nscroll = 1; in tem_safe_parse()
1097 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1100 tem_safe_getparams(tem, ch, credp, called_from); in tem_safe_parse()
1107 tem->tvs_curparam = 0; in tem_safe_parse()
1108 tem->tvs_paramval = 0; in tem_safe_parse()
1109 tem->tvs_gotparam = B_FALSE; in tem_safe_parse()
1112 tem->tvs_params[i] = -1; in tem_safe_parse()
1113 tem->tvs_state = A_STATE_CSI; in tem_safe_parse()
1115 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1117 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1119 tem->tvs_state = A_STATE_START; in tem_safe_parse()
1122 tem_safe_reset_display(tem, credp, called_from, in tem_safe_parse()
1126 tem_safe_set_tab(tem); in tem_safe_parse()
1129 tem->tvs_r_cursor.row = tem->tvs_c_cursor.row; in tem_safe_parse()
1130 tem->tvs_r_cursor.col = tem->tvs_c_cursor.col; in tem_safe_parse()
1133 tem_safe_mv_cursor(tem, tem->tvs_r_cursor.row, in tem_safe_parse()
1134 tem->tvs_r_cursor.col, credp, called_from); in tem_safe_parse()
1137 tem_safe_control(tem, ch, credp, called_from); in tem_safe_parse()
1139 tem_safe_outch(tem, ch, credp, called_from); in tem_safe_parse()
1146 tem_safe_bell(struct tem_vt_state *tem, enum called_from called_from) in tem_safe_bell() argument
1156 tem_safe_scroll(struct tem_vt_state *tem, int start, int end, int count, in tem_safe_scroll() argument
1163 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_scroll()
1175 tem_safe_copy_area(tem, 0, start + count, in tem_safe_scroll()
1180 tem_safe_clear_chars(tem, tems.ts_c_dimension.width, in tem_safe_scroll()
1187 tem_safe_copy_area(tem, 0, start, in tem_safe_scroll()
1193 tem_safe_clear_chars(tem, tems.ts_c_dimension.width, in tem_safe_scroll()
1201 tem_safe_copy_area(struct tem_vt_state *tem, in tem_safe_copy_area() argument
1210 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_copy_area()
1233 tem_safe_virtual_copy(tem, in tem_safe_copy_area()
1238 if (!tem->tvs_isactive) in tem_safe_copy_area()
1241 tem_safe_callback_copy(tem, s_col, s_row, in tem_safe_copy_area()
1246 tem_safe_clear_chars(struct tem_vt_state *tem, int count, screen_pos_t row, in tem_safe_clear_chars() argument
1249 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_clear_chars()
1265 tem_safe_virtual_cls(tem, count, row, col); in tem_safe_clear_chars()
1267 if (!tem->tvs_isactive) in tem_safe_clear_chars()
1270 tem_safe_callback_cls(tem, count, row, col, credp, called_from); in tem_safe_clear_chars()
1275 tem_safe_text_display(struct tem_vt_state *tem, uchar_t *string, in tem_safe_text_display() argument
1282 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_text_display()
1308 tem_safe_image_display(struct tem_vt_state *tem, uchar_t *image, in tem_safe_image_display() argument
1315 mutex_enter(&tem->tvs_lock); in tem_safe_image_display()
1325 mutex_exit(&tem->tvs_lock); in tem_safe_image_display()
1332 tem_safe_text_copy(struct tem_vt_state *tem, in tem_safe_text_copy() argument
1340 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_text_copy()
1354 tem_safe_text_cls(struct tem_vt_state *tem, in tem_safe_text_cls() argument
1360 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_text_cls()
1368 tem_safe_get_color(tem, &da.fg_color, &da.bg_color, in tem_safe_text_cls()
1376 tem_safe_pix_display(struct tem_vt_state *tem, in tem_safe_pix_display() argument
1385 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_display()
1388 da.data = (uchar_t *)tem->tvs_pix_data; in tem_safe_pix_display()
1395 tem_safe_callback_bit2pix(tem, string[i], fg_color, bg_color); in tem_safe_pix_display()
1402 tem_safe_pix_copy(struct tem_vt_state *tem, in tem_safe_pix_copy() argument
1412 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_copy()
1415 if (need_clear && tem->tvs_first_line > 0) { in tem_safe_pix_copy()
1424 tem_safe_pix_clear_prom_output(tem, credp, called_from); in tem_safe_pix_copy()
1436 if (tem->tvs_first_line > 0 && t_row < s_row && t_col == 0 && in tem_safe_pix_copy()
1455 if (tem->tvs_first_line > 0 && t_row < s_row) { in tem_safe_pix_copy()
1457 tem->tvs_first_line -= (s_row - t_row); in tem_safe_pix_copy()
1458 if (tem->tvs_first_line <= 0) { in tem_safe_pix_copy()
1460 tem->tvs_first_line = 0; in tem_safe_pix_copy()
1467 tem_safe_pix_bit2pix(struct tem_vt_state *tem, unsigned char c, in tem_safe_pix_bit2pix() argument
1485 fp(tem, c, fg, bg); in tem_safe_pix_bit2pix()
1493 tem_safe_pix_cls(struct tem_vt_state *tem, int count, in tem_safe_pix_cls() argument
1497 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_cls()
1500 tem_safe_pix_cls_range(tem, row, 1, tems.ts_p_offset.y, in tem_safe_pix_cls()
1528 tem_safe_pix_clear_prom_output(struct tem_vt_state *tem, cred_t *credp, in tem_safe_pix_clear_prom_output() argument
1533 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_clear_prom_output()
1542 tem_safe_pix_cls_range(tem, 0, nrows, 0, 0, ncols, 0, in tem_safe_pix_clear_prom_output()
1551 tem_safe_pix_clear_entire_screen(struct tem_vt_state *tem, cred_t *credp, in tem_safe_pix_clear_entire_screen() argument
1556 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_clear_entire_screen()
1565 tem_safe_pix_cls_range(tem, 0, nrows, 0, 0, ncols, 0, in tem_safe_pix_clear_entire_screen()
1572 if (tem->tvs_first_line > 0) in tem_safe_pix_clear_entire_screen()
1573 tem->tvs_first_line = 0; in tem_safe_pix_clear_entire_screen()
1581 tem_safe_cls(struct tem_vt_state *tem, in tem_safe_cls() argument
1586 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_cls()
1591 tem_safe_clear_chars(tem, tems.ts_c_dimension.width, in tem_safe_cls()
1594 tem->tvs_c_cursor.row = 0; in tem_safe_cls()
1595 tem->tvs_c_cursor.col = 0; in tem_safe_cls()
1596 tem_safe_align_cursor(tem); in tem_safe_cls()
1603 tem_safe_virtual_cls(tem, tems.ts_c_dimension.width, row, 0); in tem_safe_cls()
1605 tem->tvs_c_cursor.row = 0; in tem_safe_cls()
1606 tem->tvs_c_cursor.col = 0; in tem_safe_cls()
1607 tem_safe_align_cursor(tem); in tem_safe_cls()
1609 if (!tem->tvs_isactive) in tem_safe_cls()
1612 tem_safe_pix_clear_entire_screen(tem, credp, called_from); in tem_safe_cls()
1616 tem_safe_back_tab(struct tem_vt_state *tem, in tem_safe_back_tab() argument
1622 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_back_tab()
1627 for (i = tem->tvs_ntabs - 1; i >= 0; i--) { in tem_safe_back_tab()
1628 if (tem->tvs_tabs[i] < tem->tvs_c_cursor.col) { in tem_safe_back_tab()
1629 tabstop = tem->tvs_tabs[i]; in tem_safe_back_tab()
1634 tem_safe_mv_cursor(tem, tem->tvs_c_cursor.row, in tem_safe_back_tab()
1639 tem_safe_tab(struct tem_vt_state *tem, in tem_safe_tab() argument
1645 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_tab()
1650 for (i = 0; i < tem->tvs_ntabs; i++) { in tem_safe_tab()
1651 if (tem->tvs_tabs[i] > tem->tvs_c_cursor.col) { in tem_safe_tab()
1652 tabstop = tem->tvs_tabs[i]; in tem_safe_tab()
1657 tem_safe_mv_cursor(tem, tem->tvs_c_cursor.row, in tem_safe_tab()
1662 tem_safe_set_tab(struct tem_vt_state *tem) in tem_safe_set_tab() argument
1667 if (tem->tvs_ntabs == TEM_MAXTAB) in tem_safe_set_tab()
1669 if (tem->tvs_ntabs == 0 || in tem_safe_set_tab()
1670 tem->tvs_tabs[tem->tvs_ntabs] < tem->tvs_c_cursor.col) { in tem_safe_set_tab()
1671 tem->tvs_tabs[tem->tvs_ntabs++] = tem->tvs_c_cursor.col; in tem_safe_set_tab()
1674 for (i = 0; i < tem->tvs_ntabs; i++) { in tem_safe_set_tab()
1675 if (tem->tvs_tabs[i] == tem->tvs_c_cursor.col) in tem_safe_set_tab()
1677 if (tem->tvs_tabs[i] > tem->tvs_c_cursor.col) { in tem_safe_set_tab()
1678 for (j = tem->tvs_ntabs - 1; j >= i; j--) in tem_safe_set_tab()
1679 tem->tvs_tabs[j+ 1] = tem->tvs_tabs[j]; in tem_safe_set_tab()
1680 tem->tvs_tabs[i] = tem->tvs_c_cursor.col; in tem_safe_set_tab()
1681 tem->tvs_ntabs++; in tem_safe_set_tab()
1688 tem_safe_clear_tabs(struct tem_vt_state *tem, int action) in tem_safe_clear_tabs() argument
1695 tem->tvs_ntabs = 0; in tem_safe_clear_tabs()
1699 for (i = 0; i < tem->tvs_ntabs; i++) { in tem_safe_clear_tabs()
1700 if (tem->tvs_tabs[i] == tem->tvs_c_cursor.col) { in tem_safe_clear_tabs()
1701 tem->tvs_ntabs--; in tem_safe_clear_tabs()
1702 for (j = i; j < tem->tvs_ntabs; j++) in tem_safe_clear_tabs()
1703 tem->tvs_tabs[j] = tem->tvs_tabs[j + 1]; in tem_safe_clear_tabs()
1712 tem_safe_mv_cursor(struct tem_vt_state *tem, int row, int col, in tem_safe_mv_cursor() argument
1715 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_mv_cursor()
1732 tem_safe_send_data(tem, credp, called_from); in tem_safe_mv_cursor()
1733 tem->tvs_c_cursor.row = (screen_pos_t)row; in tem_safe_mv_cursor()
1734 tem->tvs_c_cursor.col = (screen_pos_t)col; in tem_safe_mv_cursor()
1735 tem_safe_align_cursor(tem); in tem_safe_mv_cursor()
1740 tem_safe_reset_emulator(struct tem_vt_state *tem, in tem_safe_reset_emulator() argument
1746 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_reset_emulator()
1749 tem->tvs_c_cursor.row = 0; in tem_safe_reset_emulator()
1750 tem->tvs_c_cursor.col = 0; in tem_safe_reset_emulator()
1751 tem->tvs_r_cursor.row = 0; in tem_safe_reset_emulator()
1752 tem->tvs_r_cursor.col = 0; in tem_safe_reset_emulator()
1753 tem->tvs_s_cursor.row = 0; in tem_safe_reset_emulator()
1754 tem->tvs_s_cursor.col = 0; in tem_safe_reset_emulator()
1755 tem->tvs_outindex = 0; in tem_safe_reset_emulator()
1756 tem->tvs_state = A_STATE_START; in tem_safe_reset_emulator()
1757 tem->tvs_gotparam = B_FALSE; in tem_safe_reset_emulator()
1758 tem->tvs_curparam = 0; in tem_safe_reset_emulator()
1759 tem->tvs_paramval = 0; in tem_safe_reset_emulator()
1760 tem->tvs_nscroll = 1; in tem_safe_reset_emulator()
1764 tem->tvs_fg_color = tems.ts_init_color.fg_color; in tem_safe_reset_emulator()
1765 tem->tvs_bg_color = tems.ts_init_color.bg_color; in tem_safe_reset_emulator()
1766 tem->tvs_flags = tems.ts_init_color.a_flags; in tem_safe_reset_emulator()
1772 tem->tvs_ntabs = 0; in tem_safe_reset_emulator()
1774 tem->tvs_tabs[tem->tvs_ntabs++] = (screen_pos_t)j; in tem_safe_reset_emulator()
1777 tem->tvs_params[j] = 0; in tem_safe_reset_emulator()
1781 tem_safe_reset_display(struct tem_vt_state *tem, in tem_safe_reset_display() argument
1785 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_reset_display()
1788 tem_safe_reset_emulator(tem, credp, called_from, init_color); in tem_safe_reset_display()
1791 if (tem->tvs_isactive) in tem_safe_reset_display()
1792 tem_safe_callback_cursor(tem, in tem_safe_reset_display()
1795 tem_safe_cls(tem, credp, called_from); in tem_safe_reset_display()
1797 if (tem->tvs_isactive) in tem_safe_reset_display()
1798 tem_safe_callback_cursor(tem, in tem_safe_reset_display()
1805 struct tem_vt_state *tem, in tem_safe_shift() argument
1813 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_shift()
1816 rest_of_line = tems.ts_c_dimension.width - tem->tvs_c_cursor.col; in tem_safe_shift()
1826 tem_safe_copy_area(tem, in tem_safe_shift()
1827 tem->tvs_c_cursor.col + count, in tem_safe_shift()
1828 tem->tvs_c_cursor.row, in tem_safe_shift()
1830 tem->tvs_c_cursor.row, in tem_safe_shift()
1831 tem->tvs_c_cursor.col, in tem_safe_shift()
1832 tem->tvs_c_cursor.row, in tem_safe_shift()
1836 tem_safe_clear_chars(tem, count, tem->tvs_c_cursor.row, in tem_safe_shift()
1842 tem_safe_copy_area(tem, in tem_safe_shift()
1843 tem->tvs_c_cursor.col, in tem_safe_shift()
1844 tem->tvs_c_cursor.row, in tem_safe_shift()
1846 tem->tvs_c_cursor.row, in tem_safe_shift()
1847 tem->tvs_c_cursor.col + count, in tem_safe_shift()
1848 tem->tvs_c_cursor.row, in tem_safe_shift()
1852 tem_safe_clear_chars(tem, count, tem->tvs_c_cursor.row, in tem_safe_shift()
1853 tem->tvs_c_cursor.col, credp, called_from); in tem_safe_shift()
1859 tem_safe_text_cursor(struct tem_vt_state *tem, short action, in tem_safe_text_cursor() argument
1864 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_text_cursor()
1867 ca.row = tem->tvs_c_cursor.row; in tem_safe_text_cursor()
1868 ca.col = tem->tvs_c_cursor.col; in tem_safe_text_cursor()
1874 tem->tvs_c_cursor.row = ca.row; in tem_safe_text_cursor()
1875 tem->tvs_c_cursor.col = ca.col; in tem_safe_text_cursor()
1880 tem_safe_pix_cursor(struct tem_vt_state *tem, short action, in tem_safe_pix_cursor() argument
1885 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_cursor()
1888 ca.row = tem->tvs_c_cursor.row * tems.ts_font.height + in tem_safe_pix_cursor()
1890 ca.col = tem->tvs_c_cursor.col * tems.ts_font.width + in tem_safe_pix_cursor()
1895 if (tem->tvs_flags & TEM_ATTR_REVERSE) { in tem_safe_pix_cursor()
1903 if (tem->tvs_flags & TEM_ATTR_REVERSE) { in tem_safe_pix_cursor()
1984 struct tem_vt_state *tem, in bit_to_pix4() argument
1998 dest = (uint8_t *)tem->tvs_pix_data; in bit_to_pix4()
2039 struct tem_vt_state *tem, in bit_to_pix8() argument
2054 dest = (uint8_t *)tem->tvs_pix_data; in bit_to_pix8()
2099 struct tem_vt_state *tem, in bit_to_pix24() argument
2119 destp = (pixel32_t *)tem->tvs_pix_data; in bit_to_pix24()
2139 ansi_bg_to_solaris(struct tem_vt_state *tem, int ansi) in ansi_bg_to_solaris() argument
2145 ansi_fg_to_solaris(struct tem_vt_state *tem, int ansi) in ansi_fg_to_solaris() argument
2147 if (tem->tvs_flags & TEM_ATTR_BOLD) in ansi_fg_to_solaris()
2157 tem_safe_get_color(struct tem_vt_state *tem, text_color_t *fg, in tem_safe_get_color() argument
2160 if (tem->tvs_flags & flag) { in tem_safe_get_color()
2161 *fg = ansi_fg_to_solaris(tem, in tem_safe_get_color()
2162 tem->tvs_bg_color); in tem_safe_get_color()
2163 *bg = ansi_bg_to_solaris(tem, in tem_safe_get_color()
2164 tem->tvs_fg_color); in tem_safe_get_color()
2166 *fg = ansi_fg_to_solaris(tem, in tem_safe_get_color()
2167 tem->tvs_fg_color); in tem_safe_get_color()
2168 *bg = ansi_bg_to_solaris(tem, in tem_safe_get_color()
2169 tem->tvs_bg_color); in tem_safe_get_color()
2187 tem_safe_pix_cls_range(struct tem_vt_state *tem, in tem_safe_pix_cls_range() argument
2199 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_pix_cls_range()
2208 tem_safe_get_color(tem, &fg_color, &bg_color, TEM_ATTR_SCREEN_REVERSE); in tem_safe_pix_cls_range()
2210 tem_safe_callback_bit2pix(tem, ' ', fg_color, bg_color); in tem_safe_pix_cls_range()
2211 da.data = (uchar_t *)tem->tvs_pix_data; in tem_safe_pix_cls_range()
2227 tem_safe_virtual_display(struct tem_vt_state *tem, unsigned char *string, in tem_safe_virtual_display() argument
2242 addr = tem->tvs_screen_buf + (row * width + col); in tem_safe_virtual_display()
2243 pfgcolor = tem->tvs_fg_buf + (row * width + col); in tem_safe_virtual_display()
2244 pbgcolor = tem->tvs_bg_buf + (row * width + col); in tem_safe_virtual_display()
2302 tem_safe_virtual_copy(struct tem_vt_state *tem, in tem_safe_virtual_copy() argument
2330 i_virtual_copy(tem->tvs_screen_buf, s_col, s_row, in tem_safe_virtual_copy()
2334 i_virtual_copy((unsigned char *)tem->tvs_fg_buf, in tem_safe_virtual_copy()
2336 i_virtual_copy((unsigned char *)tem->tvs_bg_buf, in tem_safe_virtual_copy()
2342 tem_safe_virtual_cls(struct tem_vt_state *tem, in tem_safe_virtual_cls() argument
2348 tem_safe_get_color(tem, &fg_color, &bg_color, TEM_ATTR_SCREEN_REVERSE); in tem_safe_virtual_cls()
2349 tem_safe_virtual_display(tem, tems.ts_blank_line, count, row, col, in tem_safe_virtual_cls()
2357 tem_safe_blank_screen(struct tem_vt_state *tem, cred_t *credp, in tem_safe_blank_screen() argument
2362 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_blank_screen()
2366 tem_safe_pix_clear_entire_screen(tem, credp, called_from); in tem_safe_blank_screen()
2371 tem_safe_callback_cls(tem, in tem_safe_blank_screen()
2381 tem_safe_unblank_screen(struct tem_vt_state *tem, cred_t *credp, in tem_safe_unblank_screen() argument
2391 ASSERT((MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&tem->tvs_lock)) || in tem_safe_unblank_screen()
2395 tem_safe_pix_clear_entire_screen(tem, credp, called_from); in tem_safe_unblank_screen()
2397 tem_safe_callback_cursor(tem, VIS_HIDE_CURSOR, credp, called_from); in tem_safe_unblank_screen()
2408 buf = tem->tvs_screen_buf + (row * width); in tem_safe_unblank_screen()
2412 tem->tvs_fg_buf[(row * width + col) * tc_size]; in tem_safe_unblank_screen()
2414 tem->tvs_bg_buf[(row * width + col) * tc_size]; in tem_safe_unblank_screen()
2424 tem_safe_callback_display(tem, in tem_safe_unblank_screen()
2443 tem_safe_callback_display(tem, in tem_safe_unblank_screen()
2448 tem_safe_callback_cursor(tem, VIS_DISPLAY_CURSOR, credp, called_from); in tem_safe_unblank_screen()