|
From: Aivils S. <Aiv...@un...> - 2003-09-15 08:02:01
|
>>
>> BROKEN: MDA console, fb_con.
>
>MDA should be easy to fix. Fbcon needs alot of work.
How about fbcon which uses only one VT as VGA ?
>> Power management of console lead oops - commented out.
>
>Yeap. I haven't figured out what the author of that code wanted to do.
I understan my mistake. i place pm_register in early boot time.
>> UNKNOWN: PC mainboard speaker and keyboard beeper.
>
>Shoudl work. I managed to get the speaker from oopings. Now it just
>doesn't work :-/
Under 2.4 speaker take aditional VT.
>> TODO:
>> dummy console command line parser to set up VC per VT.
>
>Ug. That has to be a fixed number. The problem is in vt_ioctl.c.
>For the case VT_GETSTATE it uses a short which means it scans for 16 VCs.
>It returns which VCs are in use. You could limit the amount of VCs but you
>can never have more than 16. Do we really want to have variable number
>VCs per VT?
Seems VCs should be in 2 between 16. 16 allow only 4 VT which is to few
for USB two interface keyboars, which takes two VT per each. I mean 16 for
real console with hardware output and 2 for dummy. VCs per VT count must
set up in console init routine and this count remain fixed all console
lifetime. I do not mean runtime variable count of VCs per VT. This is done.
>Now what would be useful is controlling the number of VTs
>created.
vt_map_display() return NULL for redundant consoles - so reject it. This
one limit count of REALTERMINAL.
>Of course we end up hitting the 64 bit limit because the serial
>TTYs use 64 and up. This is something we will have to resolve somehow. Not
>a easy solution.
>
>> /proc interface to manage console-input link (i use it).
>
>Great. Eventually we can shift that to sysfs.
i check out it under 2.6 and then commit.
>> @@ -234,7 +234,7 @@ static void update_user_maps(struct vc_d
>> struct uni_pagedir *p, *q = NULL;
>> int i;
>>
>> - for (i = 0; i < MAX_NR_USER_CONSOLES; i++) {
>> + for (i = 0; i < vc->display_fg->vc_count; i++) {
>> struct vc_data *tmp = vc->display_fg->vc_cons[i];
>
>Because of VT_GETSTATE we are stuck with MAX_NR_USER_CONSOLES. Now
>selecting how many VTs we can create would be useful.
we need special ioctl. VT_GETSTATE don't care how many VCs has a
REALTERMINAL.
IMHO we should change terminology. All linus tree kernel ioctl-s return
information about single REALTERMINAL, which has noname, because it is
a one. Under ruby You create vt_struct which contain information about
current REALTERMINAL. I use REALTERMINAL , because this is a union of
real-output-device and real-input-device, so we lost virtuality. Of
course this is not real teletypewriter just emulator. You by yourself
design all ioctl-s against current REALTERMINAL. VT_GETSTATE return info
about bunch of VCs of current REALTERMINAL.
I write this because very hard understand about what is a talkshow.
I suggest rename vt_struct to rt_struct and use anyplace abbreviation
rt. This one allow more easy explaining how to linux-ruby works.
And eliminate misunderstanding VT,VC and unnamed REALTERMINAL.
>I assume you are
>doing this so you can more than one dummycon registered correct?
Yes. I will use multiple dummy consoles with small VCs count.
>> +++ ruby-2.6.0-test3/drivers/char/decvte.c 2003-09-11
13:44:36.000000000
>> +0100
>> @@ -513,10 +513,10 @@ static void set_mode(struct vc_data *vc,
>> switch (par[i]) {
>> case 1: /* DECCKM - Cursor keys mode */
>> if (on_off)
>> - set_kbd_mode(vc->kbd_table,
>> + set_kbd_mode(&vc->kbd_table,
>> VC_CKMODE);
>
>> -static inline int get_kbd_mode(struct kbd_struct kbd, int flag)
>> +static inline int get_kbd_mode(struct kbd_struct * kbd, int flag)
>> {
>> - return ((kbd.modeflags >> flag) & 1);
>> + return ((kbd->modeflags >> flag) & 1);
>> }
>
>This is a performance killer. That was mistake in the 2.4.X tree. I can
>reverse that.
???????????????????????????????????????????????????????????????????????????
static inline void set_kbd_mode(struct kbd_struct kbd, int flag)
{
kbd.modeflags |= 1 << flag;
}
???????????????????????????????????????????????????????????????????????????
IMHO this piece of code should not contain any program under any platform.
i allways wondering how You can do so great, big work without PC. Do You
work for
Pentagon, hangar 18, floor -24 ? %-)
Aivils Stoss
|