Re: [PATCH] vt: make the default cursor shape configurable

From: Clemens Ladisch
Date: Wed Nov 11 2009 - 01:57:16 EST


Andrew Morton wrote:
> Pavel Machek <pavel@xxxxxx> wrote:
> > On Mon 2009-11-09 23:09:44, Daniel Mack wrote:
> > > On Tue, Nov 10, 2009 at 04:28:03AM +1030, David Newall wrote:
> > > > Daniel Mack wrote:
> > > > > And even if the cursor behaviour is changable at runtime, I don't see
> > > > > why it shouldn't have a selectable compile time default. Which is what
> > > > > the patch adds.
> > > >
> > > > It seems like adding cruft to the kernel that is just as effectively
> > > > available at run-time. Where does it end? Do we eventually add bash to
> > > > the kernel?
> > >
> > > One more thing:
> > >
> > > Clemens' last patch didn't add anything to the kernel's binary size.
> > > It didn't slow down anything either, as there is no run-time condition
> > > evaluation. It just makes something configurable which was hard
> > > coded before. So where's the cruft?
> >
> > The number of configs to test just got bigger. 100% bigger in
> > fact. Every single developer will have to answer 'do you want blinking
> > cursor?' when your patch is merged.
> >
> > config options _are_ expensive.
>
> Plus it's nice not to have to rebuild and reinstall the kernel to flip
> a single bit...
>
> The module_param() approach seems OK to me.

[PATCH] vt: make the default cursor shape configurable

Make the default console cursor type configurable rather than
hard-coding it.

Signed-off-by: Clemens Ladisch <clemens@xxxxxxxxxx>

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 9107b38..750a42f 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2704,6 +2704,11 @@ and is between 256 and 4096 characters. It is defined in the file
vmpoff= [KNL,S390] Perform z/VM CP command after power off.
Format: <command>

+ vt.cur_default= [VT] Default cursor shape.
+ Format: 0xCCBBAA, where AA, BB, and CC are the same as
+ the parameters of the <Esc>[?A;B;Cc escape sequence;
+ see VGA-softcursor.txt. Default: 2 = underline.
+
vt.default_blu= [VT]
Format: <blue0>,<blue1>,<blue2>,...,<blue15>
Change the default blue palette of the console.
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 0c80c68..21dd136 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -162,6 +162,9 @@ static int printable; /* Is console ready for printing? */
int default_utf8 = true;
module_param(default_utf8, int, S_IRUGO | S_IWUSR);

+static int cur_default = CUR_DEFAULT;
+module_param(cur_default, int, S_IRUGO | S_IWUSR);
+
/*
* ignore_poke: don't unblank the screen when things are typed. This is
* mainly for the privacy of braille terminal users.
@@ -1630,7 +1633,7 @@ static void reset_terminal(struct vc_data *vc, int do_clear)
/* do not do set_leds here because this causes an endless tasklet loop
when the keyboard hasn't been initialized yet */

- vc->vc_cursor_type = CUR_DEFAULT;
+ vc->vc_cursor_type = cur_default;
vc->vc_complement_mask = vc->vc_s_complement_mask;

default_attr(vc);
@@ -1832,7 +1835,7 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, int c)
if (vc->vc_par[0])
vc->vc_cursor_type = vc->vc_par[0] | (vc->vc_par[1] << 8) | (vc->vc_par[2] << 16);
else
- vc->vc_cursor_type = CUR_DEFAULT;
+ vc->vc_cursor_type = cur_default;
return;
}
break;
--
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/