static int inv_translate[MAX_NR_CONSOLES];
-struct uni_pagedir {
- u16 **uni_pgdir[32];
+/**
+ * struct uni_pagedict -- unicode directory
+ *
+ * @uni_pgdir: 32*32*64 table with glyphs
+ * @refcount: reference count of this structure
+ * @sum: checksum
+ * @inverse_translations: best-effort inverse mapping
+ * @inverse_trans_unicode: best-effort inverse mapping to unicode
+ */
+struct uni_pagedict {
+ u16 **uni_pgdir[32];
unsigned long refcount;
unsigned long sum;
unsigned char *inverse_translations[4];
u16 *inverse_trans_unicode;
};
-static struct uni_pagedir *dflt;
+static struct uni_pagedict *dflt;
-static void set_inverse_transl(struct vc_data *conp, struct uni_pagedir *p, int i)
+static void set_inverse_transl(struct vc_data *conp, struct uni_pagedict *p, int i)
{
int j, glyph;
unsigned short *t = translations[i];
}
static void set_inverse_trans_unicode(struct vc_data *conp,
- struct uni_pagedir *p)
+ struct uni_pagedict *p)
{
int i, j, k, glyph;
u16 **p1, *p2;
*/
u16 inverse_translate(const struct vc_data *conp, int glyph, int use_unicode)
{
- struct uni_pagedir *p;
+ struct uni_pagedict *p;
int m;
if (glyph < 0 || glyph >= MAX_GLYPH)
return 0;
static void update_user_maps(void)
{
int i;
- struct uni_pagedir *p, *q = NULL;
+ struct uni_pagedict *p, *q = NULL;
for (i = 0; i < MAX_NR_CONSOLES; i++) {
if (!vc_cons_allocated(i))
extern u8 dfont_unicount[]; /* Defined in console_defmap.c */
extern u16 dfont_unitable[];
-static void con_release_unimap(struct uni_pagedir *p)
+static void con_release_unimap(struct uni_pagedict *p)
{
u16 **p1;
int i, j;
/* Caller must hold the console lock */
void con_free_unimap(struct vc_data *vc)
{
- struct uni_pagedir *p;
+ struct uni_pagedict *p;
p = *vc->vc_uni_pagedir_loc;
if (!p)
kfree(p);
}
-static int con_unify_unimap(struct vc_data *conp, struct uni_pagedir *p)
+static int con_unify_unimap(struct vc_data *conp, struct uni_pagedict *p)
{
int i, j, k;
- struct uni_pagedir *q;
+ struct uni_pagedict *q;
for (i = 0; i < MAX_NR_CONSOLES; i++) {
if (!vc_cons_allocated(i))
}
static int
-con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
+con_insert_unipair(struct uni_pagedict *p, u_short unicode, u_short fontpos)
{
int i, n;
u16 **p1, *p2;
/* Caller must hold the lock */
static int con_do_clear_unimap(struct vc_data *vc)
{
- struct uni_pagedir *p, *q;
+ struct uni_pagedict *p, *q;
p = *vc->vc_uni_pagedir_loc;
if (!p || --p->refcount) {
int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
{
int err = 0, err1, i;
- struct uni_pagedir *p, *q;
+ struct uni_pagedict *p, *q;
struct unipair *unilist, *plist;
if (!ct)
/*
* Since refcount was > 1, con_clear_unimap() allocated a
- * a new uni_pagedir for this vc. Re: p != q
+ * a new uni_pagedict for this vc. Re: p != q
*/
q = *vc->vc_uni_pagedir_loc;
{
int i, j, err = 0, err1;
u16 *q;
- struct uni_pagedir *p;
+ struct uni_pagedict *p;
if (dflt) {
p = *vc->vc_uni_pagedir_loc;
*/
int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc)
{
- struct uni_pagedir *q;
+ struct uni_pagedict *q;
if (!*src_vc->vc_uni_pagedir_loc)
return -EINVAL;
int i, j, k, ret = 0;
ushort ect;
u16 **p1, *p2;
- struct uni_pagedir *p;
+ struct uni_pagedict *p;
struct unipair *unilist;
unilist = kvmalloc_array(ct, sizeof(struct unipair), GFP_KERNEL);
{
int h;
u16 **p1, *p2;
- struct uni_pagedir *p;
+ struct uni_pagedict *p;
/* Only 16-bit codes supported at this time */
if (ucs > 0xffff)