spatny priklad fbcon?

Michl Ladislav xmichl03 na stud.fee.vutbr.cz
Středa Březen 28 18:28:49 CEST 2001


dobry vecer,

dopisuju funkci con_font_op do newport_con.c (uz chodi, ale font je zatim
spolecny pro vsechny konzole) a chtel jsem vzit jako priklad fbcon.c
(jadro 2.4.2) vsimnete si podtrzeneho a pouziti promenne h.

static inline int fbcon_copy_font(int unit, struct console_font_op *op)
{
    struct display *od, *p = &fb_display[unit];
    int h = op->height;
    ^^^^^^^^^^^^^^^^^^^
    if (h < 0 || !vc_cons_allocated( h ))
        return -ENOTTY;
    if (h == unit)
        return 0; /* nothing to do */
    od = &fb_display[h];
    if (od->fontdata == p->fontdata)
        return 0; /* already the same font... */
    op->width = fontwidth(od);
    op->height = fontheight(od);
    return fbcon_do_set_font(unit, op, od->fontdata, od->userfont);
}

static inline int fbcon_set_font(int unit, struct console_font_op *op)
{
    int w = op->width;
    int h = op->height;
    ^^^^^^^^^^^^^^^^^^^
    int size = h;
    int i, k;
    u8 *new_data, *data = op->data, *p;
[snip]
    if (w <= 8) {
        for (i = 0; i < op->charcount; i++) {
            memcpy(p, data, h);
            data += 32;
            p += h;
            ^^^^^^^ - tady se s h pracuje jako s vyskou fontu
        }
    }

dost dobre tomu nerozumim, op->height by mela byt vyska fontu, fb na i386
nepouzivam a nikdy jsem to nezkousel, ale ty zdrojaky vypadaji odpohledu
divne. muze mi tuhle nesrovnalost nekdo vysvetlit? (unit je cislo
virtualni konzole pro kterou se operace provadi)

diky,
ladis



Další informace o konferenci Linux