Re: vcsa and big endian

From: Samuel Thibault
Date: Sun Dec 09 2007 - 18:00:31 EST


Samuel Thibault, le Sun 09 Dec 2007 23:50:39 +0100, a écrit :
> Samuel Thibault, le Sun 09 Dec 2007 23:43:49 +0100, a écrit :
> > On big endian machines, /dev/vcsa stores text/attribute bytes in big
> > endian order, while it stores them in little endian order on little
> > endian machines. Is that expected?
>
> It looks like ggi considers this as normal. In any case, the vcsa
> manual page should probably be made more clear ("but including
> attributes" -> "but using unsigned shorts that include attributes" for
> instance).

And the code example should be fixed too:

char ch, attrib;

(void) read(fd, &ch, 1);
(void) read(fd, &attrib, 1);

should rather be

unsigned short s;
unsigned char ch, attrib;

...

(void) read(fd, &s, 2);
ch = s & 0xff;
attrib = (s >> 8);


The manual page should also mention that when a 512 chars font is
loaded, the 9th bit is in the attrib value, and its position can be
fetched through the VT_GETHIFONTMASK ioctl.

Samuel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/