Lines Matching refs:c
76 #define sisusbcon_memmovew(d, s, c) memmove(d, s, c) argument
77 #define sisusbcon_memcpyw(d, s, c) memcpy(d, s, c) argument
86 sisusbcon_memsetw(u16 *s, u16 c, unsigned int count) in sisusbcon_memsetw() argument
90 sisusbcon_writew(c, s++); in sisusbcon_memsetw()
107 sisusbcon_set_start_address(struct sisusb_usb_data *sisusb, struct vc_data *c) in sisusbcon_set_start_address() argument
109 sisusb->cur_start_addr = (c->vc_visible_origin - sisusb->scrbuf) / 2; in sisusbcon_set_start_address()
187 sisusb_is_inactive(struct vc_data *c, struct sisusb_usb_data *sisusb) in sisusb_is_inactive() argument
191 c->vc_mode != KD_TEXT) in sisusb_is_inactive()
206 sisusbcon_init(struct vc_data *c, int init) in sisusbcon_init() argument
217 if (!(sisusb = sisusb_get_sisusb(c->vc_num))) in sisusbcon_init()
227 c->vc_can_do_color = 1; in sisusbcon_init()
229 c->vc_complement_mask = 0x7700; in sisusbcon_init()
231 c->vc_hi_font_mask = sisusb->current_font_512 ? 0x0800 : 0; in sisusbcon_init()
235 sisusb->havethisconsole[c->vc_num] = 1; in sisusbcon_init()
238 c->vc_scan_lines = 400; in sisusbcon_init()
240 c->vc_font.height = sisusb->current_font_height; in sisusbcon_init()
244 rows = c->vc_scan_lines / c->vc_font.height; in sisusbcon_init()
257 if (!*c->vc_uni_pagedir_loc) in sisusbcon_init()
258 con_set_default_unimap(c); in sisusbcon_init()
263 c->vc_cols = cols; in sisusbcon_init()
264 c->vc_rows = rows; in sisusbcon_init()
266 vc_resize(c, cols, rows); in sisusbcon_init()
271 sisusbcon_deinit(struct vc_data *c) in sisusbcon_deinit() argument
280 if (!(sisusb = sisusb_get_sisusb(c->vc_num))) in sisusbcon_deinit()
286 mysisusbs[c->vc_num] = NULL; in sisusbcon_deinit()
288 sisusb->havethisconsole[c->vc_num] = 0; in sisusbcon_deinit()
293 if (sisusb->havethisconsole[c->vc_num]) in sisusbcon_deinit()
310 sisusbcon_build_attr(struct vc_data *c, u8 color, u8 intensity, in sisusbcon_build_attr() argument
316 attr = (attr & 0xf0) | c->vc_ulcolor; in sisusbcon_build_attr()
318 attr = (attr & 0xf0) | c->vc_halfcolor; in sisusbcon_build_attr()
356 ((u16 *)c->vc_origin + \
361 ((u16 *)(sisusb->vrambase + (c->vc_origin - sisusb->scrbuf)) + \
367 sisusbcon_putc(struct vc_data *c, int ch, int y, int x) in sisusbcon_putc() argument
372 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_putc()
376 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_putc()
390 sisusbcon_putcs(struct vc_data *c, const unsigned short *s, in sisusbcon_putcs() argument
398 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_putcs()
412 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_putcs()
425 sisusbcon_clear(struct vc_data *c, int y, int x, int height, int width) in sisusbcon_clear() argument
428 u16 eattr = c->vc_video_erase_char; in sisusbcon_clear()
436 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_clear()
452 if (x == 0 && width >= c->vc_cols) { in sisusbcon_clear()
463 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_clear()
479 sisusbcon_bmove(struct vc_data *c, int sy, int sx, in sisusbcon_bmove() argument
489 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_bmove()
496 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_bmove()
512 sisusbcon_switch(struct vc_data *c) in sisusbcon_switch() argument
523 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_switch()
529 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_switch()
538 if (c->vc_origin == (unsigned long)c->vc_screenbuf) { in sisusbcon_switch()
545 length = min((int)c->vc_screenbuf_size, in sisusbcon_switch()
546 (int)(sisusb->scrbuf + sisusb->scrbuf_size - c->vc_origin)); in sisusbcon_switch()
549 sisusbcon_memcpyw((u16 *)c->vc_origin, (u16 *)c->vc_screenbuf, in sisusbcon_switch()
552 sisusb_copy_memory(sisusb, (unsigned char *)c->vc_origin, in sisusbcon_switch()
563 sisusbcon_save_screen(struct vc_data *c) in sisusbcon_save_screen() argument
572 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_save_screen()
577 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_save_screen()
583 length = min((int)c->vc_screenbuf_size, in sisusbcon_save_screen()
584 (int)(sisusb->scrbuf + sisusb->scrbuf_size - c->vc_origin)); in sisusbcon_save_screen()
587 sisusbcon_memcpyw((u16 *)c->vc_screenbuf, (u16 *)c->vc_origin, in sisusbcon_save_screen()
595 sisusbcon_set_palette(struct vc_data *c, unsigned char *table) in sisusbcon_set_palette() argument
602 if (!CON_IS_VISIBLE(c)) in sisusbcon_set_palette()
605 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_set_palette()
610 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_set_palette()
618 if (sisusb_setreg(sisusb, SISCOLDATA, c->vc_palette[j++] >> 2)) in sisusbcon_set_palette()
620 if (sisusb_setreg(sisusb, SISCOLDATA, c->vc_palette[j++] >> 2)) in sisusbcon_set_palette()
622 if (sisusb_setreg(sisusb, SISCOLDATA, c->vc_palette[j++] >> 2)) in sisusbcon_set_palette()
633 sisusbcon_blank(struct vc_data *c, int blank, int mode_switch) in sisusbcon_blank() argument
640 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_blank()
648 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_blank()
657 sisusbcon_memsetw((u16 *)c->vc_origin, in sisusbcon_blank()
658 c->vc_video_erase_char, in sisusbcon_blank()
659 c->vc_screenbuf_size); in sisusbcon_blank()
661 (unsigned char *)c->vc_origin, in sisusbcon_blank()
663 (c->vc_origin - sisusb->scrbuf)), in sisusbcon_blank()
664 c->vc_screenbuf_size, &written); in sisusbcon_blank()
716 sisusbcon_scrolldelta(struct vc_data *c, int lines) in sisusbcon_scrolldelta() argument
719 int margin = c->vc_size_row * 4; in sisusbcon_scrolldelta()
724 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_scrolldelta()
729 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_scrolldelta()
735 c->vc_visible_origin = c->vc_origin; in sisusbcon_scrolldelta()
739 (c->vc_scr_end - sisusb->scrbuf) + margin) { in sisusbcon_scrolldelta()
741 ul = c->vc_scr_end - sisusb->scrbuf; in sisusbcon_scrolldelta()
742 we = sisusb->con_rolled_over + c->vc_size_row; in sisusbcon_scrolldelta()
751 p = (c->vc_visible_origin - sisusb->scrbuf - ul + we) % we + in sisusbcon_scrolldelta()
752 lines * c->vc_size_row; in sisusbcon_scrolldelta()
754 st = (c->vc_origin - sisusb->scrbuf - ul + we) % we; in sisusbcon_scrolldelta()
765 c->vc_visible_origin = sisusb->scrbuf + (p + ul) % we; in sisusbcon_scrolldelta()
768 sisusbcon_set_start_address(sisusb, c); in sisusbcon_scrolldelta()
777 sisusbcon_cursor(struct vc_data *c, int mode) in sisusbcon_cursor() argument
782 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_cursor()
787 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_cursor()
792 if (c->vc_origin != c->vc_visible_origin) { in sisusbcon_cursor()
793 c->vc_visible_origin = c->vc_origin; in sisusbcon_cursor()
794 sisusbcon_set_start_address(sisusb, c); in sisusbcon_cursor()
804 sisusb_set_cursor(sisusb, (c->vc_pos - sisusb->scrbuf) / 2); in sisusbcon_cursor()
806 baseline = c->vc_font.height - (c->vc_font.height < 10 ? 1 : 2); in sisusbcon_cursor()
808 switch (c->vc_cursor_type & 0x0f) { in sisusbcon_cursor()
810 to = c->vc_font.height; in sisusbcon_cursor()
812 case CUR_TWO_THIRDS: from = c->vc_font.height / 3; in sisusbcon_cursor()
815 case CUR_LOWER_HALF: from = c->vc_font.height / 2; in sisusbcon_cursor()
818 case CUR_LOWER_THIRD: from = (c->vc_font.height * 2) / 3; in sisusbcon_cursor()
844 sisusbcon_scroll_area(struct vc_data *c, struct sisusb_usb_data *sisusb, in sisusbcon_scroll_area() argument
849 u16 eattr = c->vc_video_erase_char; in sisusbcon_scroll_area()
889 sisusbcon_scroll(struct vc_data *c, int t, int b, int dir, int lines) in sisusbcon_scroll() argument
892 u16 eattr = c->vc_video_erase_char; in sisusbcon_scroll()
896 unsigned int delta = lines * c->vc_size_row; in sisusbcon_scroll()
909 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_scroll()
914 if (sisusb_is_inactive(c, sisusb)) { in sisusbcon_scroll()
920 if (t || b != c->vc_rows) in sisusbcon_scroll()
921 return sisusbcon_scroll_area(c, sisusb, t, b, dir, lines); in sisusbcon_scroll()
923 if (c->vc_origin != c->vc_visible_origin) { in sisusbcon_scroll()
924 c->vc_visible_origin = c->vc_origin; in sisusbcon_scroll()
925 sisusbcon_set_start_address(sisusb, c); in sisusbcon_scroll()
929 if (lines > c->vc_rows) in sisusbcon_scroll()
930 lines = c->vc_rows; in sisusbcon_scroll()
932 oldorigin = c->vc_origin; in sisusbcon_scroll()
938 if (c->vc_scr_end + delta >= in sisusbcon_scroll()
942 c->vc_screenbuf_size - delta); in sisusbcon_scroll()
943 c->vc_origin = sisusb->scrbuf; in sisusbcon_scroll()
947 c->vc_origin += delta; in sisusbcon_scroll()
950 (u16 *)(c->vc_origin + c->vc_screenbuf_size - delta), in sisusbcon_scroll()
960 c->vc_screenbuf_size + in sisusbcon_scroll()
963 c->vc_screenbuf_size - delta); in sisusbcon_scroll()
964 c->vc_origin = sisusb->scrbuf + in sisusbcon_scroll()
966 c->vc_screenbuf_size; in sisusbcon_scroll()
970 c->vc_origin -= delta; in sisusbcon_scroll()
972 c->vc_scr_end = c->vc_origin + c->vc_screenbuf_size; in sisusbcon_scroll()
974 scr_memsetw((u16 *)(c->vc_origin), eattr, delta); in sisusbcon_scroll()
979 originoffset = (u32)(c->vc_origin - sisusb->scrbuf); in sisusbcon_scroll()
983 (char *)c->vc_origin, in sisusbcon_scroll()
985 c->vc_screenbuf_size, &written); in sisusbcon_scroll()
988 (char *)c->vc_origin + c->vc_screenbuf_size - delta, in sisusbcon_scroll()
990 c->vc_screenbuf_size - delta, in sisusbcon_scroll()
994 (char *)c->vc_origin, in sisusbcon_scroll()
998 c->vc_scr_end = c->vc_origin + c->vc_screenbuf_size; in sisusbcon_scroll()
999 c->vc_visible_origin = c->vc_origin; in sisusbcon_scroll()
1001 sisusbcon_set_start_address(sisusb, c); in sisusbcon_scroll()
1003 c->vc_pos = c->vc_pos - oldorigin + c->vc_origin; in sisusbcon_scroll()
1012 sisusbcon_set_origin(struct vc_data *c) in sisusbcon_set_origin() argument
1021 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_set_origin()
1026 if (sisusb_is_inactive(c, sisusb) || sisusb->con_blanked) { in sisusbcon_set_origin()
1031 c->vc_origin = c->vc_visible_origin = sisusb->scrbuf; in sisusbcon_set_origin()
1033 sisusbcon_set_start_address(sisusb, c); in sisusbcon_set_origin()
1044 sisusbcon_resize(struct vc_data *c, unsigned int newcols, unsigned int newrows, in sisusbcon_resize() argument
1050 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_resize()
1064 if (newcols != 80 || c->vc_scan_lines / fh != newrows) in sisusbcon_resize()
1073 struct vc_data *c, int fh, int uplock) in sisusbcon_do_font_op() argument
1218 if (c) { in sisusbcon_do_font_op()
1221 rows = c->vc_scan_lines / fh; in sisusbcon_do_font_op()
1251 if (dorecalc && c) { in sisusbcon_do_font_op()
1252 int rows = c->vc_scan_lines / fh; in sisusbcon_do_font_op()
1280 sisusbcon_font_set(struct vc_data *c, struct console_font *font, in sisusbcon_font_set() argument
1289 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_font_set()
1320 c, font->height, 1); in sisusbcon_font_set()
1325 sisusbcon_font_get(struct vc_data *c, struct console_font *font) in sisusbcon_font_get() argument
1329 if (!(sisusb = sisusb_get_sisusb_lock_and_check(c->vc_num))) in sisusbcon_font_get()
1335 font->height = c->vc_font.height; in sisusbcon_font_get()