History log of /openbsd-current/sys/dev/wsfont/wsfont.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.65 24-Oct-2023 fcambus

Remove bold8x16 font.

Since we have imported the IBM encoded version of "Spleen 8x16" as a
replacement, there is no reason to keep it anymore.

OK miod@


# 1.64 19-Oct-2023 fcambus

Add IBM encoded version of "Spleen 8x16".

The font is 2-Clause BSD licensed and is my original creation.

OK miod@


# 1.63 13-Oct-2023 fcambus

Remove bold8x16-iso1 font.

This font has been unlinked from the build in January 2019 when it was
replaced by Spleen 8x16.

OK mpi@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.62 04-Apr-2022 naddy

wscons: const-ify font encoding mappings

ok miod@


# 1.61 02-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on powerpc64 for GENERIC kernels.

Pointed out by Brad, thanks!

OK kettenis@, deraadt@


# 1.60 01-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on riscv64 for GENERIC kernels.

OK deraadt@


Revision tags: OPENBSD_7_0_BASE
# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.64 19-Oct-2023 fcambus

Add IBM encoded version of "Spleen 8x16".

The font is 2-Clause BSD licensed and is my original creation.

OK miod@


# 1.63 13-Oct-2023 fcambus

Remove bold8x16-iso1 font.

This font has been unlinked from the build in January 2019 when it was
replaced by Spleen 8x16.

OK mpi@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.62 04-Apr-2022 naddy

wscons: const-ify font encoding mappings

ok miod@


# 1.61 02-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on powerpc64 for GENERIC kernels.

Pointed out by Brad, thanks!

OK kettenis@, deraadt@


# 1.60 01-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on riscv64 for GENERIC kernels.

OK deraadt@


Revision tags: OPENBSD_7_0_BASE
# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.63 13-Oct-2023 fcambus

Remove bold8x16-iso1 font.

This font has been unlinked from the build in January 2019 when it was
replaced by Spleen 8x16.

OK mpi@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.62 04-Apr-2022 naddy

wscons: const-ify font encoding mappings

ok miod@


# 1.61 02-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on powerpc64 for GENERIC kernels.

Pointed out by Brad, thanks!

OK kettenis@, deraadt@


# 1.60 01-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on riscv64 for GENERIC kernels.

OK deraadt@


Revision tags: OPENBSD_7_0_BASE
# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


Revision tags: OPENBSD_7_1_BASE
# 1.62 04-Apr-2022 naddy

wscons: const-ify font encoding mappings

ok miod@


# 1.61 02-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on powerpc64 for GENERIC kernels.

Pointed out by Brad, thanks!

OK kettenis@, deraadt@


# 1.60 01-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on riscv64 for GENERIC kernels.

OK deraadt@


Revision tags: OPENBSD_7_0_BASE
# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.61 02-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on powerpc64 for GENERIC kernels.

Pointed out by Brad, thanks!

OK kettenis@, deraadt@


# 1.60 01-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on riscv64 for GENERIC kernels.

OK deraadt@


Revision tags: OPENBSD_7_0_BASE
# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.60 01-Nov-2021 fcambus

Enable spleen16x32 and spleen32x64 on riscv64 for GENERIC kernels.

OK deraadt@


Revision tags: OPENBSD_7_0_BASE
# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.59 01-May-2021 visa

Retire OpenBSD/sgi.

OK deraadt@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.58 10-Jul-2020 fcambus

Add "Spleen 6x12" to wsfont, a font targetted at OLED displays.

Similar to "Spleen 5x8" it only contains the printable ASCII
characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


# 1.57 09-Jul-2020 fcambus

Enable spleen16x32 and spleen32x64 on armv7 for GENERIC kernels.

OK kettenis@, deraadt@, patrick@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.56 11-Jul-2019 mpi

Kill commented-out wsfont_remove().

Gets rid of an unused free(9) w/o size argument.

ok jan@, anton@


Revision tags: OPENBSD_6_5_BASE
# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.55 09-Jan-2019 fcambus

Enable Spleen in wsfont and modify the font selection logic at runtime
in rasops(9) to allow selecting larger fonts when available.

Summary of the changes:

- Enable spleen8x16 for all architectures, replacing bold8x16_iso1.
- Enable spleen12x24 on all arches but sparc64, replacing gallant12x22.
- Enable spleen16x32 and spleen32x64 on amd64, i386, and arm64 for
GENERIC kernels.
- Modify the font selection logic in rasops(9) so the 16x32 and 32x64
fonts are selected if at least 120 columns can be displayed. Screens
with widths equal or larger than 1920px will use the 16x32 font, and
screens with widths equal or larger than 3840px the 32x64 one.

OK kettenis@, ratchov@, deraadt@


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.54 02-Dec-2018 fcambus

Add Spleen 8x16, 12x24, 16x32, and 32x64 variants to wsfont.

Together with the already imported Spleen 5x8, it will allow using the
same font family across a wide range of screen resolutions, from small
OLED displays to 4K monitors.

The fonts are 2-Clause BSD licensed and are my original creation.

OK jcs@, brynet@, bcallah@, kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


