Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console
In directory sc8-pr-cvs1:/tmp/cvs-serv26271/ruby-2.6/drivers/video/console
Modified Files:
dummycon.c vgacon.c
Log Message:
multiple current tty, variable count of VC per VT, fix screenbuf kmalloced, dummy console configurable, fix dead code.
Index: dummycon.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console/dummycon.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- dummycon.c 11 Aug 2003 16:26:46 -0000 1.1
+++ dummycon.c 12 Sep 2003 08:33:21 -0000 1.2
@@ -28,13 +28,18 @@
#define DUMMY_COLUMNS 80
#define DUMMY_ROWS 25
#endif
+#define MAX_DUMB_CONSOLES 16
+static unsigned long dumb_num = 0;
+static unsigned long dumb_vc_count = 0;
static struct vt_struct dummy_vt;
static struct vc_data default_mode;
static const char *dummycon_startup(struct vt_struct *vt, int init)
{
- vt->default_mode = &default_mode;
+ vt->default_mode = &default_mode;
+ vt->default_mode->vc_cols = DUMMY_COLUMNS;
+ vt->default_mode->vc_rows = DUMMY_ROWS;
return "dummy device";
}
@@ -83,13 +88,56 @@
const char *display_desc = NULL;
memset(&dummy_vt, 0, sizeof(struct vt_struct));
- dummy_vt.kmalloced = 0;
- dummy_vt.vt_sw = &dummy_con;
- display_desc = vt_map_display(&dummy_vt, 1);
+ dummy_vt.vt_kmalloced = 0;
+ dummy_vt.vt_sw = &dummy_con;
+ display_desc = vt_map_display(&dummy_vt, 1, MAX_NR_USER_CONSOLES);
if (!display_desc) return -ENODEV;
- printk("Console: mono %s %dx%d\n", display_desc,
+ printk("Console: mono %s %dx%d vc:%d-%d\n", display_desc,
dummy_vt.default_mode->vc_cols,
- dummy_vt.default_mode->vc_rows);
+ dummy_vt.default_mode->vc_rows,
+ dummy_vt.first_vc, dummy_vt.first_vc + dummy_vt.vc_count - 1);
return 0;
}
+int dumbcon_add(void)
+{
+ const char *display_desc = NULL;
+ struct vt_struct *vt;
+
+ vt = (struct vt_struct *) kmalloc(sizeof(struct vt_struct),GFP_KERNEL);
+
+ if (!vt) return -ENOMEM;
+
+ memset(vt, 0, sizeof(struct vt_struct));
+ vt->vt_kmalloced = 1;
+ vt->vt_sw = &dummy_con;
+ display_desc = vt_map_display(vt, 1, MAX_NR_USER_CONSOLES);
+ if (!display_desc) {
+ kfree(vt);
+ return -ENODEV;
+ }
+ printk("Console: mono %s %dx%d vc:%d-%d\n", display_desc,
+ vt->default_mode->vc_cols,
+ vt->default_mode->vc_rows,
+ vt->first_vc, vt->first_vc + vt->vc_count - 1);
+ return 0;
+}
+
+int __init dumb_console_init(void)
+{
+ unsigned long i;
+ for(i=0; i<dumb_num && i<MAX_DUMB_CONSOLES; i++ ) {
+ if(dumbcon_add()) return 1;
+ }
+ return 0;
+}
+
+int __init dumbcon_setup(char *options)
+{
+ if (!options || !*options)
+ return 0;
+ dumb_num = simple_strtoul(options, 0, 0);
+ return 0;
+}
+
+__setup("dumbcon=", dumbcon_setup);
Index: vgacon.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console/vgacon.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- vgacon.c 11 Aug 2003 16:26:46 -0000 1.1
+++ vgacon.c 12 Sep 2003 08:33:21 -0000 1.2
@@ -830,7 +830,7 @@
int i;
/* attribute controller */
- for (i = 0; i < MAX_NR_USER_CONSOLES; i++) {
+ for (i = 0; i < vga_vt.vc_count; i++) {
struct vc_data *vc = vga_vt.vc_cons[i];
if (vc)
@@ -898,11 +898,13 @@
outb_p(vde, vga_video_port_val);
spin_unlock_irq(&vga_lock);
- 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];
- if (tmp)
+ if (tmp) {
+ tmp->vc_font.height = fontheight;
vc_resize(tmp, 0, rows); /* Adjust console size */
+ }
}
return 0;
}
@@ -1089,14 +1091,15 @@
const char *display_desc = NULL;
memset(&vga_vt, 0, sizeof(struct vt_struct));
- vga_vt.kmalloced = 0;
+ vga_vt.vt_kmalloced = 0;
vga_vt.vt_sw = &vga_con;
- display_desc = vt_map_display(&vga_vt, 1);
+ display_desc = vt_map_display(&vga_vt, 1, MAX_NR_USER_CONSOLES);
if (!display_desc) return -ENODEV;
- printk("Console: %s %s %dx%d\n",
+ printk("Console: %s %s %dx%d vc:%d-%d\n",
vga_vt.default_mode->vc_can_do_color ? "Colour" : "Mono",
display_desc, vga_vt.default_mode->vc_cols,
- vga_vt.default_mode->vc_rows);
+ vga_vt.default_mode->vc_rows,
+ vga_vt.first_vc, vga_vt.first_vc + vga_vt.vc_count - 1);
return 0;
}
|