You'd think that the kernel font bitmaps are a primary example of
data that could be read-only... and you'd be wrong.
The font encoding tables however are indeed constant as far as I can
tell. The diff below marks them as such. NetBSD has the same.
ok?
diff e8186ba8726c14dfc3512467cc2bc0b2ae1a3fdb
c899115edffe4038f3d32db09d2986467ad3aa5a
blob - 7b6df0924cc0f109d62e7fda235625adf54d5667
blob + 7354a996595496b0fef0c324d878367c2a19feb9
--- sys/dev/wsfont/wsfont.c
+++ sys/dev/wsfont/wsfont.c
@@ -630,23 +630,23 @@ wsfont_unlock(int cookie)
*/
struct wsfont_level1_glyphmap {
- struct wsfont_level2_glyphmap **level2;
+ const struct wsfont_level2_glyphmap **level2;
int base; /* High byte for first level2 entry */
int size; /* Number of level2 entries */
};
struct wsfont_level2_glyphmap {
- int base; /* Low byte for first character */
- int size; /* Number of characters */
- void *chars; /* Pointer to character number entries */
- int width; /* Size of each entry in bytes (1,2,4) */
+ int base; /* Low byte for first character */
+ int size; /* Number of characters */
+ const void *chars; /* Pointer to character number entries */
+ int width; /* Size of each entry in bytes (1,2,4) */
};
/*
* IBM 437 maps
*/
-static u_int8_t
+static const u_int8_t
ibm437_chars_0[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
@@ -706,7 +706,7 @@ ibm437_chars_37[] = {
254
};
-static struct wsfont_level2_glyphmap
+static const struct wsfont_level2_glyphmap
ibm437_level2_0 = { 0, 256, ibm437_chars_0, 1 },
ibm437_level2_1 = { 146, 1, ibm437_chars_1, 1 },
ibm437_level2_3 = { 147, 50, ibm437_chars_3, 1 },
@@ -715,7 +715,7 @@ ibm437_level2_34 = { 5, 97, ibm437_chars_34, 1 },
ibm437_level2_35 = { 16, 18, ibm437_chars_35, 1 },
ibm437_level2_37 = { 0, 161, ibm437_chars_37, 1 };
-static struct wsfont_level2_glyphmap *ibm437_level1[] = {
+static const struct wsfont_level2_glyphmap *ibm437_level1[] = {
&ibm437_level2_0, &ibm437_level2_1, NULL, &ibm437_level2_3,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
@@ -728,7 +728,7 @@ static struct wsfont_level2_glyphmap *ibm437_level1[]
NULL, &ibm437_level2_37
};
-static struct wsfont_level1_glyphmap encodings[] = {
+static const struct wsfont_level1_glyphmap encodings[] = {
/* WSDISPLAY_FONTENC_ISO */
{ NULL, 0, 0 },
/* WSDISPLAY_FONTENC_IBM */
@@ -749,9 +749,9 @@ wsfont_map_unichar(struct wsdisplay_font *font, int c)
#if !defined(SMALL_KERNEL)
if (font->encoding >= 0 && font->encoding < nitems(encodings)) {
int hi = (c >> 8), lo = c & 255;
- struct wsfont_level1_glyphmap *map1 =
+ const struct wsfont_level1_glyphmap *map1 =
&encodings[font->encoding];
- struct wsfont_level2_glyphmap *map2;
+ const struct wsfont_level2_glyphmap *map2;
hi -= map1->base;
--
Christian "naddy" Weisgerber [email protected]