# 1.53 24-Sep-2018 fcambus

Add "Spleen 5x8" to wsfont, a font targetted at small OLED displays
to be used with devices handled by ssdfb(4). It contains all printable
ASCII characters (96 glyphes).

The font is 2-Clause BSD licensed and is my original creation.

OK patrick@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.


Revision tags: OPENBSD_6_2_BASE
# 1.52 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.51 18-Aug-2017 deraadt

Backout because it breaks ramdisks. Anyone making changes in the kernel
is required to consider or test ramdisks before commit.


# 1.50 18-Aug-2017 fcambus

Add compressed fonts support in the kernel.

The wsdisplay_font structure has been modified to add two new members
(zdata and zdata_len) to store compressed font data and its size. We
define compressed fonts by setting the data field to NULL and populating
the zdata and zdata_len fields.

In wsfont_lock(), we check if the selected font needs to be inflated,
and we call the newly introduced wsfont_inflate() if required.

OK kettenis@


# 1.49 17-Aug-2017 kettenis

Implement counter-clockwise rotation.

ok bcook@, stsp@


# 1.48 30-May-2017 fcambus

Remove qvss8x15, vt220l8x8, and vt220l8x10 fonts.

Those fonts are not compiled in by default, and are smaller than the
smallest font (bold8x16_iso1) we currently include.

OK mpi@, deraadt@


# 1.47 30-May-2017 fcambus

Remove lucida16x29.h and omron12x20 fonts.

- lucida16x29 is a bad conversion from a truetype font, it is too bold
which makes it unreadable.
- omron12x20 is a serif font, and is very difficult to read due to
inconsistencies in character spacing, alignement, and width.

Moreover, both fonts only have 96 glyphs.

No objection from mlarkin@

OK mpi@, jcs@


Revision tags: OPENBSD_6_1_BASE
# 1.46 22-Jan-2017 fcambus

Remove sony8x16 and sony12x24 fonts.

They were not compiled in by default, and are Serif fonts, which doesn't
work very well for monospaced bitmap fonts intended for console use.

OK mpi@, visa@, jcs@


# 1.45 06-Oct-2016 fcambus

Remove reference to non existing font.

Include file with font data (courier11x18.h) was removed from NetBSD due
to licensing concerns before wsfont was imported into OpenBSD.

Cookie values have been renumbered for consistency.


# 1.44 14-Sep-2016 jcs

limit the number of fonts that can be loaded

ok millert mlarkin deraadt


# 1.43 04-Sep-2016 tedu

remove some more sparc remnants. ok deraadt


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.42 13-Sep-2015 miod

branches: 1.42.2; 1.42.4;
Put the 12x22 font on alpha and macppc installation kernels, the 8x16 font
is really fugly on large displays (tga, vgafb). It's only 10KB more data
before compression, which fits in our floppies.


# 1.41 08-Sep-2015 deraadt

sizes for free(); checked by semarie


Revision tags: OPENBSD_5_8_BASE
# 1.40 14-Mar-2015 jsg

Remove some includes include-what-you-use claims don't
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.39 11-Jan-2015 deraadt

global "list" is not the nicest variable name
seen my mlarkin, ok miod


# 1.38 13-Dec-2014 doug

yet more mallocarray() changes.

ok tedu@ deraadt@


# 1.37 07-Dec-2014 miod

Bring the 12x22 font in even if SMALL_KERNEL on sgi.


Revision tags: OPENBSD_5_6_BASE
# 1.36 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.35 20-Oct-2013 miod

No longer store fonts added with the WSDISPLAYIO_LDFONT ioctl into the
wsdisplay softc. Instead, since the knowledge about available fonts lies in
the parent driver itself, introduce a list_font wsdisplay_accessop which
queries a font index, suitable to use within the WSDISPLAYIO_LSFONT ioctl.

With this in place:
- there is no global wsdisplay limit on the number of fonts loaded. Such a
limit will be enforced by the display drivers themselves.
- built-in kernel fonts will now appear in the list of fonts.

Grow a list_font accesop for rasops, which relies upon wsfont_enum(), which
is turned into something useful (and abortable if you do not need to iterate
further). Not used by any rasops driver yet.


# 1.34 20-Oct-2013 miod

Add a load_font accessop to rasops, to allow for fonts to be loaded and
selected. All rasops fonts are managed by wsfont, which allows a font to be
loaded on a rasops device and used on another.

Currently not plumbed in any driver yet. This is work in progress.


# 1.33 20-Oct-2013 miod

Replace manual list handling with a TAILQ.


# 1.32 19-Oct-2013 miod

Remove Unicode to ISO-8859-7 translation tables, they would only be used if
one were to use an ISO-8859-7-encoded font on a raster display, yet none of
the fonts the kernel chooses from uses this encoding.


Revision tags: OPENBSD_5_4_BASE
# 1.31 21-May-2013 miod

Check for NULL ptr before dereferencing, not after; found the hard way by
dcoppa@


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.30 13-Jan-2012 shadchin

Simplify function wsfont_map_unichar.

ok mpi@


# 1.29 10-Jan-2012 shadchin

