Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Feb 2023 07:42:20 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        imp@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: c51978f4b2f0 - main - kbd: add KBD_DELAY1 and KBD_DELAY2
Message-ID:  <CANCZdfp0UnZ_nZN5%2B_1qqFewxWGK%2BFCa0GfTJ91egs9BJi8yHw@mail.gmail.com>
In-Reply-To: <5BEC0410-DBAA-4CBF-8BDB-5C317AD2A094@yahoo.com>
References:  <66452C86-02AA-4604-B65C-5E32EEBAFCC3.ref@yahoo.com> <66452C86-02AA-4604-B65C-5E32EEBAFCC3@yahoo.com> <CANCZdfqKfAT84iKXctXbMsg6W75-95G=em0qR-0wLSWAHyMPgA@mail.gmail.com> <5BEC0410-DBAA-4CBF-8BDB-5C317AD2A094@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Sun, Feb 26, 2023 at 9:12 PM Mark Millard <marklmi@yahoo.com> wrote:

> On Feb 26, 2023, at 19:33, Warner Losh <imp@bsdimp.com> wrote:
>
> > On Sat, Feb 25, 2023 at 10:03 AM Mark Millard <marklmi@yahoo.com> wrote:
> > Warner Losh <imp_at_FreeBSD.org> wrote on
> > Date: Sat, 25 Feb 2023 06:26:00 UTC :
> >
> > > The branch main has been updated by imp:
> > >
> > > URL:
> https://cgit.FreeBSD.org/src/commit/?id=c51978f4b2f080c80ddc891c24b151d35acb8ba4
> > >
> > > commit c51978f4b2f080c80ddc891c24b151d35acb8ba4
> > > Author:     Michael Paepcke <git@paepcke.de>
> > > AuthorDate: 2023-02-18 09:11:37 +0000
> > > Commit:     Warner Losh <imp@FreeBSD.org>
> > > CommitDate: 2023-02-25 06:19:05 +0000
> > >
> > >     kbd: add KBD_DELAY1 and KBD_DELAY2
> > >
> > >     Allow to configure KBD_DELAY* via KERNCONF for user-land less
> embedded
> > >     and security appliances
> > >
> > >     Reviewed by: imp (folded)
> > >     Pull Request: https://github.com/freebsd/freebsd-src/pull/649
> > > ---
> > >  sys/conf/options     | 3 ++-
> > >  sys/dev/kbd/kbd.c    | 4 ++--
> > >  sys/dev/kbd/kbdreg.h | 8 ++++++--
> > >  3 files changed, 10 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/sys/conf/options b/sys/conf/options
> > > index 7855a2f3f20e..42529a90a54e 100644
> > > --- a/sys/conf/options
> > > +++ b/sys/conf/options
> > > @@ -803,8 +803,9 @@ KBD_INSTALL_CDEV  opt_kbd.h
> > >  KBD_MAXRETRY         opt_kbd.h
> > >  KBD_MAXWAIT          opt_kbd.h
> > >  KBD_RESETDELAY               opt_kbd.h
> > > +KBD_DELAY1           opt_kbd.h
> > > +KBD_DELAY2           opt_kbd.h
> > >  KBDIO_DEBUG          opt_kbd.h
> > > -
> > >  KBDMUX_DFLT_KEYMAP   opt_kbdmux.h
> > >
> > >  # options for the Atheros driver
> > > diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c
> > > index 205d76639e0f..ebc779de4073 100644
> > > --- a/sys/dev/kbd/kbd.c
> > > +++ b/sys/dev/kbd/kbd.c
> > > @@ -143,8 +143,8 @@ kbd_init_struct(keyboard_t *kbd, char *name, int
> type, int unit, int config,
> > >       kbd->kb_accentmap = NULL;
> > >       kbd->kb_fkeytab = NULL;
> > >       kbd->kb_fkeytab_size = 0;
> > > -     kbd->kb_delay1 = KB_DELAY1;     /* these values are advisory
> only */
> > > -     kbd->kb_delay2 = KB_DELAY2;
> > > +     kbd->kb_delay1 = KBD_DELAY1;    /* these values are advisory
> only */
> > > +     kbd->kb_delay2 = KBD_DELAY2;
> > >       kbd->kb_count = 0L;
> > >       bzero(kbd->kb_lastact, sizeof(kbd->kb_lastact));
> > >  }
> > > diff --git a/sys/dev/kbd/kbdreg.h b/sys/dev/kbd/kbdreg.h
> > > index 15b7e5183f35..2839e259420d 100644
> > > --- a/sys/dev/kbd/kbdreg.h
> > > +++ b/sys/dev/kbd/kbdreg.h
> > > @@ -151,8 +151,12 @@ struct keyboard {
> > >       void            *kb_data;       /* the driver's private data */
> > >       int             kb_delay1;
> > >       int             kb_delay2;
> > > -#define KB_DELAY1    500
> > > -#define KB_DELAY2    100
> > > +#ifndef KBD_DELAY1
> > > +#define KBD_DELAY1   500
> > > +#endif
> > > +#ifndef KBD_DELAY2
> > > +#define KBD_DELAY2   100
> > > +#endif
> >
> > [Just reporting Ximalas's Discord note.]
> >
> > So opt_kbd.h must be included before kbdreg.h in
> > order to avoid: macro redefined in opt_kbd.h ?
> >
> > Should something force the right order?
> >
> > If we include them in the wrong order, then the compiler will complain,
> > and that's likely sufficient. I'll double check NOTES to make sure that
> the
> > values there are different than the defaults.
>
> The report on Discord (Kernel) was that the attempted use
> resulted in:
>
> --- psm.o ---
> In file included from /usr/src/sys/dev/atkbdc/psm.c:100:
> In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:
> ./opt_kbd.h:1:9: error: 'KBD_DELAY1' macro redefined
> [-Werror,-Wmacro-redefined]
> #define KBD_DELAY1 200
>         ^
> /usr/src/sys/dev/kbd/kbdreg.h:155:9: note: previous definition is here
> #define KBD_DELAY1      500
>         ^
> In file included from /usr/src/sys/dev/atkbdc/psm.c:100:
> In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:
> ./opt_kbd.h:3:9: error: 'KBD_DELAY2' macro redefined
> [-Werror,-Wmacro-redefined]
> #define KBD_DELAY2 15
>         ^
> /usr/src/sys/dev/kbd/kbdreg.h:158:9: note: previous definition is here
> #define KBD_DELAY2      100
>         ^
> 2 errors generated.
> *** [psm.o] Error code 1
>
>
> The reported workaround was:
>
> diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c
> index a308cc81cd3a..86560f7bc2dd 100644
> --- a/sys/dev/atkbdc/psm.c
> +++ b/sys/dev/atkbdc/psm.c
> @@ -62,6 +62,7 @@
> __FBSDID("$FreeBSD$");
>
> #include "opt_isa.h"
> +#include "opt_kbd.h"
> #include "opt_psm.h"
> #include "opt_evdev.h"
>

That works around it. We include opt_kbd.h from atkbdcreg.h, which is a bit
odd (but it's a kernel-only,
so I moved it). And kbdreg.h is also kernel only, so I added it there
instead. That's likely safer and
I should likely have listened a bit better when you asked about it
before...  And not committed to LINT
from machine A when I test compiled it on machine B by mistake <doh>.

Warner


> > Warner
> >  >       unsigned long   kb_count;       /* # of processed key strokes */
> > >       u_char          kb_lastact[NUM_KEYS/2];
> > >       struct cdev *kb_dev;
>
>
>
> ===
> Mark Millard
> marklmi at yahoo.com
>
>

[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 26, 2023 at 9:12 PM Mark Millard &lt;<a href="mailto:marklmi@yahoo.com">marklmi@yahoo.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Feb 26, 2023, at 19:33, Warner Losh &lt;<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a>&gt; wrote:<br>
<br>
&gt; On Sat, Feb 25, 2023 at 10:03 AM Mark Millard &lt;<a href="mailto:marklmi@yahoo.com" target="_blank">marklmi@yahoo.com</a>&gt; wrote:<br>
&gt; Warner Losh &lt;imp_at_FreeBSD.org&gt; wrote on<br>
&gt; Date: Sat, 25 Feb 2023 06:26:00 UTC :<br>
&gt; <br>
&gt; &gt; The branch main has been updated by imp:<br>
&gt; &gt; <br>
&gt; &gt; URL: <a href="https://cgit.FreeBSD.org/src/commit/?id=c51978f4b2f080c80ddc891c24b151d35acb8ba4" rel="noreferrer" target="_blank">https://cgit.FreeBSD.org/src/commit/?id=c51978f4b2f080c80ddc891c24b151d35acb8ba4</a><br>;
&gt; &gt; <br>
&gt; &gt; commit c51978f4b2f080c80ddc891c24b151d35acb8ba4<br>
&gt; &gt; Author:     Michael Paepcke &lt;<a href="mailto:git@paepcke.de" target="_blank">git@paepcke.de</a>&gt;<br>
&gt; &gt; AuthorDate: 2023-02-18 09:11:37 +0000<br>
&gt; &gt; Commit:     Warner Losh &lt;imp@FreeBSD.org&gt;<br>
&gt; &gt; CommitDate: 2023-02-25 06:19:05 +0000<br>
&gt; &gt; <br>
&gt; &gt;     kbd: add KBD_DELAY1 and KBD_DELAY2<br>
&gt; &gt;     <br>
&gt; &gt;     Allow to configure KBD_DELAY* via KERNCONF for user-land less embedded<br>
&gt; &gt;     and security appliances<br>
&gt; &gt;     <br>
&gt; &gt;     Reviewed by: imp (folded)<br>
&gt; &gt;     Pull Request: <a href="https://github.com/freebsd/freebsd-src/pull/649" rel="noreferrer" target="_blank">https://github.com/freebsd/freebsd-src/pull/649</a><br>;
&gt; &gt; ---<br>
&gt; &gt;  sys/conf/options     | 3 ++-<br>
&gt; &gt;  sys/dev/kbd/kbd.c    | 4 ++--<br>
&gt; &gt;  sys/dev/kbd/kbdreg.h | 8 ++++++--<br>
&gt; &gt;  3 files changed, 10 insertions(+), 5 deletions(-)<br>
&gt; &gt; <br>
&gt; &gt; diff --git a/sys/conf/options b/sys/conf/options<br>
&gt; &gt; index 7855a2f3f20e..42529a90a54e 100644<br>
&gt; &gt; --- a/sys/conf/options<br>
&gt; &gt; +++ b/sys/conf/options<br>
&gt; &gt; @@ -803,8 +803,9 @@ KBD_INSTALL_CDEV  opt_kbd.h<br>
&gt; &gt;  KBD_MAXRETRY         opt_kbd.h<br>
&gt; &gt;  KBD_MAXWAIT          opt_kbd.h<br>
&gt; &gt;  KBD_RESETDELAY               opt_kbd.h<br>
&gt; &gt; +KBD_DELAY1           opt_kbd.h<br>
&gt; &gt; +KBD_DELAY2           opt_kbd.h<br>
&gt; &gt;  KBDIO_DEBUG          opt_kbd.h<br>
&gt; &gt; -<br>
&gt; &gt;  KBDMUX_DFLT_KEYMAP   opt_kbdmux.h<br>
&gt; &gt;  <br>
&gt; &gt;  # options for the Atheros driver<br>
&gt; &gt; diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c<br>
&gt; &gt; index 205d76639e0f..ebc779de4073 100644<br>
&gt; &gt; --- a/sys/dev/kbd/kbd.c<br>
&gt; &gt; +++ b/sys/dev/kbd/kbd.c<br>
&gt; &gt; @@ -143,8 +143,8 @@ kbd_init_struct(keyboard_t *kbd, char *name, int type, int unit, int config,<br>
&gt; &gt;       kbd-&gt;kb_accentmap = NULL;<br>
&gt; &gt;       kbd-&gt;kb_fkeytab = NULL;<br>
&gt; &gt;       kbd-&gt;kb_fkeytab_size = 0;<br>
&gt; &gt; -     kbd-&gt;kb_delay1 = KB_DELAY1;     /* these values are advisory only */<br>
&gt; &gt; -     kbd-&gt;kb_delay2 = KB_DELAY2;<br>
&gt; &gt; +     kbd-&gt;kb_delay1 = KBD_DELAY1;    /* these values are advisory only */<br>
&gt; &gt; +     kbd-&gt;kb_delay2 = KBD_DELAY2;<br>
&gt; &gt;       kbd-&gt;kb_count = 0L;<br>
&gt; &gt;       bzero(kbd-&gt;kb_lastact, sizeof(kbd-&gt;kb_lastact));<br>
&gt; &gt;  }<br>
&gt; &gt; diff --git a/sys/dev/kbd/kbdreg.h b/sys/dev/kbd/kbdreg.h<br>
&gt; &gt; index 15b7e5183f35..2839e259420d 100644<br>
&gt; &gt; --- a/sys/dev/kbd/kbdreg.h<br>
&gt; &gt; +++ b/sys/dev/kbd/kbdreg.h<br>
&gt; &gt; @@ -151,8 +151,12 @@ struct keyboard {<br>
&gt; &gt;       void            *kb_data;       /* the driver&#39;s private data */<br>
&gt; &gt;       int             kb_delay1;<br>
&gt; &gt;       int             kb_delay2;<br>
&gt; &gt; -#define KB_DELAY1    500<br>
&gt; &gt; -#define KB_DELAY2    100<br>
&gt; &gt; +#ifndef KBD_DELAY1<br>
&gt; &gt; +#define KBD_DELAY1   500<br>
&gt; &gt; +#endif<br>
&gt; &gt; +#ifndef KBD_DELAY2<br>
&gt; &gt; +#define KBD_DELAY2   100<br>
&gt; &gt; +#endif<br>
&gt; <br>
&gt; [Just reporting Ximalas&#39;s Discord note.]<br>
&gt; <br>
&gt; So opt_kbd.h must be included before kbdreg.h in<br>
&gt; order to avoid: macro redefined in opt_kbd.h ?<br>
&gt; <br>
&gt; Should something force the right order?<br>
&gt; <br>
&gt; If we include them in the wrong order, then the compiler will complain,<br>
&gt; and that&#39;s likely sufficient. I&#39;ll double check NOTES to make sure that the<br>
&gt; values there are different than the defaults.<br>
<br>
The report on Discord (Kernel) was that the attempted use<br>
resulted in:<br>
<br>
--- psm.o ---<br>
In file included from /usr/src/sys/dev/atkbdc/psm.c:100:<br>
In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:<br>
./opt_kbd.h:1:9: error: &#39;KBD_DELAY1&#39; macro redefined [-Werror,-Wmacro-redefined]<br>
#define KBD_DELAY1 200<br>
        ^<br>
/usr/src/sys/dev/kbd/kbdreg.h:155:9: note: previous definition is here<br>
#define KBD_DELAY1      500<br>
        ^<br>
In file included from /usr/src/sys/dev/atkbdc/psm.c:100:<br>
In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:<br>
./opt_kbd.h:3:9: error: &#39;KBD_DELAY2&#39; macro redefined [-Werror,-Wmacro-redefined]<br>
#define KBD_DELAY2 15<br>
        ^<br>
/usr/src/sys/dev/kbd/kbdreg.h:158:9: note: previous definition is here<br>
#define KBD_DELAY2      100<br>
        ^<br>
2 errors generated.<br>
*** [psm.o] Error code 1<br>
<br>
<br>
The reported workaround was:<br>
<br>
diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c<br>
index a308cc81cd3a..86560f7bc2dd 100644<br>
--- a/sys/dev/atkbdc/psm.c<br>
+++ b/sys/dev/atkbdc/psm.c<br>
@@ -62,6 +62,7 @@<br>
__FBSDID(&quot;$FreeBSD$&quot;);<br>
<br>
#include &quot;opt_isa.h&quot;<br>
+#include &quot;opt_kbd.h&quot;<br>
#include &quot;opt_psm.h&quot;<br>
#include &quot;opt_evdev.h&quot;<br></blockquote><div><br></div><div>That works around it. We include opt_kbd.h from atkbdcreg.h, which is a bit odd (but it&#39;s a kernel-only,</div><div>so I moved it). And kbdreg.h is also kernel only, so I added it there instead. That&#39;s likely safer and</div><div>I should likely have listened a bit better when you asked about it before...  And not committed to LINT</div><div>from machine A when I test compiled it on machine B by mistake &lt;doh&gt;.<br></div><div><br></div><div>Warner<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; Warner<br>
&gt;  &gt;       unsigned long   kb_count;       /* # of processed key strokes */<br>
&gt; &gt;       u_char          kb_lastact[NUM_KEYS/2];<br>
&gt; &gt;       struct cdev *kb_dev;<br>
<br>
<br>
<br>
===<br>
Mark Millard<br>
marklmi at <a href="http://yahoo.com" rel="noreferrer" target="_blank">yahoo.com</a><br>
<br>
</blockquote></div></div>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfp0UnZ_nZN5%2B_1qqFewxWGK%2BFCa0GfTJ91egs9BJi8yHw>