Lines Matching refs:rc

68 rcons_init_ops(struct rconsole *rc)  in rcons_init_ops()  argument
73 m = sizeof(rc->rc_charmap) / sizeof(rc->rc_charmap[0]); in rcons_init_ops()
76 rc->rc_ops->mapchar(rc->rc_cookie, i, rc->rc_charmap + i); in rcons_init_ops()
80 rc->rc_deffgcolor = RASTERCONSOLE_FGCOL; in rcons_init_ops()
83 rc->rc_defbgcolor = RASTERCONSOLE_BGCOL; in rcons_init_ops()
85 rc->rc_fgcolor = rc->rc_deffgcolor; in rcons_init_ops()
86 rc->rc_bgcolor = rc->rc_defbgcolor; in rcons_init_ops()
87 rc->rc_supwsflg = 0; in rcons_init_ops()
90 if (rc->rc_ops->allocattr(rc->rc_cookie, 0, 0, i, &tmp) == 0) in rcons_init_ops()
91 rc->rc_supwsflg |= i; in rcons_init_ops()
94 rc->rc_wsflg = WSATTR_HILIT; in rcons_init_ops()
95 rcons_setcolor(rc, rc->rc_deffgcolor, rc->rc_defbgcolor); in rcons_init_ops()
96 rc->rc_kern_attr = rc->rc_attr; in rcons_init_ops()
98 rc->rc_wsflg = 0; in rcons_init_ops()
99 rcons_setcolor(rc, rc->rc_deffgcolor, rc->rc_defbgcolor); in rcons_init_ops()
100 rc->rc_defattr = rc->rc_attr; in rcons_init_ops()
105 rcons_puts(struct rconsole *rc, const unsigned char *str, int n) in rcons_puts() argument
112 if ((rc->rc_bits & FB_INESC) == 0) { in rcons_puts()
124 if (rc->rc_row + i > rc->rc_maxrow + 1) { in rcons_puts()
126 if (rc->rc_bits & FB_CURSOR) in rcons_puts()
127 rcons_cursor(rc); in rcons_puts()
129 rcons_scroll(rc, i); in rcons_puts()
138 rc->rc_bits |= FB_INESC | FB_P0_DEFAULT | FB_P1_DEFAULT; in rcons_puts()
139 rc->rc_bits &= ~(FB_P0 | FB_P1); in rcons_puts()
142 rc->rc_p0 = rc->rc_p1 = 1; in rcons_puts()
143 } else if (rc->rc_bits & FB_INESC) { in rcons_puts()
144 rcons_esc(rc, c); in rcons_puts()
147 if (rc->rc_bits & FB_CURSOR) in rcons_puts()
148 rcons_cursor(rc); in rcons_puts()
153 j = rc->rc_maxcol - rc->rc_col; in rcons_puts()
158 rcons_text(rc, str, i); in rcons_puts()
163 rcons_pctrl(rc, c); in rcons_puts()
168 if ((rc->rc_bits & FB_CURSOR) == 0) in rcons_puts()
169 rcons_cursor(rc); in rcons_puts()
175 rcons_pctrl(struct rconsole *rc, int c) in rcons_pctrl() argument
180 rc->rc_col = 0; in rcons_pctrl()
184 if (rc->rc_col > 0) in rcons_pctrl()
185 (rc->rc_col)--; in rcons_pctrl()
189 if (rc->rc_row > 0) in rcons_pctrl()
190 (rc->rc_row)--; in rcons_pctrl()
194 rc->rc_row = rc->rc_col = 0; in rcons_pctrl()
195 rcons_clear2eop(rc); in rcons_pctrl()
199 (rc->rc_row)++; in rcons_pctrl()
200 if (rc->rc_row >= rc->rc_maxrow) in rcons_pctrl()
201 rcons_scroll(rc, 1); in rcons_pctrl()
205 rcons_bell(rc); in rcons_pctrl()
209 rc->rc_col = (rc->rc_col + 8) & ~7; in rcons_pctrl()
210 if (rc->rc_col >= rc->rc_maxcol) in rcons_pctrl()
211 rc->rc_col = rc->rc_maxcol; in rcons_pctrl()
218 rcons_esc(struct rconsole *rc, int c) in rcons_esc() argument
223 rc->rc_bits &= ~FB_P1; in rcons_esc()
224 rc->rc_bits |= FB_P0; in rcons_esc()
227 rc->rc_bits &= ~FB_P0; in rcons_esc()
228 rc->rc_bits |= FB_P1; in rcons_esc()
231 if (rc->rc_bits & FB_P0) { in rcons_esc()
233 if (rc->rc_bits & FB_P0_DEFAULT) { in rcons_esc()
234 rc->rc_bits &= ~FB_P0_DEFAULT; in rcons_esc()
235 rc->rc_p0 = 0; in rcons_esc()
237 rc->rc_p0 *= 10; in rcons_esc()
238 rc->rc_p0 += c - '0'; in rcons_esc()
239 } else if (rc->rc_bits & FB_P1) { in rcons_esc()
241 if (rc->rc_bits & FB_P1_DEFAULT) { in rcons_esc()
242 rc->rc_bits &= ~FB_P1_DEFAULT; in rcons_esc()
243 rc->rc_p1 = 0; in rcons_esc()
245 rc->rc_p1 *= 10; in rcons_esc()
246 rc->rc_p1 += c - '0'; in rcons_esc()
250 if (rc->rc_bits & FB_CURSOR) in rcons_esc()
251 rcons_cursor(rc); in rcons_esc()
254 rcons_doesc(rc, c); in rcons_esc()
255 rc->rc_bits &= ~FB_INESC; in rcons_esc()
262 rcons_sgresc(struct rconsole *rc, int c) in rcons_sgresc() argument
268 rc->rc_wsflg = 0; in rcons_sgresc()
269 rc->rc_fgcolor = rc->rc_deffgcolor; in rcons_sgresc()
270 rc->rc_bgcolor = rc->rc_defbgcolor; in rcons_sgresc()
271 rc->rc_attr = rc->rc_defattr; in rcons_sgresc()
277 rcons_setcolor(rc, c - 30, rc->rc_bgcolor); in rcons_sgresc()
283 rcons_setcolor(rc, rc->rc_fgcolor, c - 40); in rcons_sgresc()
288 rc->rc_wsflg |= WSATTR_REVERSE; in rcons_sgresc()
289 rcons_setcolor(rc, rc->rc_fgcolor, rc->rc_bgcolor); in rcons_sgresc()
294 rc->rc_wsflg |= WSATTR_HILIT; in rcons_sgresc()
295 rcons_setcolor(rc, rc->rc_fgcolor, rc->rc_bgcolor); in rcons_sgresc()
300 rc->rc_wsflg |= WSATTR_UNDERLINE; in rcons_sgresc()
301 rcons_setcolor(rc, rc->rc_fgcolor, rc->rc_bgcolor); in rcons_sgresc()
309 rcons_doesc(struct rconsole *rc, int c) in rcons_doesc() argument
314 rc->rc_bits = FB_VISBELL; in rcons_doesc()
321 rcons_insertchar(rc, rc->rc_p0); in rcons_doesc()
326 if (rc->rc_row >= rc->rc_p0) in rcons_doesc()
327 rc->rc_row -= rc->rc_p0; in rcons_doesc()
329 rc->rc_row = 0; in rcons_doesc()
334 rc->rc_row += rc->rc_p0; in rcons_doesc()
335 if (rc->rc_row >= rc->rc_maxrow) in rcons_doesc()
336 rc->rc_row = rc->rc_maxrow - 1; in rcons_doesc()
341 rc->rc_col += rc->rc_p0; in rcons_doesc()
342 if (rc->rc_col >= rc->rc_maxcol) in rcons_doesc()
343 rc->rc_col = rc->rc_maxcol - 1; in rcons_doesc()
348 if (rc->rc_col >= rc->rc_p0) in rcons_doesc()
349 rc->rc_col -= rc->rc_p0; in rcons_doesc()
351 rc->rc_col = 0; in rcons_doesc()
356 rc->rc_col = 0; in rcons_doesc()
357 rc->rc_row += rc->rc_p0; in rcons_doesc()
358 if (rc->rc_row >= rc->rc_maxrow) in rcons_doesc()
359 rc->rc_row = rc->rc_maxrow - 1; in rcons_doesc()
366 rc->rc_col = MIN(MAX(rc->rc_p1, 1), rc->rc_maxcol) - 1; in rcons_doesc()
367 rc->rc_row = MIN(MAX(rc->rc_p0, 1), rc->rc_maxrow) - 1; in rcons_doesc()
372 rcons_clear2eop(rc); in rcons_doesc()
377 rcons_clear2eol(rc); in rcons_doesc()
382 rcons_insertline(rc, rc->rc_p0); in rcons_doesc()
387 rcons_delline(rc, rc->rc_p0); in rcons_doesc()
392 rcons_delchar(rc, rc->rc_p0); in rcons_doesc()
398 if (rc->rc_bits & FB_P0_DEFAULT) in rcons_doesc()
399 rc->rc_p0 = 0; in rcons_doesc()
401 if (rc->rc_bits & FB_P1_DEFAULT) in rcons_doesc()
402 rc->rc_p1 = 0; in rcons_doesc()
404 rcons_sgresc(rc, rc->rc_p0); in rcons_doesc()
406 if (rc->rc_bits & FB_P1) in rcons_doesc()
407 rcons_sgresc(rc, rc->rc_p1); in rcons_doesc()
417 rcons_setcolor(rc, WSCOL_BLACK, WSCOL_WHITE); in rcons_doesc()
422 rcons_setcolor(rc, WSCOL_WHITE, WSCOL_BLACK); in rcons_doesc()
428 if (rc->rc_bits & FB_P0_DEFAULT) in rcons_doesc()
429 rc->rc_p0 = 0; in rcons_doesc()
431 rc->rc_scroll = rc->rc_p0; in rcons_doesc()
436 rc->rc_wsflg = 0; in rcons_doesc()
437 rc->rc_scroll = 0; in rcons_doesc()
438 rc->rc_bits &= ~FB_NO_CURSOR; in rcons_doesc()
439 rc->rc_fgcolor = rc->rc_deffgcolor; in rcons_doesc()
440 rc->rc_bgcolor = rc->rc_defbgcolor; in rcons_doesc()
441 rc->rc_attr = rc->rc_defattr; in rcons_doesc()
443 if (rc->rc_bits & FB_INVERT) in rcons_doesc()
444 rcons_invert(rc, 0); in rcons_doesc()
453 if (rc->rc_p0 == 25) { in rcons_doesc()
454 rc->rc_bits &= ~FB_NO_CURSOR; in rcons_doesc()
456 if (rc->rc_bits & FB_CURSOR) { in rcons_doesc()
457 rc->rc_bits ^= FB_CURSOR; in rcons_doesc()
458 rcons_cursor(rc); in rcons_doesc()
465 if (rc->rc_p0 == 25 && (rc->rc_bits & FB_NO_CURSOR) == 0) { in rcons_doesc()
466 if (rc->rc_bits & FB_CURSOR) in rcons_doesc()
467 rcons_cursor(rc); in rcons_doesc()
469 rc->rc_bits |= FB_NO_CURSOR; in rcons_doesc()
478 rcons_setcolor(struct rconsole *rc, int fg, int bg) in rcons_setcolor() argument
495 if ((rc->rc_wsflg & WSATTR_REVERSE) && in rcons_setcolor()
496 !(rc->rc_supwsflg & WSATTR_REVERSE)) { in rcons_setcolor()
506 flg = (rc->rc_wsflg | WSATTR_WSCOLORS) & rc->rc_supwsflg; in rcons_setcolor()
507 rc->rc_bgcolor = bg; in rcons_setcolor()
508 rc->rc_fgcolor = fg; in rcons_setcolor()
509 rc->rc_ops->allocattr(rc->rc_cookie, fg, bg, flg, &rc->rc_attr); in rcons_setcolor()
515 rcons_text(struct rconsole *rc, const unsigned char *str, int n) in rcons_text() argument
520 uc = rc->rc_charmap[*str++ & 255]; in rcons_text()
521 rc->rc_ops->putchar(rc->rc_cookie, rc->rc_row, rc->rc_col++, in rcons_text()
522 uc, rc->rc_attr); in rcons_text()
525 if (rc->rc_col >= rc->rc_maxcol) { in rcons_text()
526 rc->rc_col = 0; in rcons_text()
527 rc->rc_row++; in rcons_text()
530 if (rc->rc_row >= rc->rc_maxrow) in rcons_text()
531 rcons_scroll(rc, 1); in rcons_text()
536 rcons_cursor(struct rconsole *rc) in rcons_cursor() argument
538 rc->rc_bits ^= FB_CURSOR; in rcons_cursor()
540 if (rc->rc_bits & FB_NO_CURSOR) in rcons_cursor()
543 rc->rc_ops->cursor(rc->rc_cookie, rc->rc_bits & FB_CURSOR, in rcons_cursor()
544 rc->rc_row, rc->rc_col); in rcons_cursor()
549 rcons_invert(struct rconsole *rc, int wob) in rcons_invert() argument
552 rc->rc_bits ^= FB_INVERT; in rcons_invert()
558 rcons_clear2eop(struct rconsole *rc) in rcons_clear2eop() argument
560 if (rc->rc_col || rc->rc_row) { in rcons_clear2eop()
561 rcons_clear2eol(rc); in rcons_clear2eop()
563 if (rc->rc_row < (rc->rc_maxrow - 1)) in rcons_clear2eop()
564 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_row + 1, in rcons_clear2eop()
565 rc->rc_maxrow, rc->rc_attr); in rcons_clear2eop()
567 rc->rc_ops->eraserows(rc->rc_cookie, 0, rc->rc_maxrow, in rcons_clear2eop()
568 rc->rc_attr); in rcons_clear2eop()
573 rcons_clear2eol(struct rconsole *rc) in rcons_clear2eol() argument
575 rc->rc_ops->erasecols(rc->rc_cookie, rc->rc_row, rc->rc_col, in rcons_clear2eol()
576 rc->rc_maxcol - rc->rc_col, rc->rc_attr); in rcons_clear2eol()
582 rcons_scroll(struct rconsole *rc, int n) in rcons_scroll() argument
585 if (n > rc->rc_maxrow) in rcons_scroll()
586 n = rc->rc_maxrow; in rcons_scroll()
589 if (rc->rc_row >= n) in rcons_scroll()
590 rc->rc_row -= n; in rcons_scroll()
592 rc->rc_row = 0; in rcons_scroll()
594 rc->rc_ops->copyrows(rc->rc_cookie, n, 0, rc->rc_maxrow - n); in rcons_scroll()
595 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_maxrow - n, n, rc->rc_attr); in rcons_scroll()
600 rcons_delchar(struct rconsole *rc, int n) in rcons_delchar() argument
603 if (n > rc->rc_maxcol - rc->rc_col) in rcons_delchar()
604 n = rc->rc_maxcol - rc->rc_col; in rcons_delchar()
606 rc->rc_ops->copycols(rc->rc_cookie, rc->rc_row, rc->rc_col + n, in rcons_delchar()
607 rc->rc_col, rc->rc_maxcol - rc->rc_col - n); in rcons_delchar()
609 rc->rc_ops->erasecols(rc->rc_cookie, rc->rc_row, in rcons_delchar()
610 rc->rc_maxcol - n, n, rc->rc_attr); in rcons_delchar()
615 rcons_delline(struct rconsole *rc, int n) in rcons_delline() argument
618 if (n > rc->rc_maxrow - rc->rc_row) in rcons_delline()
619 n = rc->rc_maxrow - rc->rc_row; in rcons_delline()
621 rc->rc_ops->copyrows(rc->rc_cookie, rc->rc_row + n, rc->rc_row, in rcons_delline()
622 rc->rc_maxrow - rc->rc_row - n); in rcons_delline()
624 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_maxrow - n, n, in rcons_delline()
625 rc->rc_attr); in rcons_delline()
630 rcons_insertchar(struct rconsole *rc, int n) in rcons_insertchar() argument
633 if (n > rc->rc_maxcol - rc->rc_col) in rcons_insertchar()
634 n = rc->rc_maxcol - rc->rc_col - 1; in rcons_insertchar()
636 rc->rc_ops->copycols(rc->rc_cookie, rc->rc_row, rc->rc_col, in rcons_insertchar()
637 rc->rc_col + n, rc->rc_maxcol - rc->rc_col - n - 1); in rcons_insertchar()
639 rc->rc_ops->erasecols(rc->rc_cookie, rc->rc_row, rc->rc_col, in rcons_insertchar()
640 n, rc->rc_attr); in rcons_insertchar()
645 rcons_insertline(struct rconsole *rc, int n) in rcons_insertline() argument
648 if (n > rc->rc_maxrow - rc->rc_row) in rcons_insertline()
649 n = rc->rc_maxrow - rc->rc_row; in rcons_insertline()
651 rc->rc_ops->copyrows(rc->rc_cookie, rc->rc_row, rc->rc_row + n, in rcons_insertline()
652 rc->rc_maxrow - rc->rc_row - n); in rcons_insertline()
654 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_row, n, in rcons_insertline()
655 rc->rc_attr); in rcons_insertline()