Remove unused function wsfont_getflg.

ok mpi@


# 1.28 08-Jan-2012 shadchin

Ansify non-ansified function definitions. No functional change.

ok miod@


# 1.27 08-Jan-2012 shadchin

Remove unused definition null16.

ok miod@


# 1.26 06-Jan-2012 shadchin

Remove extra and trailing spaces.

ok mpi@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE
# 1.25 23-May-2010 deraadt

luna88k moves to defining __luna88k__ instead


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.24 15-Feb-2009 chl

do not check malloc return value against NULL, as M_WAITOK is used

ok krw@ miod@ (some months ago)


Revision tags: OPENBSD_4_4_BASE
# 1.23 26-Jun-2008 ray

First pass at removing clauses 3 and 4 from NetBSD licenses.

Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.

OK deraadt@


Revision tags: OPENBSD_4_3_BASE
# 1.22 17-Sep-2007 krw

Only the most obvious bzero() -> M_ZERO changes. No cast changes, no
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().


# 1.21 10-Sep-2007 gilles

more MALLOC/FREE -> malloc/free and M_ZERO changes

ok pyr@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.20 06-Aug-2006 miod

Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.


# 1.19 06-Aug-2006 miod

Switch luna88k from rcons to rasops. Tested by aoyama@


# 1.18 02-Aug-2006 miod

Provide the usual 8x16 font, instead of the qvss 8x15 font, for low-res vax
frame buffers (and smg until it can use non-8bit wide fonts), as the latter
has too many symbols in the 8-bit range stubbed out.


# 1.17 31-Jul-2006 miod

Do not compile non-iso font encoding conversion tables and {bit(*),byte} order
reversal if SMALL_KERNEL. Saves ~5KB before compression.
ok deraadt@

(*) except on alpha because tga needs it.


# 1.16 24-Jul-2006 miod

Add the 12x22 font to vax defaults.


# 1.15 23-Jul-2006 miod

Select the 8x15 font by default on vax.


Revision tags: OPENBSD_3_9_BASE
# 1.14 15-Sep-2005 miod

Stop compiling the texte console rotation code #ifdef __zaurus__, but use
a flag in the rasops_info structure; drivers which may use it shall declare
a specific attribute for the config(8) machinery, so that the necessary code
is compiled in.

In addition to this, rotated font computation is now done on-demand, and a
list of unrotated-rotated font cookie pairs is kept, rather than rotating all
built-in wsfonts at initialization time.

No user-perceptible functional change.

Tested matthieu@ uwe@, ok uwe@


Revision tags: OPENBSD_3_8_BASE
# 1.13 05-May-2005 miod

Provide both 8x16 and 12x22 fonts on sparc64 even if SMALL_KERNEL, as
vigra and some cgthree clones might need tho 8x16 font. Fits the floppies,
other architectures unaffected.


# 1.12 30-Apr-2005 pascoe

Temporary hack to (un)rotate the Zaurus console until a proper rasops
rotation framework is ready.


# 1.11 15-Apr-2005 pascoe

correct a spello

ok jolan@


# 1.10 26-Mar-2005 miod

Enable wsfont_add(), it will be necessary on sparc.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE SMP_SYNC_A SMP_SYNC_B
# 1.9 10-May-2004 miod

Select the Latin-1 8x16 font as the default 8x16 font, instead of the
IBM 8x16 one.
ok deraadt@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE UBC_SYNC_A
# 1.8 10-May-2003 miod

Make the HAVE_FONT logic work correctly when user requests FONT_BOLD8x16
only.


Revision tags: OPENBSD_3_3_BASE UBC_SYNC_B
# 1.7 12-Oct-2002 krw

Remove more '\n's from panic() statements. Both trailing and leading.

Diff generated by Chris Kuethe.


Revision tags: OPENBSD_3_2_BASE
# 1.6 17-Aug-2002 millert

The consensus was to include both FONT_GALLANT12x22 and FONT_BOLD8x16
for sparc, even when SMALL_KERNEL is defined. That way we get a
reasonable font on the sparcbook for the install.


# 1.5 25-Jul-2002 miod

When building kernels with the SMALL_KERNEL option (typically, RAMDISK),
only one wsfont will be included.
Instead of forcing it to be the 8x16 font, choose it depending on the
architecture we are compiling for - this way, sparc* will get the
PROM-like 12x22 font instead.


# 1.4 09-May-2002 maja

Restore the support of ISO 8859-1 fonts in macppc console. gallant12x22.h
was updated with the characters from dev/wscons/wscons_gallant19.h.
bold8x16-iso1.h is based on bold8x16.h and the missing characters added
by me. bold8x16-iso1.h isn't used by default. -moj ok @drahn, @miod


# 1.3 02-May-2002 matthieu

use the gallant 12x22 font by default on screens that are more
than 960 pixels wide if !SMALL_KERNEL, like rcons does.
Ok drahn@, mickey@, miod@.x


Revision tags: OPENBSD_3_1_BASE
# 1.2 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.1 18-Mar-2001 nate

branches: 1.1.4; 1.1.8;
Importing wsfont stuff from NetBSD.