Only in /home/cvs/src/sys/dev/syscons: CVS Common subdirectories: /home/cvs/src/sys/dev/syscons/apm and ./apm Common subdirectories: /home/cvs/src/sys/dev/syscons/blank and ./blank Common subdirectories: /home/cvs/src/sys/dev/syscons/daemon and ./daemon Common subdirectories: /home/cvs/src/sys/dev/syscons/dragon and ./dragon Common subdirectories: /home/cvs/src/sys/dev/syscons/fade and ./fade Common subdirectories: /home/cvs/src/sys/dev/syscons/fire and ./fire Common subdirectories: /home/cvs/src/sys/dev/syscons/green and ./green Common subdirectories: /home/cvs/src/sys/dev/syscons/logo and ./logo Common subdirectories: /home/cvs/src/sys/dev/syscons/rain and ./rain diff -ubw -I \$FreeBSD.*\$ /home/cvs/src/sys/dev/syscons/scgfbrndr.c ./scgfbrndr.c --- /home/cvs/src/sys/dev/syscons/scgfbrndr.c Mon Jun 13 13:23:02 2005 +++ ./scgfbrndr.c Thu Jun 2 23:05:54 2005 @@ -65,6 +65,7 @@ static void gfb_nop(scr_stat *scp, ...); sc_rndr_sw_t txtrndrsw = { + (vr_init_t *)gfb_nop, gfb_clear, gfb_border, gfb_draw, @@ -77,6 +78,7 @@ #ifdef SC_PIXEL_MODE sc_rndr_sw_t gfbrndrsw = { + (vr_init_t *)gfb_nop, gfb_clear, gfb_border, gfb_draw, @@ -90,6 +92,7 @@ #ifndef SC_NO_MODE_CHANGE sc_rndr_sw_t grrndrsw = { + (vr_init_t *)gfb_nop, (vr_clear_t *)gfb_nop, gfb_border, (vr_draw_t *)gfb_nop, diff -ubw -I \$FreeBSD.*\$ /home/cvs/src/sys/dev/syscons/scvgarndr.c ./scvgarndr.c --- /home/cvs/src/sys/dev/syscons/scvgarndr.c Mon Jun 13 15:50:34 2005 +++ ./scvgarndr.c Mon Jun 13 15:38:01 2005 @@ -63,17 +63,19 @@ #endif #ifdef SC_PIXEL_MODE -static vr_clear_t vga_pxlclear; -static vr_draw_border_t vga_pxlborder; +static vr_init_t vga_rndrinit; +static vr_clear_t vga_pxlclear_planar; +static vr_draw_border_t vga_pxlborder_planar; static vr_draw_t vga_egadraw; -static vr_draw_t vga_vgadraw; +static vr_draw_t vga_vgadraw_planar; static vr_set_cursor_t vga_pxlcursor_shape; -static vr_draw_cursor_t vga_pxlcursor; -static vr_blink_cursor_t vga_pxlblink; +static vr_draw_cursor_t vga_pxlcursor_planar; +static vr_blink_cursor_t vga_pxlblink_planar; #ifndef SC_NO_CUTPASTE -static vr_draw_mouse_t vga_pxlmouse; +static vr_draw_mouse_t vga_pxlmouse_planar; #else -#define vga_pxlmouse (vr_draw_mouse_t *)vga_nop +#define vga_pxlmouse_direct (vr_draw_mouse_t *)vga_nop +#define vga_pxlmouse_planar (vr_draw_mouse_t *)vga_nop #endif #endif /* SC_PIXEL_MODE */ @@ -84,6 +86,7 @@ static void vga_nop(scr_stat *scp, ...); static sc_rndr_sw_t txtrndrsw = { + (vr_init_t *)vga_nop, vga_txtclear, vga_txtborder, vga_txtdraw, @@ -100,32 +103,35 @@ #ifdef SC_PIXEL_MODE static sc_rndr_sw_t egarndrsw = { - vga_pxlclear, - vga_pxlborder, + (vr_init_t *)vga_nop, + vga_pxlclear_planar, + vga_pxlborder_planar, vga_egadraw, vga_pxlcursor_shape, - vga_pxlcursor, - vga_pxlblink, + vga_pxlcursor_planar, + vga_pxlblink_planar, (vr_set_mouse_t *)vga_nop, - vga_pxlmouse, + vga_pxlmouse_planar, }; RENDERER(ega, PIXEL_MODE, egarndrsw, vga_set); static sc_rndr_sw_t vgarndrsw = { - vga_pxlclear, - vga_pxlborder, - vga_vgadraw, + vga_rndrinit, + vga_pxlclear_planar, + vga_pxlborder_planar, + vga_vgadraw_planar, vga_pxlcursor_shape, - vga_pxlcursor, - vga_pxlblink, + vga_pxlcursor_planar, + vga_pxlblink_planar, (vr_set_mouse_t *)vga_nop, - vga_pxlmouse, + vga_pxlmouse_planar, }; RENDERER(vga, PIXEL_MODE, vgarndrsw, vga_set); #endif /* SC_PIXEL_MODE */ #ifndef SC_NO_MODE_CHANGE static sc_rndr_sw_t grrndrsw = { + (vr_init_t *)vga_nop, (vr_clear_t *)vga_nop, vga_grborder, (vr_draw_t *)vga_nop, @@ -431,7 +437,12 @@ /* pixel (raster text) mode renderer */ static void -vga_pxlclear(scr_stat *scp, int c, int attr) +vga_rndrinit(scr_stat *scp) +{ +} + +static void +vga_pxlclear_planar(scr_stat *scp, int c, int attr) { vm_offset_t p; int line_width; @@ -457,7 +468,7 @@ } static void -vga_pxlborder(scr_stat *scp, int color) +vga_pxlborder_planar(scr_stat *scp, int color) { vm_offset_t p; int line_width; @@ -555,7 +566,7 @@ } static void -vga_vgadraw(scr_stat *scp, int from, int count, int flip) +vga_vgadraw_planar(scr_stat *scp, int from, int count, int flip) { vm_offset_t d; vm_offset_t e; @@ -630,7 +641,7 @@ } static void -draw_pxlcursor(scr_stat *scp, int at, int on, int flip) +draw_pxlcursor_planar(scr_stat *scp, int at, int on, int flip) { vm_offset_t d; u_char *f; @@ -684,7 +695,7 @@ static int pxlblinkrate = 0; static void -vga_pxlcursor(scr_stat *scp, int at, int blink, int on, int flip) +vga_pxlcursor_planar(scr_stat *scp, int at, int blink, int on, int flip) { if (scp->curs_attr.height <= 0) /* the text cursor is disabled */ return; @@ -692,17 +703,17 @@ if (on) { if (!blink) { scp->status |= VR_CURSOR_ON; - draw_pxlcursor(scp, at, on, flip); + draw_pxlcursor_planar(scp, at, on, flip); } else if (++pxlblinkrate & 4) { pxlblinkrate = 0; scp->status ^= VR_CURSOR_ON; - draw_pxlcursor(scp, at, + draw_pxlcursor_planar(scp, at, scp->status & VR_CURSOR_ON, flip); } } else { if (scp->status & VR_CURSOR_ON) - draw_pxlcursor(scp, at, on, flip); + draw_pxlcursor_planar(scp, at, on, flip); scp->status &= ~VR_CURSOR_ON; } if (blink) @@ -712,7 +723,7 @@ } static void -vga_pxlblink(scr_stat *scp, int at, int flip) +vga_pxlblink_planar(scr_stat *scp, int at, int flip) { if (!(scp->status & VR_CURSOR_BLINK)) return; @@ -720,13 +731,13 @@ return; pxlblinkrate = 0; scp->status ^= VR_CURSOR_ON; - draw_pxlcursor(scp, at, scp->status & VR_CURSOR_ON, flip); + draw_pxlcursor_planar(scp, at, scp->status & VR_CURSOR_ON, flip); } #ifndef SC_NO_CUTPASTE static void -draw_pxlmouse(scr_stat *scp, int x, int y) +draw_pxlmouse_planar(scr_stat *scp, int x, int y) { vm_offset_t p; int line_width; @@ -801,7 +812,7 @@ } static void -remove_pxlmouse(scr_stat *scp, int x, int y) +remove_pxlmouse_planar(scr_stat *scp, int x, int y) { vm_offset_t p; int col, row; @@ -858,12 +869,12 @@ } static void -vga_pxlmouse(scr_stat *scp, int x, int y, int on) +vga_pxlmouse_planar(scr_stat *scp, int x, int y, int on) { if (on) - draw_pxlmouse(scp, x, y); + draw_pxlmouse_planar(scp, x, y); else - remove_pxlmouse(scp, x, y); + remove_pxlmouse_planar(scp, x, y); } #endif /* SC_NO_CUTPASTE */ diff -ubw -I \$FreeBSD.*\$ /home/cvs/src/sys/dev/syscons/scvidctl.c ./scvidctl.c --- /home/cvs/src/sys/dev/syscons/scvidctl.c Mon Jun 13 15:50:34 2005 +++ ./scvidctl.c Mon Jun 13 16:01:13 2005 @@ -799,6 +799,7 @@ int sc_render_add(sc_renderer_t *rndr) { + printf("sc_render_add: rndr %p, name %s, rendersw %p init %p\n", rndr, rndr->name, rndr->rndrsw, rndr->rndrsw->init); LIST_INSERT_HEAD(&sc_rndr_list, rndr, link); return 0; } @@ -820,6 +821,7 @@ if (!LIST_EMPTY(&sc_rndr_list)) { LIST_FOREACH(p, &sc_rndr_list, link) { +printf("sc_render_match(list): name %s, p %p, p->name: %s\n", name, p, p->name); if ((strcmp(p->name, name) == 0) && (mode == p->mode)) { scp->status &= @@ -830,6 +832,7 @@ } else { SET_FOREACH(list, scrndr_set) { p = *list; +printf("sc_render_match(set): name %s, p %p, p->name: %s\n", name, p, p->name); if ((strcmp(p->name, name) == 0) && (mode == p->mode)) { scp->status &= Common subdirectories: /home/cvs/src/sys/dev/syscons/snake and ./snake Common subdirectories: /home/cvs/src/sys/dev/syscons/star and ./star diff -ubw -I \$FreeBSD.*\$ /home/cvs/src/sys/dev/syscons/syscons.c ./syscons.c --- /home/cvs/src/sys/dev/syscons/syscons.c Mon Jun 13 15:50:34 2005 +++ ./syscons.c Mon Jun 13 15:57:38 2005 @@ -3031,10 +3031,12 @@ if (strcmp(sw->te_renderer, "*") != 0) { rndr = sc_render_match(scp, sw->te_renderer, scp->status & (GRAPHICS_MODE | PIXEL_MODE)); +printf("rndr match 1 = %p\n", rndr); } if (rndr == NULL) { rndr = sc_render_match(scp, scp->sc->adp->va_name, scp->status & (GRAPHICS_MODE | PIXEL_MODE)); +printf("rndr match 2 = %p\n", rndr); if (rndr == NULL) return ENODEV; } @@ -3042,6 +3044,8 @@ if (sw == scp->tsw) { error = (*sw->te_init)(scp, &scp->ts, SC_TE_WARM_INIT); scp->rndr = rndr; +printf("rndr1 = %p\n", rndr); + scp->rndr->init(scp); sc_clear_screen(scp); /* assert(error == 0); */ return error; @@ -3062,6 +3066,9 @@ scp->tsw = sw; scp->ts = p; scp->rndr = rndr; +printf("rndr2 = %p\n", rndr); +printf("rndr->init = %p\n", rndr->init); + scp->rndr->init(scp); /* XXX */ (*sw->te_default_attr)(scp, user_default.std_color, user_default.rev_color); @@ -3420,6 +3427,8 @@ /* setup video hardware for the given mode */ (*vidsw[scp->sc->adapter]->set_mode)(scp->sc->adp, scp->mode); +printf("rndr3 = %p\n", scp->rndr); + scp->rndr->init(scp); #ifndef __sparc64__ sc_vtb_init(&scp->scr, VTB_FRAMEBUFFER, scp->xsize, scp->ysize, (void *)scp->sc->adp->va_window, FALSE); diff -ubw -I \$FreeBSD.*\$ /home/cvs/src/sys/dev/syscons/syscons.h ./syscons.h --- /home/cvs/src/sys/dev/syscons/syscons.h Mon Jun 13 15:50:34 2005 +++ ./syscons.h Mon Jun 13 15:22:49 2005 @@ -2,6 +2,9 @@ * Copyright (c) 1995-1998 Søren Schmidt * All rights reserved. * + * This code is derived from software contributed to The DragonFly Project + * by Sascha Wildner + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -413,6 +416,7 @@ SI_SUB_DRIVERS, SI_ORDER_MIDDLE) /* renderer function table */ +typedef void vr_init_t(scr_stat *scp); typedef void vr_clear_t(scr_stat *scp, int c, int attr); typedef void vr_draw_border_t(scr_stat *scp, int color); typedef void vr_draw_t(scr_stat *scp, int from, int count, int flip); @@ -424,6 +428,7 @@ typedef void vr_draw_mouse_t(scr_stat *scp, int x, int y, int on); typedef struct sc_rndr_sw { + vr_init_t *init; vr_clear_t *clear; vr_draw_border_t *draw_border; vr_draw_t *draw; Common subdirectories: /home/cvs/src/sys/dev/syscons/warp and ./warp