summaryrefslogtreecommitdiffstats
path: root/sys/dev/syscons
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r--sys/dev/syscons/scgfbrndr.c2
-rw-r--r--sys/dev/syscons/scmouse.c1
-rw-r--r--sys/dev/syscons/scvgarndr.c4
-rw-r--r--sys/dev/syscons/scvidctl.c6
-rw-r--r--sys/dev/syscons/syscons.c34
-rw-r--r--sys/dev/syscons/syscons.h10
6 files changed, 31 insertions, 26 deletions
diff --git a/sys/dev/syscons/scgfbrndr.c b/sys/dev/syscons/scgfbrndr.c
index 32a9166..fa522f8 100644
--- a/sys/dev/syscons/scgfbrndr.c
+++ b/sys/dev/syscons/scgfbrndr.c
@@ -323,7 +323,7 @@ gfb_mouse(scr_stat *scp, int x, int y, int on)
/* Display the mouse pointer image... */
(*vidsw[scp->sc->adapter]->putm)(scp->sc->adp, x, y,
- mouse_pointer, 0xffffffff, 16);
+ mouse_pointer, 0xffffffff, 16, 8);
} else {
/*
diff --git a/sys/dev/syscons/scmouse.c b/sys/dev/syscons/scmouse.c
index ef5c026..73455f3 100644
--- a/sys/dev/syscons/scmouse.c
+++ b/sys/dev/syscons/scmouse.c
@@ -883,6 +883,7 @@ sc_mouse_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag,
#ifndef SC_NO_FONT_LOADING
if (ISTEXTSC(cur_scp) && (cur_scp->font != NULL))
sc_load_font(cur_scp, 0, cur_scp->font_size,
+ cur_scp->font_width,
cur_scp->font + cur_scp->font_size
* cur_scp->sc->mouse_char,
cur_scp->sc->mouse_char, 4);
diff --git a/sys/dev/syscons/scvgarndr.c b/sys/dev/syscons/scvgarndr.c
index 3c52a24..81498ec 100644
--- a/sys/dev/syscons/scvgarndr.c
+++ b/sys/dev/syscons/scvgarndr.c
@@ -312,7 +312,7 @@ draw_txtcharcursor(scr_stat *scp, int at, u_short c, u_short a, int flip)
font[i] ^= 0xff;
}
/* XXX */
- (*vidsw[sc->adapter]->load_font)(sc->adp, 0, h, font,
+ (*vidsw[sc->adapter]->load_font)(sc->adp, 0, h, 8, font,
sc->cursor_char, 1);
sc_vtb_putc(&scp->scr, at, sc->cursor_char, a);
} else
@@ -438,7 +438,7 @@ draw_txtmouse(scr_stat *scp, int x, int y)
while (!(inb(crtc_addr + 6) & 0x08)) /* idle */ ;
#endif
c = scp->sc->mouse_char;
- (*vidsw[scp->sc->adapter]->load_font)(scp->sc->adp, 0, 32, font_buf,
+ (*vidsw[scp->sc->adapter]->load_font)(scp->sc->adp, 0, 32, 8, font_buf,
c, 4);
sc_vtb_putc(&scp->scr, pos, c, sc_vtb_geta(&scp->scr, pos));
diff --git a/sys/dev/syscons/scvidctl.c b/sys/dev/syscons/scvidctl.c
index dff5d89..f2debe3 100644
--- a/sys/dev/syscons/scvidctl.c
+++ b/sys/dev/syscons/scvidctl.c
@@ -694,11 +694,11 @@ sc_vid_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct thread *
* Don't load fonts for now... XXX
*/
if (scp->sc->fonts_loaded & FONT_8)
- sc_load_font(scp, 0, 8, scp->sc->font_8, 0, 256);
+ sc_load_font(scp, 0, 8, 8, scp->sc->font_8, 0, 256);
if (scp->sc->fonts_loaded & FONT_14)
- sc_load_font(scp, 0, 14, scp->sc->font_14, 0, 256);
+ sc_load_font(scp, 0, 14, 8, scp->sc->font_14, 0, 256);
if (scp->sc->fonts_loaded & FONT_16)
- sc_load_font(scp, 0, 16, scp->sc->font_16, 0, 256);
+ sc_load_font(scp, 0, 16, 8, scp->sc->font_16, 0, 256);
}
#endif /* SC_NO_FONT_LOADING */
#endif
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 5c8b843..adba5a1 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -1285,7 +1285,7 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
* Don't load if the current font size is not 8x8.
*/
if (ISTEXTSC(sc->cur_scp) && (sc->cur_scp->font_size < 14))
- sc_load_font(sc->cur_scp, 0, 8, sc->font_8, 0, 256);
+ sc_load_font(sc->cur_scp, 0, 8, 8, sc->font_8, 0, 256);
return 0;
case GIO_FONT8x8: /* get 8x8 dot font */
@@ -1311,7 +1311,7 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
if (ISTEXTSC(sc->cur_scp)
&& (sc->cur_scp->font_size >= 14)
&& (sc->cur_scp->font_size < 16))
- sc_load_font(sc->cur_scp, 0, 14, sc->font_14, 0, 256);
+ sc_load_font(sc->cur_scp, 0, 14, 8, sc->font_14, 0, 256);
return 0;
case GIO_FONT8x14: /* get 8x14 dot font */
@@ -1335,7 +1335,7 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
* Don't load if the current font size is not 8x16.
*/
if (ISTEXTSC(sc->cur_scp) && (sc->cur_scp->font_size >= 16))
- sc_load_font(sc->cur_scp, 0, 16, sc->font_16, 0, 256);
+ sc_load_font(sc->cur_scp, 0, 16, 8, sc->font_16, 0, 256);
return 0;
case GIO_FONT8x16: /* get 8x16 dot font */
@@ -2752,21 +2752,21 @@ scinit(int unit, int flags)
bcopy(dflt_font_16, sc->font_16, sizeof(dflt_font_16));
sc->fonts_loaded = FONT_16 | FONT_14 | FONT_8;
if (scp->font_size < 14) {
- sc_load_font(scp, 0, 8, sc->font_8, 0, 256);
+ sc_load_font(scp, 0, 8, 8, sc->font_8, 0, 256);
} else if (scp->font_size >= 16) {
- sc_load_font(scp, 0, 16, sc->font_16, 0, 256);
+ sc_load_font(scp, 0, 16, 8, sc->font_16, 0, 256);
} else {
- sc_load_font(scp, 0, 14, sc->font_14, 0, 256);
+ sc_load_font(scp, 0, 14, 8, sc->font_14, 0, 256);
}
#else /* !SC_DFLT_FONT */
if (scp->font_size < 14) {
- sc_save_font(scp, 0, 8, sc->font_8, 0, 256);
+ sc_save_font(scp, 0, 8, 8, sc->font_8, 0, 256);
sc->fonts_loaded = FONT_8;
} else if (scp->font_size >= 16) {
- sc_save_font(scp, 0, 16, sc->font_16, 0, 256);
+ sc_save_font(scp, 0, 16, 8, sc->font_16, 0, 256);
sc->fonts_loaded = FONT_16;
} else {
- sc_save_font(scp, 0, 14, sc->font_14, 0, 256);
+ sc_save_font(scp, 0, 14, 8, sc->font_14, 0, 256);
sc->fonts_loaded = FONT_14;
}
#endif /* SC_DFLT_FONT */
@@ -3444,13 +3444,13 @@ set_mode(scr_stat *scp)
if (!(scp->status & PIXEL_MODE) && ISFONTAVAIL(scp->sc->adp->va_flags)) {
if (scp->font_size < 14) {
if (scp->sc->fonts_loaded & FONT_8)
- sc_load_font(scp, 0, 8, scp->sc->font_8, 0, 256);
+ sc_load_font(scp, 0, 8, 8, scp->sc->font_8, 0, 256);
} else if (scp->font_size >= 16) {
if (scp->sc->fonts_loaded & FONT_16)
- sc_load_font(scp, 0, 16, scp->sc->font_16, 0, 256);
+ sc_load_font(scp, 0, 16, 8, scp->sc->font_16, 0, 256);
} else {
if (scp->sc->fonts_loaded & FONT_14)
- sc_load_font(scp, 0, 14, scp->sc->font_14, 0, 256);
+ sc_load_font(scp, 0, 14, 8, scp->sc->font_14, 0, 256);
}
/*
* FONT KLUDGE:
@@ -3481,26 +3481,28 @@ sc_set_border(scr_stat *scp, int color)
#ifndef SC_NO_FONT_LOADING
void
-sc_load_font(scr_stat *scp, int page, int size, u_char *buf,
+sc_load_font(scr_stat *scp, int page, int size, int width, u_char *buf,
int base, int count)
{
sc_softc_t *sc;
sc = scp->sc;
sc->font_loading_in_progress = TRUE;
- (*vidsw[sc->adapter]->load_font)(sc->adp, page, size, buf, base, count);
+ (*vidsw[sc->adapter]->load_font)(sc->adp, page, size, width, buf, base,
+ count);
sc->font_loading_in_progress = FALSE;
}
void
-sc_save_font(scr_stat *scp, int page, int size, u_char *buf,
+sc_save_font(scr_stat *scp, int page, int size, int width, u_char *buf,
int base, int count)
{
sc_softc_t *sc;
sc = scp->sc;
sc->font_loading_in_progress = TRUE;
- (*vidsw[sc->adapter]->save_font)(sc->adp, page, size, buf, base, count);
+ (*vidsw[sc->adapter]->save_font)(sc->adp, page, size, width, buf, base,
+ count);
sc->font_loading_in_progress = FALSE;
}
diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h
index 542f301..45e96ae 100644
--- a/sys/dev/syscons/syscons.h
+++ b/sys/dev/syscons/syscons.h
@@ -252,9 +252,11 @@ typedef struct sc_softc {
#define FONT_8 2
#define FONT_14 4
#define FONT_16 8
+#define FONT_22 8
u_char *font_8;
u_char *font_14;
u_char *font_16;
+ u_char *font_22;
#endif
u_char cursor_char;
@@ -542,10 +544,10 @@ int sc_attach_unit(int unit, int flags);
int set_mode(scr_stat *scp);
void sc_set_border(scr_stat *scp, int color);
-void sc_load_font(scr_stat *scp, int page, int size, u_char *font,
- int base, int count);
-void sc_save_font(scr_stat *scp, int page, int size, u_char *font,
- int base, int count);
+void sc_load_font(scr_stat *scp, int page, int size, int width,
+ u_char *font, int base, int count);
+void sc_save_font(scr_stat *scp, int page, int size, int width,
+ u_char *font, int base, int count);
void sc_show_font(scr_stat *scp, int page);
void sc_touch_scrn_saver(void);
OpenPOWER on IntegriCloud