summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/arm/xscale/pxa2x0_lcd.c26
-rw-r--r--sys/arch/arm/xscale/pxa2x0_lcd.h5
-rw-r--r--sys/arch/armv7/omap/omdisplay.c30
-rw-r--r--sys/arch/hp300/dev/diofb.c22
-rw-r--r--sys/arch/hp300/dev/diofbvar.h4
-rw-r--r--sys/arch/hp300/dev/dvbox.c4
-rw-r--r--sys/arch/hp300/dev/gbox.c4
-rw-r--r--sys/arch/hp300/dev/hyper.c4
-rw-r--r--sys/arch/hp300/dev/rbox.c4
-rw-r--r--sys/arch/hp300/dev/topcat.c4
-rw-r--r--sys/arch/hp300/dev/tvrx.c4
-rw-r--r--sys/arch/loongson/dev/sisfb.c28
-rw-r--r--sys/arch/loongson/dev/smfb.c28
-rw-r--r--sys/arch/luna88k/dev/lunafb.c40
-rw-r--r--sys/arch/macppc/pci/vgafb.c24
-rw-r--r--sys/arch/sgi/dev/gbe.c23
-rw-r--r--sys/arch/sgi/dev/impact.c26
-rw-r--r--sys/arch/sgi/gio/grtwo.c24
-rw-r--r--sys/arch/sgi/gio/newport.c26
-rw-r--r--sys/arch/sgi/xbow/odyssey.c23
-rw-r--r--sys/arch/sparc/dev/fb.c26
-rw-r--r--sys/arch/sparc64/dev/fb.c26
-rw-r--r--sys/arch/vax/mbus/legss.c28
-rw-r--r--sys/arch/vax/vsa/gpx.c64
-rw-r--r--sys/arch/vax/vsa/lcg.c26
-rw-r--r--sys/arch/vax/vsa/lcspx.c28
-rw-r--r--sys/arch/vax/vsa/smg.c26
-rw-r--r--sys/arch/zaurus/zaurus/zaurus_lcd.c9
28 files changed, 530 insertions, 56 deletions
diff --git a/sys/arch/arm/xscale/pxa2x0_lcd.c b/sys/arch/arm/xscale/pxa2x0_lcd.c
index d465256341c..ab17e2b69f9 100644
--- a/sys/arch/arm/xscale/pxa2x0_lcd.c
+++ b/sys/arch/arm/xscale/pxa2x0_lcd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pxa2x0_lcd.c,v 1.24 2010/08/30 21:35:55 deraadt Exp $ */
+/* $OpenBSD: pxa2x0_lcd.c,v 1.25 2013/10/21 10:36:09 miod Exp $ */
/* $NetBSD: pxa2x0_lcd.c,v 1.8 2003/10/03 07:24:05 bsh Exp $ */
/*
@@ -822,6 +822,30 @@ pxa2x0_lcd_mmap(void *v, off_t offset, int prot)
offset, prot, BUS_DMA_WAITOK | BUS_DMA_COHERENT));
}
+int
+pxa2x0_lcd_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct pxa2x0_lcd_softc *sc = v;
+ struct pxa2x0_lcd_screen *screen = sc->active;
+
+ if (screen == NULL)
+ return ENXIO;
+
+ return rasops_load_font(&screen->rinfo, emulcookie, font);
+}
+
+int
+pxa2x0_lcd_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct pxa2x0_lcd_softc *sc = v;
+ struct pxa2x0_lcd_screen *screen = sc->active;
+
+ if (screen == NULL)
+ return ENXIO;
+
+ return rasops_list_font(&screen->rinfo, font);
+}
+
void
pxa2x0_lcd_suspend(struct pxa2x0_lcd_softc *sc)
{
diff --git a/sys/arch/arm/xscale/pxa2x0_lcd.h b/sys/arch/arm/xscale/pxa2x0_lcd.h
index 84b7a51ecaf..a9823521b7e 100644
--- a/sys/arch/arm/xscale/pxa2x0_lcd.h
+++ b/sys/arch/arm/xscale/pxa2x0_lcd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pxa2x0_lcd.h,v 1.11 2005/12/22 18:45:46 deraadt Exp $ */
+/* $OpenBSD: pxa2x0_lcd.h,v 1.12 2013/10/21 10:36:10 miod Exp $ */
/* $NetBSD: pxa2x0_lcd.h,v 1.2 2003/06/17 09:43:14 bsh Exp $ */
/*
* Copyright (c) 2002 Genetec Corporation. All rights reserved.
@@ -138,9 +138,12 @@ int pxa2x0_lcd_alloc_screen(void *, const struct wsscreen_descr *,
void **, int *, int *, long *);
void pxa2x0_lcd_free_screen(void *, void *);
int pxa2x0_lcd_ioctl(void *, u_long, caddr_t, int, struct proc *);
+int pxa2x0_lcd_load_font(void *, void *, struct wsdisplay_font *);
+int pxa2x0_lcd_list_font(void *, struct wsdisplay_font *);
paddr_t pxa2x0_lcd_mmap(void *, off_t, int);
int pxa2x0_lcd_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+
void pxa2x0_lcd_power(int, void *);
void pxa2x0_lcd_suspend(struct pxa2x0_lcd_softc *);
void pxa2x0_lcd_resume(struct pxa2x0_lcd_softc *);
diff --git a/sys/arch/armv7/omap/omdisplay.c b/sys/arch/armv7/omap/omdisplay.c
index c5d777c9801..de0cbc40aac 100644
--- a/sys/arch/armv7/omap/omdisplay.c
+++ b/sys/arch/armv7/omap/omdisplay.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: omdisplay.c,v 1.2 2013/10/20 20:07:22 miod Exp $ */
+/* $OpenBSD: omdisplay.c,v 1.3 2013/10/21 10:36:11 miod Exp $ */
/*
* Copyright (c) 2007 Dale Rahn <drahn@openbsd.org>
*
@@ -448,6 +448,8 @@ int omdisplay_alloc_screen(void *v, const struct wsscreen_descr *_type,
int omdisplay_new_screen(struct omdisplay_softc *sc,
struct omdisplay_screen *scr, int depth);
paddr_t omdisplay_mmap(void *v, off_t offset, int prot);
+int omdisplay_load_font(void *, void *, struct wsdisplay_font *);
+int omdisplay_list_font(void *, struct wsdisplay_font *);
void omdisplay_free_screen(void *v, void *cookie);
void omdisplay_start(struct omdisplay_softc *sc);
void omdisplay_stop(struct omdisplay_softc *sc);
@@ -469,6 +471,8 @@ struct wsdisplay_accessops omdisplay_accessops = {
.alloc_screen = omdisplay_alloc_screen,
.free_screen = omdisplay_free_screen,
.show_screen = omdisplay_show_screen,
+ .load_font = omdisplay_load_font,
+ .list_font = omdisplay_list_font,
.burn_screen = omdisplay_burner
};
@@ -1337,6 +1341,30 @@ omdisplay_free_screen(void *v, void *cookie)
free(scr, M_DEVBUF);
}
+int
+omdisplay_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct omdisplay_softc *sc = v;
+ struct omdisplay_screen *scr = sc->sc_active;
+
+ if (scr == NULL)
+ return ENXIO;
+
+ return rasops_load_font(scr->rinfo, emulcookie, font);
+}
+
+int
+omdisplay_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct omdisplay_softc *sc = v;
+ struct omdisplay_screen *scr = sc->sc_active;
+
+ if (scr == NULL)
+ return ENXIO;
+
+ return rasops_list_font(scr->rinfo, font);
+}
+
void
omdisplay_start(struct omdisplay_softc *sc)
{
diff --git a/sys/arch/hp300/dev/diofb.c b/sys/arch/hp300/dev/diofb.c
index 6cf5b4cd093..f452fc6c6bc 100644
--- a/sys/arch/hp300/dev/diofb.c
+++ b/sys/arch/hp300/dev/diofb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diofb.c,v 1.19 2013/09/28 21:10:58 miod Exp $ */
+/* $OpenBSD: diofb.c,v 1.20 2013/10/21 10:36:11 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat
@@ -485,7 +485,7 @@ diofb_show_screen(void *v, void *cookie, int waitok,
}
paddr_t
-diofb_mmap(void * v, off_t offset, int prot)
+diofb_mmap(void *v, off_t offset, int prot)
{
struct diofb *fb = v;
@@ -526,3 +526,21 @@ diofb_getcmap(struct diofb *fb, struct wsdisplay_cmap *cm)
return (0);
}
+
+int
+diofb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct diofb *fb = v;
+ struct rasops_info *ri = &fb->ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+diofb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct diofb *fb = v;
+ struct rasops_info *ri = &fb->ri;
+
+ return rasops_list_font(ri, font);
+}
diff --git a/sys/arch/hp300/dev/diofbvar.h b/sys/arch/hp300/dev/diofbvar.h
index 013fe7f33fb..8f1471450b5 100644
--- a/sys/arch/hp300/dev/diofbvar.h
+++ b/sys/arch/hp300/dev/diofbvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: diofbvar.h,v 1.10 2006/08/11 18:33:13 miod Exp $ */
+/* $OpenBSD: diofbvar.h,v 1.11 2013/10/21 10:36:12 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat
@@ -123,6 +123,8 @@ void diofb_free_screen(void *, void *);
paddr_t diofb_mmap(void *, off_t, int);
int diofb_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+int diofb_load_font(void *, void *, struct wsdisplay_font *);
+int diofb_list_font(void *, struct wsdisplay_font *);
int diofb_mono_windowmove(struct diofb *, u_int16_t, u_int16_t, u_int16_t,
u_int16_t, u_int16_t, u_int16_t, int16_t, int16_t);
diff --git a/sys/arch/hp300/dev/dvbox.c b/sys/arch/hp300/dev/dvbox.c
index f4ec5c4250a..44d24c6cd87 100644
--- a/sys/arch/hp300/dev/dvbox.c
+++ b/sys/arch/hp300/dev/dvbox.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dvbox.c,v 1.14 2013/10/20 20:07:22 miod Exp $ */
+/* $OpenBSD: dvbox.c,v 1.15 2013/10/21 10:36:12 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat
@@ -131,6 +131,8 @@ struct wsdisplay_accessops dvbox_accessops = {
.alloc_screen = diofb_alloc_screen,
.free_screen = diofb_free_screen,
.show_screen = diofb_show_screen,
+ .load_font = diofb_load_font,
+ .list_font = diofb_list_font,
.burn_screen = dvbox_burner
};
diff --git a/sys/arch/hp300/dev/gbox.c b/sys/arch/hp300/dev/gbox.c
index 8ed94cb7751..7ec25558432 100644
--- a/sys/arch/hp300/dev/gbox.c
+++ b/sys/arch/hp300/dev/gbox.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gbox.c,v 1.16 2013/10/20 20:07:22 miod Exp $ */
+/* $OpenBSD: gbox.c,v 1.17 2013/10/21 10:36:12 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat
@@ -135,6 +135,8 @@ struct wsdisplay_accessops gbox_accessops = {
.alloc_screen = diofb_alloc_screen,
.free_screen = diofb_free_screen,
.show_screen = diofb_show_screen,
+ .load_font = diofb_load_font,
+ .list_font = diofb_list_font,
.burn_screen = gbox_burner
};
diff --git a/sys/arch/hp300/dev/hyper.c b/sys/arch/hp300/dev/hyper.c
index 42dabf6a72a..70fe53af6d7 100644
--- a/sys/arch/hp300/dev/hyper.c
+++ b/sys/arch/hp300/dev/hyper.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hyper.c,v 1.16 2013/10/20 20:07:22 miod Exp $ */
+/* $OpenBSD: hyper.c,v 1.17 2013/10/21 10:36:13 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat.
@@ -122,6 +122,8 @@ struct wsdisplay_accessops hyper_accessops = {
.alloc_screen = diofb_alloc_screen,
.free_screen = diofb_free_screen,
.show_screen = diofb_show_screen,
+ .load_font = diofb_load_font,
+ .list_font = diofb_list_font,
.burn_screen = hyper_burner
};
diff --git a/sys/arch/hp300/dev/rbox.c b/sys/arch/hp300/dev/rbox.c
index 91e7ca353a7..610248573f7 100644
--- a/sys/arch/hp300/dev/rbox.c
+++ b/sys/arch/hp300/dev/rbox.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rbox.c,v 1.15 2013/10/20 20:07:23 miod Exp $ */
+/* $OpenBSD: rbox.c,v 1.16 2013/10/21 10:36:13 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat
@@ -131,6 +131,8 @@ struct wsdisplay_accessops rbox_accessops = {
.alloc_screen = diofb_alloc_screen,
.free_screen = diofb_free_screen,
.show_screen = diofb_show_screen,
+ .load_font = diofb_load_font,
+ .list_font = diofb_list_font,
.burn_screen = rbox_burner
};
diff --git a/sys/arch/hp300/dev/topcat.c b/sys/arch/hp300/dev/topcat.c
index 46d7607dfee..ce23ed7724c 100644
--- a/sys/arch/hp300/dev/topcat.c
+++ b/sys/arch/hp300/dev/topcat.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: topcat.c,v 1.17 2013/10/20 20:07:23 miod Exp $ */
+/* $OpenBSD: topcat.c,v 1.18 2013/10/21 10:36:13 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat.
@@ -134,6 +134,8 @@ struct wsdisplay_accessops topcat_accessops = {
.alloc_screen = diofb_alloc_screen,
.free_screen = diofb_free_screen,
.show_screen = diofb_show_screen,
+ .load_font = diofb_load_font,
+ .list_font = diofb_list_font,
.burn_screen = topcat_burner
};
diff --git a/sys/arch/hp300/dev/tvrx.c b/sys/arch/hp300/dev/tvrx.c
index 5403d792fd6..e441225b104 100644
--- a/sys/arch/hp300/dev/tvrx.c
+++ b/sys/arch/hp300/dev/tvrx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tvrx.c,v 1.3 2013/10/20 20:07:23 miod Exp $ */
+/* $OpenBSD: tvrx.c,v 1.4 2013/10/21 10:36:13 miod Exp $ */
/*
* Copyright (c) 2006, 2011, Miodrag Vallat.
@@ -140,6 +140,8 @@ struct wsdisplay_accessops tvrx_accessops = {
.alloc_screen = diofb_alloc_screen,
.free_screen = diofb_free_screen,
.show_screen = diofb_show_screen,
+ .load_font = diofb_load_font,
+ .list_font = diofb_list_font,
.burn_screen = tvrx_burner
};
diff --git a/sys/arch/loongson/dev/sisfb.c b/sys/arch/loongson/dev/sisfb.c
index 8935efcf7c0..3093e71f072 100644
--- a/sys/arch/loongson/dev/sisfb.c
+++ b/sys/arch/loongson/dev/sisfb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sisfb.c,v 1.3 2013/10/20 20:07:23 miod Exp $ */
+/* $OpenBSD: sisfb.c,v 1.4 2013/10/21 10:36:14 miod Exp $ */
/*
* Copyright (c) 2010 Miodrag Vallat.
@@ -87,16 +87,20 @@ int sisfb_alloc_screen(void *, const struct wsscreen_descr *, void **, int *,
int *, long *);
void sisfb_free_screen(void *, void *);
int sisfb_ioctl(void *, u_long, caddr_t, int, struct proc *);
+int sisfb_list_font(void *, struct wsdisplay_font *);
+int sisfb_load_font(void *, void *, struct wsdisplay_font *);
+paddr_t sisfb_mmap(void *, off_t, int);
int sisfb_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
-paddr_t sisfb_mmap(void *, off_t, int);
struct wsdisplay_accessops sisfb_accessops = {
.ioctl = sisfb_ioctl,
.mmap = sisfb_mmap,
.alloc_screen = sisfb_alloc_screen,
.free_screen = sisfb_free_screen,
- .show_screen = sisfb_show_screen
+ .show_screen = sisfb_show_screen,
+ .load_font = sisfb_load_font,
+ .list_font = sisfb_list_font
};
int sisfb_getcmap(uint8_t *, struct wsdisplay_cmap *);
@@ -363,6 +367,24 @@ sisfb_mmap(void *v, off_t offset, int prot)
return XKPHYS_TO_PHYS((paddr_t)ri->ri_bits) + offset;
}
+int
+sisfb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct sisfb_softc *sc = (struct sisfb_softc *)v;
+ struct rasops_info *ri = &sc->sc_fb->ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+sisfb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct sisfb_softc *sc = (struct sisfb_softc *)v;
+ struct rasops_info *ri = &sc->sc_fb->ri;
+
+ return rasops_list_font(ri, font);
+}
+
/*
* Frame buffer initialization.
*/
diff --git a/sys/arch/loongson/dev/smfb.c b/sys/arch/loongson/dev/smfb.c
index a0c7f83e931..e1ca7172356 100644
--- a/sys/arch/loongson/dev/smfb.c
+++ b/sys/arch/loongson/dev/smfb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smfb.c,v 1.15 2013/10/20 20:07:24 miod Exp $ */
+/* $OpenBSD: smfb.c,v 1.16 2013/10/21 10:36:14 miod Exp $ */
/*
* Copyright (c) 2009, 2010 Miodrag Vallat.
@@ -109,12 +109,14 @@ struct cfdriver smfb_cd = {
int smfb_alloc_screen(void *, const struct wsscreen_descr *, void **, int *,
int *, long *);
+void smfb_burner(void *, uint, uint);
void smfb_free_screen(void *, void *);
int smfb_ioctl(void *, u_long, caddr_t, int, struct proc *);
+int smfb_list_font(void *, struct wsdisplay_font *);
+int smfb_load_font(void *, void *, struct wsdisplay_font *);
+paddr_t smfb_mmap(void *, off_t, int);
int smfb_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
-paddr_t smfb_mmap(void *, off_t, int);
-void smfb_burner(void *, uint, uint);
struct wsdisplay_accessops smfb_accessops = {
.ioctl = smfb_ioctl,
@@ -122,6 +124,8 @@ struct wsdisplay_accessops smfb_accessops = {
.alloc_screen = smfb_alloc_screen,
.free_screen = smfb_free_screen,
.show_screen = smfb_show_screen,
+ .load_font = smfb_load_font,
+ .list_font = smfb_list_font,
.burn_screen = smfb_burner
};
@@ -311,6 +315,24 @@ smfb_mmap(void *v, off_t offset, int prot)
return XKPHYS_TO_PHYS((paddr_t)ri->ri_bits) + offset;
}
+int
+smfb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct smfb_softc *sc = (struct smfb_softc *)v;
+ struct rasops_info *ri = &sc->sc_fb->ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+smfb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct smfb_softc *sc = (struct smfb_softc *)v;
+ struct rasops_info *ri = &sc->sc_fb->ri;
+
+ return rasops_list_font(ri, font);
+}
+
void
smfb_burner(void *v, uint on, uint flg)
{
diff --git a/sys/arch/luna88k/dev/lunafb.c b/sys/arch/luna88k/dev/lunafb.c
index 4d1ef2c7c91..6f2de42f864 100644
--- a/sys/arch/luna88k/dev/lunafb.c
+++ b/sys/arch/luna88k/dev/lunafb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lunafb.c,v 1.16 2013/10/20 20:07:23 miod Exp $ */
+/* $OpenBSD: lunafb.c,v 1.17 2013/10/21 10:36:15 miod Exp $ */
/* $NetBSD: lunafb.c,v 1.7.6.1 2002/08/07 01:48:34 lukem Exp $ */
/*-
@@ -126,20 +126,24 @@ const struct wsscreen_list omfb_screenlist = {
sizeof(_omfb_scrlist) / sizeof(struct wsscreen_descr *), _omfb_scrlist
};
-int omfbioctl(void *, u_long, caddr_t, int, struct proc *);
-paddr_t omfbmmap(void *, off_t, int);
-int omfb_alloc_screen(void *, const struct wsscreen_descr *,
- void **, int *, int *, long *);
-void omfb_free_screen(void *, void *);
-int omfb_show_screen(void *, void *, int,
- void (*) (void *, int, int), void *);
+int omfbioctl(void *, u_long, caddr_t, int, struct proc *);
+paddr_t omfbmmap(void *, off_t, int);
+int omfb_alloc_screen(void *, const struct wsscreen_descr *,
+ void **, int *, int *, long *);
+void omfb_free_screen(void *, void *);
+int omfb_show_screen(void *, void *, int, void (*) (void *, int, int),
+ void *);
+int omfb_load_font(void *, void *, struct wsdisplay_font *);
+int omfb_list_font(void *, struct wsdisplay_font *);
const struct wsdisplay_accessops omfb_accessops = {
.ioctl = omfbioctl,
.mmap = omfbmmap,
.alloc_screen = omfb_alloc_screen,
.free_screen = omfb_free_screen,
- .show_screen = omfb_show_screen
+ .show_screen = omfb_show_screen,
+ .load_font = omfb_load_font,
+ .list_font = omfb_list_font
};
int omfbmatch(struct device *, void *, void *);
@@ -559,3 +563,21 @@ omfb_show_screen(v, cookie, waitok, cb, cbarg)
{
return 0;
}
+
+int
+omfb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct omfb_softc *sc = v;
+ struct rasops_info *ri = &sc->sc_dc->dc_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+omfb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct omfb_softc *sc = v;
+ struct rasops_info *ri = &sc->sc_dc->dc_ri;
+
+ return rasops_list_font(ri, font);
+}
diff --git a/sys/arch/macppc/pci/vgafb.c b/sys/arch/macppc/pci/vgafb.c
index 06453a23ad8..5bc0abc0c3f 100644
--- a/sys/arch/macppc/pci/vgafb.c
+++ b/sys/arch/macppc/pci/vgafb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vgafb.c,v 1.57 2013/10/20 20:07:23 miod Exp $ */
+/* $OpenBSD: vgafb.c,v 1.58 2013/10/21 10:36:16 miod Exp $ */
/* $NetBSD: vga.c,v 1.3 1996/12/02 22:24:54 cgd Exp $ */
/*
@@ -70,6 +70,8 @@ int vgafb_alloc_screen(void *, const struct wsscreen_descr *, void **,
void vgafb_free_screen(void *, void *);
int vgafb_show_screen(void *, void *, int, void (*cb)(void *, int, int),
void *);
+int vgafb_load_font(void *, void *, struct wsdisplay_font *);
+int vgafb_list_font(void *, struct wsdisplay_font *);
void vgafb_burn(void *v, u_int , u_int);
void vgafb_restore_default_colors(struct vgafb_softc *);
int vgafb_is_console(int);
@@ -82,6 +84,8 @@ struct wsdisplay_accessops vgafb_accessops = {
.alloc_screen = vgafb_alloc_screen,
.free_screen = vgafb_free_screen,
.show_screen = vgafb_show_screen,
+ .load_font = vgafb_load_font,
+ .list_font = vgafb_list_font,
.burn_screen = vgafb_burn
};
@@ -474,6 +478,24 @@ vgafb_show_screen(void *v, void *cookie, int waitok,
}
int
+vgafb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct vgafb_softc *sc = v;
+ struct rasops_info *ri = &sc->sc_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+vgafb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct vgafb_softc *sc = v;
+ struct rasops_info *ri = &sc->sc_ri;
+
+ return rasops_list_font(ri, font);
+}
+
+int
vgafb_mapregs(struct vgafb_softc *sc, struct pci_attach_args *pa)
{
bus_addr_t ba;
diff --git a/sys/arch/sgi/dev/gbe.c b/sys/arch/sgi/dev/gbe.c
index 1ce185a10a4..fb862387e9c 100644
--- a/sys/arch/sgi/dev/gbe.c
+++ b/sys/arch/sgi/dev/gbe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gbe.c,v 1.20 2013/10/20 20:07:24 miod Exp $ */
+/* $OpenBSD: gbe.c,v 1.21 2013/10/21 10:36:16 miod Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Joel Sing <jsing@openbsd.org>
@@ -128,7 +128,8 @@ int gbe_alloc_screen(void *, const struct wsscreen_descr *, void **,
void gbe_free_screen(void *, void *);
int gbe_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
-void gbe_burner(void *, u_int, u_int);
+int gbe_load_font(void *, void *, struct wsdisplay_font *);
+int gbe_list_font(void *, struct wsdisplay_font *);
/*
* Hardware acceleration for rasops.
@@ -156,7 +157,8 @@ struct wsdisplay_accessops gbe_accessops = {
.alloc_screen = gbe_alloc_screen,
.free_screen = gbe_free_screen,
.show_screen = gbe_show_screen,
- .burn_screen = gbe_burner
+ .load_font = gbe_load_font,
+ .list_font = gbe_list_font
};
const struct wsscreen_descr *gbe_scrlist[] = {
@@ -981,9 +983,20 @@ gbe_show_screen(void *v, void *cookie, int waitok, void (*cb)(void *, int, int),
return (0);
}
-void
-gbe_burner(void *v, u_int on, u_int flags)
+int
+gbe_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct gbe_screen *screen = (struct gbe_screen *)v;
+
+ return rasops_load_font(&screen->ri, emulcookie, font);
+}
+
+int
+gbe_list_font(void *v, struct wsdisplay_font *font)
{
+ struct gbe_screen *screen = (struct gbe_screen *)v;
+
+ return rasops_list_font(&screen->ri, font);
}
/*
diff --git a/sys/arch/sgi/dev/impact.c b/sys/arch/sgi/dev/impact.c
index 748f117880a..58b0ffb73bf 100644
--- a/sys/arch/sgi/dev/impact.c
+++ b/sys/arch/sgi/dev/impact.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: impact.c,v 1.4 2013/10/20 20:07:24 miod Exp $ */
+/* $OpenBSD: impact.c,v 1.5 2013/10/21 10:36:16 miod Exp $ */
/*
* Copyright (c) 2010, 2012 Miodrag Vallat.
@@ -118,6 +118,8 @@ int impact_alloc_screen(void *, const struct wsscreen_descr *, void **,
void impact_free_screen(void *, void *);
int impact_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+int impact_load_font(void *, void *, struct wsdisplay_font *);
+int impact_list_font(void *, struct wsdisplay_font *);
static struct impact_screen impact_cons;
@@ -126,7 +128,9 @@ struct wsdisplay_accessops impact_accessops = {
.mmap = impact_mmap,
.alloc_screen = impact_alloc_screen,
.free_screen = impact_free_screen,
- .show_screen = impact_show_screen
+ .show_screen = impact_show_screen,
+ .load_font = impact_load_font,
+ .list_font = impact_list_font
};
int
@@ -466,6 +470,24 @@ impact_show_screen(void *v, void *cookie, int waitok,
return 0;
}
+int
+impact_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct impact_screen *scr = (struct impact_screen *)v;
+ struct rasops_info *ri = &scr->ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+impact_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct impact_screen *scr = (struct impact_screen *)v;
+ struct rasops_info *ri = &scr->ri;
+
+ return rasops_list_font(ri, font);
+}
+
/*
* Hardware accelerated functions.
*/
diff --git a/sys/arch/sgi/gio/grtwo.c b/sys/arch/sgi/gio/grtwo.c
index 34c890d1abb..74f59754099 100644
--- a/sys/arch/sgi/gio/grtwo.c
+++ b/sys/arch/sgi/gio/grtwo.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: grtwo.c,v 1.6 2013/06/11 18:15:55 deraadt Exp $ */
+/* $OpenBSD: grtwo.c,v 1.7 2013/10/21 10:36:17 miod Exp $ */
/* $NetBSD: grtwo.c,v 1.11 2009/11/22 19:09:15 mbalmer Exp $ */
/*
@@ -132,6 +132,8 @@ int grtwo_alloc_screen(void *, const struct wsscreen_descr *, void **,
void grtwo_free_screen(void *, void *);
int grtwo_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+int grtwo_load_font(void *, void *, struct wsdisplay_font *);
+int grtwo_list_font(void *, struct wsdisplay_font *);
static struct wsdisplay_accessops grtwo_accessops = {
.ioctl = grtwo_ioctl,
@@ -139,6 +141,8 @@ static struct wsdisplay_accessops grtwo_accessops = {
.alloc_screen = grtwo_alloc_screen,
.free_screen = grtwo_free_screen,
.show_screen = grtwo_show_screen,
+ .load_font = grtwo_load_font,
+ .list_font = grtwo_list_font
};
int grtwo_cursor(void *, int, int, int);
@@ -848,3 +852,21 @@ grtwo_mmap(void *v, off_t offset, int prot)
{
return -1;
}
+
+int
+grtwo_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct grtwo_devconfig *dc = v;
+ struct rasops_info *ri = &dc->dc_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+grtwo_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct grtwo_devconfig *dc = v;
+ struct rasops_info *ri = &dc->dc_ri;
+
+ return rasops_list_font(ri, font);
+}
diff --git a/sys/arch/sgi/gio/newport.c b/sys/arch/sgi/gio/newport.c
index 74d038bf191..ec39ce09223 100644
--- a/sys/arch/sgi/gio/newport.c
+++ b/sys/arch/sgi/gio/newport.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: newport.c,v 1.7 2013/10/20 20:07:24 miod Exp $ */
+/* $OpenBSD: newport.c,v 1.8 2013/10/21 10:36:17 miod Exp $ */
/* $NetBSD: newport.c,v 1.15 2009/05/12 23:51:25 macallan Exp $ */
/*
@@ -117,13 +117,17 @@ int newport_alloc_screen(void *, const struct wsscreen_descr *, void **,
void newport_free_screen(void *, void *);
int newport_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+int newport_load_font(void *, void *, struct wsdisplay_font *);
+int newport_list_font(void *, struct wsdisplay_font *);
struct wsdisplay_accessops newport_accessops = {
.ioctl = newport_ioctl,
.mmap = newport_mmap,
.alloc_screen = newport_alloc_screen,
.free_screen = newport_free_screen,
- .show_screen = newport_show_screen
+ .show_screen = newport_show_screen,
+ .load_font = newport_load_font,
+ .list_font = newport_list_font
};
int newport_do_cursor(struct rasops_info *);
@@ -887,3 +891,21 @@ newport_mmap(void *v, off_t offset, int prot)
{
return -1;
}
+
+int
+newport_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct newport_devconfig *dc = v;
+ struct rasops_info *ri = &dc->dc_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+newport_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct newport_devconfig *dc = v;
+ struct rasops_info *ri = &dc->dc_ri;
+
+ return rasops_list_font(ri, font);
+}
diff --git a/sys/arch/sgi/xbow/odyssey.c b/sys/arch/sgi/xbow/odyssey.c
index 1255f4269f0..5289b24fe7d 100644
--- a/sys/arch/sgi/xbow/odyssey.c
+++ b/sys/arch/sgi/xbow/odyssey.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: odyssey.c,v 1.8 2013/10/20 20:07:24 miod Exp $ */
+/* $OpenBSD: odyssey.c,v 1.9 2013/10/21 10:36:18 miod Exp $ */
/*
* Copyright (c) 2009, 2010 Joel Sing <jsing@openbsd.org>
*
@@ -129,7 +129,8 @@ int odyssey_alloc_screen(void *, const struct wsscreen_descr *, void **,
void odyssey_free_screen(void *, void *);
int odyssey_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
-void odyssey_burner(void *, u_int, u_int);
+int odyssey_load_font(void *, void *, struct wsdisplay_font *);
+int odyssey_list_font(void *, struct wsdisplay_font *);
static struct odyssey_screen odyssey_consdata;
static struct odyssey_softc odyssey_cons_sc;
@@ -144,7 +145,8 @@ struct wsdisplay_accessops odyssey_accessops = {
.alloc_screen = odyssey_alloc_screen,
.free_screen = odyssey_free_screen,
.show_screen = odyssey_show_screen,
- .burn_screen = odyssey_burner
+ .load_font = odyssey_load_font,
+ .list_font = odyssey_list_font
};
const struct wsscreen_descr *odyssey_scrlist[] = {
@@ -692,9 +694,20 @@ odyssey_show_screen(void *v, void *cookie, int waitok,
return (0);
}
-void
-odyssey_burner(void *v, u_int on, u_int flags)
+int
+odyssey_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct odyssey_screen *screen = (struct odyssey_screen *)v;
+
+ return rasops_load_font(&screen->ri, emulcookie, font);
+}
+
+int
+odyssey_list_font(void *v, struct wsdisplay_font *font)
{
+ struct odyssey_screen *screen = (struct odyssey_screen *)v;
+
+ return rasops_list_font(&screen->ri, font);
}
/*
diff --git a/sys/arch/sparc/dev/fb.c b/sys/arch/sparc/dev/fb.c
index 52cc7d2ed41..136feb95c41 100644
--- a/sys/arch/sparc/dev/fb.c
+++ b/sys/arch/sparc/dev/fb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fb.c,v 1.53 2013/08/15 18:29:56 kettenis Exp $ */
+/* $OpenBSD: fb.c,v 1.54 2013/10/21 10:36:18 miod Exp $ */
/* $NetBSD: fb.c,v 1.23 1997/07/07 23:30:22 pk Exp $ */
/*
@@ -130,6 +130,8 @@ int fb_alloc_screen(void *, const struct wsscreen_descr *, void **,
void fb_free_screen(void *, void *);
int fb_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+int fb_load_font(void *, void *, struct wsdisplay_font *);
+int fb_list_font(void *, struct wsdisplay_font *);
void
fb_setsize(struct sunfb *sf, int def_depth, int def_width, int def_height,
@@ -574,6 +576,10 @@ fbwscons_attach(struct sunfb *sf, struct wsdisplay_accessops *op, int isconsole)
op->free_screen = fb_free_screen;
op->show_screen = fb_show_screen;
}
+ if (op->load_font == NULL) {
+ op->load_font = fb_load_font;
+ op->list_font = fb_list_font;
+ }
sf->sf_scrlist[0] = &sf->sf_wsd;
sf->sf_wsl.nscreens = 1;
@@ -633,6 +639,24 @@ fb_show_screen(void *v, void *cookie, int waitok, void (*cb)(void *, int, int),
return (0);
}
+int
+fb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct sunfb *sf = v;
+ struct rasops_info *ri = &sf->sf_ro;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+fb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct sunfb *sf = v;
+ struct rasops_info *ri = &sf->sf_ro;
+
+ return rasops_list_font(ri, font);
+}
+
#if defined(SUN4)
/*
diff --git a/sys/arch/sparc64/dev/fb.c b/sys/arch/sparc64/dev/fb.c
index 6613fedd878..7475798c4cc 100644
--- a/sys/arch/sparc64/dev/fb.c
+++ b/sys/arch/sparc64/dev/fb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fb.c,v 1.24 2013/08/15 18:29:56 kettenis Exp $ */
+/* $OpenBSD: fb.c,v 1.25 2013/10/21 10:36:19 miod Exp $ */
/* $NetBSD: fb.c,v 1.23 1997/07/07 23:30:22 pk Exp $ */
/*
@@ -122,6 +122,8 @@ int fb_alloc_screen(void *, const struct wsscreen_descr *, void **,
void fb_free_screen(void *, void *);
int fb_show_screen(void *, void *, int, void (*)(void *, int, int),
void *);
+int fb_load_font(void *, void *, struct wsdisplay_font *);
+int fb_list_font(void *, struct wsdisplay_font *);
void
fb_setsize(struct sunfb *sf, int def_depth, int def_width, int def_height,
@@ -415,6 +417,10 @@ fbwscons_attach(struct sunfb *sf, struct wsdisplay_accessops *op, int isconsole)
op->free_screen = fb_free_screen;
op->show_screen = fb_show_screen;
}
+ if (op->load_font == NULL) {
+ op->load_font = fb_load_font;
+ op->list_font = fb_list_font;
+ }
sf->sf_scrlist[0] = &sf->sf_wsd;
sf->sf_wsl.nscreens = 1;
@@ -475,6 +481,24 @@ fb_show_screen(void *v, void *cookie, int waitok, void (*cb)(void *, int, int),
}
int
+fb_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct sunfb *sf = v;
+ struct rasops_info *ri = &sf->sf_ro;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+fb_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct sunfb *sf = v;
+ struct rasops_info *ri = &sf->sf_ro;
+
+ return rasops_list_font(ri, font);
+}
+
+int
fb_get_console_metrics(int *fontwidth, int *fontheight, int *wtop, int *wleft)
{
cell_t romheight, romwidth, windowtop, windowleft;
diff --git a/sys/arch/vax/mbus/legss.c b/sys/arch/vax/mbus/legss.c
index 604fb73fd14..7fcb5adef35 100644
--- a/sys/arch/vax/mbus/legss.c
+++ b/sys/arch/vax/mbus/legss.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: legss.c,v 1.5 2013/10/20 20:07:28 miod Exp $ */
+/* $OpenBSD: legss.c,v 1.6 2013/10/21 10:36:20 miod Exp $ */
/*
* Copyright (c) 2008 Miodrag Vallat.
@@ -147,13 +147,17 @@ int legss_alloc_screen(void *, const struct wsscreen_descr *,
void legss_free_screen(void *, void *);
int legss_show_screen(void *, void *, int,
void (*) (void *, int, int), void *);
+int legss_load_font(void *, void *, struct wsdisplay_font *);
+int legss_list_font(void *, struct wsdisplay_font *);
const struct wsdisplay_accessops legss_accessops = {
.ioctl = legss_ioctl,
.mmap = legss_mmap,
.alloc_screen = legss_alloc_screen,
.free_screen = legss_free_screen,
- .show_screen = legss_show_screen
+ .show_screen = legss_show_screen,
+ .load_font = legss_load_font,
+ .list_font = legss_list_font
};
int legss_setup_screen(struct legss_screen *);
@@ -337,6 +341,26 @@ legss_show_screen(void *v, void *cookie, int waitok,
}
int
+legss_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct legss_softc *sc = v;
+ struct legss_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+legss_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct legss_softc *sc = v;
+ struct legss_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_list_font(ri, font);
+}
+
+int
legss_setup_screen(struct legss_screen *ss)
{
struct rasops_info *ri = &ss->ss_ri;
diff --git a/sys/arch/vax/vsa/gpx.c b/sys/arch/vax/vsa/gpx.c
index 20799080990..fca9d006ed4 100644
--- a/sys/arch/vax/vsa/gpx.c
+++ b/sys/arch/vax/vsa/gpx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gpx.c,v 1.22 2013/10/20 20:07:28 miod Exp $ */
+/* $OpenBSD: gpx.c,v 1.23 2013/10/21 10:36:20 miod Exp $ */
/*
* Copyright (c) 2006 Miodrag Vallat.
*
@@ -193,6 +193,8 @@ int gpx_alloc_screen(void *, const struct wsscreen_descr *,
void gpx_free_screen(void *, void *);
int gpx_show_screen(void *, void *, int,
void (*) (void *, int, int), void *);
+int gpx_load_font(void *, void *, struct wsdisplay_font *);
+int gpx_list_font(void *, struct wsdisplay_font *);
void gpx_burner(void *, u_int, u_int);
const struct wsdisplay_accessops gpx_accessops = {
@@ -201,6 +203,8 @@ const struct wsdisplay_accessops gpx_accessops = {
.alloc_screen = gpx_alloc_screen,
.free_screen = gpx_free_screen,
.show_screen = gpx_show_screen,
+ .load_font = gpx_load_font,
+ .list_font = gpx_list_font,
.burn_screen = gpx_burner
};
@@ -476,6 +480,64 @@ gpx_show_screen(void *v, void *cookie, int waitok,
return (0);
}
+int
+gpx_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct gpx_softc *sc = v;
+ struct gpx_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+ int wsfcookie;
+ struct wsdisplay_font *wsf;
+ const char *name;
+
+ /*
+ * We can't use rasops_load_font() directly, as we need to make
+ * sure that, when switching fonts, the font bits are set up in
+ * the correct bit order, and uploaded off-screen.
+ */
+
+ if (font->data != NULL)
+ return rasops_load_font(ri, emulcookie, font);
+
+ /* allow an empty font name to revert to the initial font choice */
+ name = font->name;
+ if (*name == '\0')
+ name = NULL;
+
+ wsfcookie = wsfont_find(name, ri->ri_font->fontwidth,
+ ri->ri_font->fontheight, 0);
+ if (wsfcookie < 0) {
+ wsfcookie = wsfont_find(name, 0, 0, 0);
+ if (wsfcookie < 0)
+ return ENOENT;
+ else
+ return EINVAL;
+ }
+ if (wsfont_lock(wsfcookie, &wsf,
+ WSDISPLAY_FONTORDER_R2L, WSDISPLAY_FONTORDER_L2R) <= 0)
+ return EINVAL;
+
+ /* if (ri->ri_wsfcookie >= 0) */
+ wsfont_unlock(ri->ri_wsfcookie);
+ ri->ri_wsfcookie = wsfcookie;
+ ri->ri_font = wsf;
+ ri->ri_fontscale = ri->ri_font->fontheight * ri->ri_font->stride;
+
+ gpx_upload_font(ss);
+
+ return 0;
+}
+
+int
+gpx_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct gpx_softc *sc = v;
+ struct gpx_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_list_font(ri, font);
+}
+
void
gpx_burner(void *v, u_int on, u_int flags)
{
diff --git a/sys/arch/vax/vsa/lcg.c b/sys/arch/vax/vsa/lcg.c
index 596eeb040a3..26d27a9fab8 100644
--- a/sys/arch/vax/vsa/lcg.c
+++ b/sys/arch/vax/vsa/lcg.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lcg.c,v 1.20 2013/10/20 20:07:28 miod Exp $ */
+/* $OpenBSD: lcg.c,v 1.21 2013/10/21 10:36:21 miod Exp $ */
/*
* Copyright (c) 2006 Miodrag Vallat.
*
@@ -125,6 +125,8 @@ int lcg_alloc_screen(void *, const struct wsscreen_descr *,
void lcg_free_screen(void *, void *);
int lcg_show_screen(void *, void *, int,
void (*) (void *, int, int), void *);
+int lcg_load_font(void *, void *, struct wsdisplay_font *);
+int lcg_list_font(void *, struct wsdisplay_font *);
void lcg_burner(void *, u_int, u_int);
const struct wsdisplay_accessops lcg_accessops = {
@@ -133,6 +135,8 @@ const struct wsdisplay_accessops lcg_accessops = {
.alloc_screen = lcg_alloc_screen,
.free_screen = lcg_free_screen,
.show_screen = lcg_show_screen,
+ .load_font = lcg_load_font,
+ .list_font = lcg_list_font,
.burn_screen = lcg_burner
};
@@ -527,6 +531,26 @@ lcg_show_screen(void *v, void *cookie, int waitok,
return (0);
}
+int
+lcg_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct lcg_softc *sc = v;
+ struct lcg_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+lcg_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct lcg_softc *sc = v;
+ struct lcg_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_list_font(ri, font);
+}
+
void
lcg_burner(void *v, u_int on, u_int flags)
{
diff --git a/sys/arch/vax/vsa/lcspx.c b/sys/arch/vax/vsa/lcspx.c
index 6a39517715b..90a1b43b72b 100644
--- a/sys/arch/vax/vsa/lcspx.c
+++ b/sys/arch/vax/vsa/lcspx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lcspx.c,v 1.18 2013/10/20 20:07:28 miod Exp $ */
+/* $OpenBSD: lcspx.c,v 1.19 2013/10/21 10:36:21 miod Exp $ */
/*
* Copyright (c) 2006 Miodrag Vallat.
*
@@ -140,13 +140,17 @@ int lcspx_alloc_screen(void *, const struct wsscreen_descr *,
void lcspx_free_screen(void *, void *);
int lcspx_show_screen(void *, void *, int,
void (*) (void *, int, int), void *);
+int lcspx_load_font(void *, void *, struct wsdisplay_font *);
+int lcspx_list_font(void *, struct wsdisplay_font *);
const struct wsdisplay_accessops lcspx_accessops = {
.ioctl = lcspx_ioctl,
.mmap = lcspx_mmap,
.alloc_screen = lcspx_alloc_screen,
.free_screen = lcspx_free_screen,
- .show_screen = lcspx_show_screen
+ .show_screen = lcspx_show_screen,
+ .load_font = lcspx_load_font,
+ .list_font = lcspx_list_font
};
int lcspx_getcmap(struct lcspx_screen *, struct wsdisplay_cmap *);
@@ -515,6 +519,26 @@ lcspx_show_screen(void *v, void *cookie, int waitok,
return (0);
}
+int
+lcspx_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct lcspx_softc *sc = v;
+ struct lcspx_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+lcspx_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct lcspx_softc *sc = v;
+ struct lcspx_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_list_font(ri, font);
+}
+
/*
* Colormap handling routines
*/
diff --git a/sys/arch/vax/vsa/smg.c b/sys/arch/vax/vsa/smg.c
index 6083ee60720..8b24196b465 100644
--- a/sys/arch/vax/vsa/smg.c
+++ b/sys/arch/vax/vsa/smg.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smg.c,v 1.25 2013/10/20 20:07:28 miod Exp $ */
+/* $OpenBSD: smg.c,v 1.26 2013/10/21 10:36:21 miod Exp $ */
/* $NetBSD: smg.c,v 1.21 2000/03/23 06:46:44 thorpej Exp $ */
/*
* Copyright (c) 2006, Miodrag Vallat
@@ -179,6 +179,8 @@ int smg_alloc_screen(void *, const struct wsscreen_descr *,
void smg_free_screen(void *, void *);
int smg_show_screen(void *, void *, int,
void (*) (void *, int, int), void *);
+int smg_load_font(void *, void *, struct wsdisplay_font *);
+int smg_list_font(void *, struct wsdisplay_font *);
void smg_burner(void *, u_int, u_int);
const struct wsdisplay_accessops smg_accessops = {
@@ -187,6 +189,8 @@ const struct wsdisplay_accessops smg_accessops = {
.alloc_screen = smg_alloc_screen,
.free_screen = smg_free_screen,
.show_screen = smg_show_screen,
+ .load_font = smg_load_font,
+ .list_font = smg_list_font,
.burn_screen = smg_burner
};
@@ -469,6 +473,26 @@ smg_show_screen(void *v, void *cookie, int waitok,
return (0);
}
+int
+smg_load_font(void *v, void *emulcookie, struct wsdisplay_font *font)
+{
+ struct smg_softc *sc = v;
+ struct smg_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_load_font(ri, emulcookie, font);
+}
+
+int
+smg_list_font(void *v, struct wsdisplay_font *font)
+{
+ struct smg_softc *sc = v;
+ struct smg_screen *ss = sc->sc_scr;
+ struct rasops_info *ri = &ss->ss_ri;
+
+ return rasops_list_font(ri, font);
+}
+
void
smg_burner(void *v, u_int on, u_int flags)
{
diff --git a/sys/arch/zaurus/zaurus/zaurus_lcd.c b/sys/arch/zaurus/zaurus/zaurus_lcd.c
index 3a7744728c0..06ad3e2f605 100644
--- a/sys/arch/zaurus/zaurus/zaurus_lcd.c
+++ b/sys/arch/zaurus/zaurus/zaurus_lcd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: zaurus_lcd.c,v 1.26 2013/10/20 20:07:28 miod Exp $ */
+/* $OpenBSD: zaurus_lcd.c,v 1.27 2013/10/21 10:36:22 miod Exp $ */
/* $NetBSD: lubbock_lcd.c,v 1.1 2003/08/09 19:38:53 bsh Exp $ */
/*
@@ -88,12 +88,11 @@ const struct wsscreen_list lcd_screen_list = {
};
int lcd_ioctl(void *, u_long, caddr_t, int, struct proc *);
-void lcd_burner(void *, u_int, u_int);
int lcd_show_screen(void *, void *, int,
void (*)(void *, int, int), void *);
+void lcd_burner(void *, u_int, u_int);
-int lcd_param(struct pxa2x0_lcd_softc *, u_long,
- struct wsdisplay_param *);
+int lcd_param(struct pxa2x0_lcd_softc *, u_long, struct wsdisplay_param *);
const struct wsdisplay_accessops lcd_accessops = {
.ioctl = lcd_ioctl,
@@ -101,6 +100,8 @@ const struct wsdisplay_accessops lcd_accessops = {
.alloc_screen = pxa2x0_lcd_alloc_screen,
.free_screen = pxa2x0_lcd_free_screen,
.show_screen = lcd_show_screen,
+ .load_font = pxa2x0_lcd_load_font,
+ .list_font = pxa2x0_lcd_list_font,
.burn_screen = lcd_burner
};