|
From: James S. <jsi...@in...> - 2003-09-12 19:09:35
|
> Hi, all! > Updates may reach public CVS 13-SEP-2003 11:00GMT. > multiple current tty, variable count of VC per VT, fix screenbuf kmalloced, > dummy console configurable, fix dead code. > redundant consoles will be ignored. > > BROKEN: MDA console, fb_con. MDA should be easy to fix. Fbcon needs alot of work. > Power management of console lead oops - commented out. Yeap. I haven't figured out what the author of that code wanted to do. > UNKNOWN: PC mainboard speaker and keyboard beeper. Shoudl work. I managed to get the speaker from oopings. Now it just doesn't work :-/ > 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? Now what would be useful is controlling the number of VTs created. 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. > xf86 /proc filter in the kernel to allow newbies start ruby for X. > If James agree, then made snapshot for 2.6.0 release available > into sf.net download. > @@ -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. I assume you are doing this so you can more than one dummycon registered correct? > +++ 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. |