/* check if font is already used by other console */
for (i = 0; i < MAX_NR_CONSOLES; i++) {
if (font_data[i] != FONT_DATA
- && FNTSIZE(font_data[i]) == size
+ && font_data_size(font_data[i]) == size
&& !memcmp(font_data[i], new_data, size)) {
kfree(new_data - FONT_EXTRA_WORDS * sizeof(int));
/* current font is the same as the new one */
struct fb_var_screeninfo var = info->var;
int x_diff, y_diff, virt_w, virt_h, virt_fw, virt_fh;
- if (p->userfont && FNTSIZE(p->fontdata)) {
+ if (p->userfont && font_data_size(p->fontdata)) {
unsigned int size = vc_font_size(&vc->vc_font);
/*
* charcount can change and cannot be used to determine the
* font data allocated size.
*/
- if (!size || size > FNTSIZE(p->fontdata))
+ if (!size || size > font_data_size(p->fontdata))
return -EINVAL;
}
if (font->width <= 8) {
j = vc->vc_font.height;
- if (font->charcount * j > FNTSIZE(fontdata))
+ if (font->charcount * j > font_data_size(fontdata))
return -EINVAL;
for (i = 0; i < font->charcount; i++) {
}
} else if (font->width <= 16) {
j = vc->vc_font.height * 2;
- if (font->charcount * j > FNTSIZE(fontdata))
+ if (font->charcount * j > font_data_size(fontdata))
return -EINVAL;
for (i = 0; i < font->charcount; i++) {
fontdata += j;
}
} else if (font->width <= 24) {
- if (font->charcount * (vc->vc_font.height * sizeof(u32)) > FNTSIZE(fontdata))
+ if (font->charcount * (vc->vc_font.height * sizeof(u32)) > font_data_size(fontdata))
return -EINVAL;
for (i = 0; i < font->charcount; i++) {
}
} else {
j = vc->vc_font.height * 4;
- if (font->charcount * j > FNTSIZE(fontdata))
+ if (font->charcount * j > font_data_size(fontdata))
return -EINVAL;
for (i = 0; i < font->charcount; i++) {
if (fb_display[i].userfont &&
fb_display[i].fontdata &&
FNTSUM(fb_display[i].fontdata) == csum &&
- FNTSIZE(fb_display[i].fontdata) == size &&
+ font_data_size(fb_display[i].fontdata) == size &&
tmp->vc_font.width == w &&
!memcmp(fb_display[i].fontdata, new_data, size)) {
kfree(new_data - FONT_EXTRA_WORDS * sizeof(int));
#endif
#include <linux/font.h>
+/*
+ * Helpers for font_data_t
+ */
+
+/**
+ * font_data_size - Return size of the font data in bytes
+ * @fd: Font data
+ *
+ * Returns:
+ * The number of bytes in the given font data.
+ */
+unsigned int font_data_size(font_data_t *fd)
+{
+ return FNTSIZE(fd);
+}
+EXPORT_SYMBOL_GPL(font_data_size);
+
+/*
+ * Font lookup
+ */
+
static const struct font_desc *fonts[] = {
#ifdef CONFIG_FONT_8x8
&font_vga_8x8,