Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Sep 2022 12:39:35 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        =?UTF-8?Q?T=C4=B3l_Coosemans?= <tijl@freebsd.org>
Cc:        Warner Losh <imp@freebsd.org>, src-committers <src-committers@freebsd.org>,  "<dev-commits-src-all@freebsd.org>" <dev-commits-src-all@freebsd.org>, dev-commits-src-main@freebsd.org
Subject:   Re: git: 9758dd3de1cd - main - stand: Allocate bootinfo rather than have it be static
Message-ID:  <CANCZdfq=0sMgy%2B=O=64QywMwP=4v9B5ZXmNOc_9ZHyN66=GZSw@mail.gmail.com>
In-Reply-To: <20220917190108.2b56bb39@FreeBSD.org>
References:  <202209161554.28GFs4aA086609@gitrepo.freebsd.org> <20220917190108.2b56bb39@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--0000000000008daaae05e8e3cd10
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Sep 17, 2022, 11:01 AM T=C4=B3l Coosemans <tijl@freebsd.org> wrote:

> On Fri, 16 Sep 2022 15:54:04 GMT Warner Losh <imp@FreeBSD.org> wrote:
> > The branch main has been updated by imp:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=3D9758dd3de1cddc8271be8dd6fee6928=
6c5c86535
> >
> > commit 9758dd3de1cddc8271be8dd6fee69286c5c86535
> > Author:     Warner Losh <imp@FreeBSD.org>
> > AuthorDate: 2022-09-16 15:09:41 +0000
> > Commit:     Warner Losh <imp@FreeBSD.org>
> > CommitDate: 2022-09-16 15:18:57 +0000
> >
> >     stand: Allocate bootinfo rather than have it be static
> >
> >     This saves 80 bytes (the new bootinfo structure was 84 bytes, and a
> >     pointer is 4 bytes). The bi_load32 code is the same size.
> >
> >     Sponsored by:           Netflix
> >     Reviewed by:            tsoome
> >     Differential Revision:  https://reviews.freebsd.org/D36575
> > ---
> >  stand/i386/libi386/bootinfo32.c | 29 +++++++++++++++--------------
> >  1 file changed, 15 insertions(+), 14 deletions(-)
> >
> > diff --git a/stand/i386/libi386/bootinfo32.c
> b/stand/i386/libi386/bootinfo32.c
> > index 372bced917d6..37a797289f2b 100644
> > --- a/stand/i386/libi386/bootinfo32.c
> > +++ b/stand/i386/libi386/bootinfo32.c
> > @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$");
> >  #include "geliboot.h"
> >  #endif
> >
> > -static struct bootinfo  bi;
> > +static struct bootinfo  *bi;
> >
> >  /*
> >   * Load the information expected by an i386 kernel.
> > @@ -91,11 +91,12 @@ bi_load32(char *args, int *howtop, int *bootdevp,
> vm_offset_t *bip, vm_offset_t
> >      /* XXX - use a default bootdev of 0.  Is this ok??? */
> >      bootdevnr =3D 0;
> >
> > +    bi =3D calloc(sizeof(*bi), 1);
> >      switch(rootdev->dd.d_dev->dv_type) {
> >      case DEVT_CD:
> >      case DEVT_DISK:
> >       /* pass in the BIOS device number of the current disk */
> > -     bi.bi_bios_dev =3D bd_unit2bios(rootdev);
> > +     bi->bi_bios_dev =3D bd_unit2bios(rootdev);
> >       bootdevnr =3D bd_getdev(rootdev);
> >       break;
> >
> > @@ -172,22 +173,22 @@ bi_load32(char *args, int *howtop, int *bootdevp,
> vm_offset_t *bip, vm_offset_t
> >      /* legacy bootinfo structure */
> >      kernelname =3D getenv("kernelname");
> >      i386_getdev(NULL, kernelname, &kernelpath);
> > -    bi.bi_version =3D BOOTINFO_VERSION;
> > -    bi.bi_size =3D sizeof(bi);
> > -    bi.bi_memsizes_valid =3D 1;
> > -    bi.bi_basemem =3D bios_basemem / 1024;
> > -    bi.bi_extmem =3D bios_extmem / 1024;
> > -    bi.bi_envp =3D envp;
> > -    bi.bi_modulep =3D *modulep;
> > -    bi.bi_kernend =3D kernend;
> > -    bi.bi_kernelname =3D VTOP(kernelpath);
> > -    bi.bi_symtab =3D ssym;       /* XXX this is only the primary kerne=
l
> symtab */
> > -    bi.bi_esymtab =3D esym;
> > +    bi->bi_version =3D BOOTINFO_VERSION;
> > +    bi->bi_size =3D sizeof(bi);
>
> sizeof(*bi) here and maybe make bi a function variable?
>

Damn. I even looked for those... :(

Warner

> +    bi->bi_memsizes_valid =3D 1;
> > +    bi->bi_basemem =3D bios_basemem / 1024;
> > +    bi->bi_extmem =3D bios_extmem / 1024;
> > +    bi->bi_envp =3D envp;
> > +    bi->bi_modulep =3D *modulep;
> > +    bi->bi_kernend =3D kernend;
> > +    bi->bi_kernelname =3D VTOP(kernelpath);
> > +    bi->bi_symtab =3D ssym;       /* XXX this is only the primary kern=
el
> symtab */
> > +    bi->bi_esymtab =3D esym;
> >
> >      /* legacy boot arguments */
> >      *howtop =3D howto | RB_BOOTINFO;
> >      *bootdevp =3D bootdevnr;
> > -    *bip =3D VTOP(&bi);
> > +    *bip =3D VTOP(bi);
> >
> >      return(0);
> >  }
>
>

--0000000000008daaae05e8e3cd10
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Sat, Sep 17, 2022, 11:01 AM T=C4=B3l Coosemans &lt;=
<a href=3D"mailto:tijl@freebsd.org">tijl@freebsd.org</a>&gt; wrote:<br></di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:=
1px #ccc solid;padding-left:1ex">On Fri, 16 Sep 2022 15:54:04 GMT Warner Lo=
sh &lt;imp@FreeBSD.org&gt; wrote:<br>
&gt; The branch main has been updated by imp:<br>
&gt; <br>
&gt; URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D9758dd3de1cd=
dc8271be8dd6fee69286c5c86535" rel=3D"noreferrer noreferrer" target=3D"_blan=
k">https://cgit.FreeBSD.org/src/commit/?id=3D9758dd3de1cddc8271be8dd6fee692=
86c5c86535</a><br>
&gt; <br>
&gt; commit 9758dd3de1cddc8271be8dd6fee69286c5c86535<br>
&gt; Author:=C2=A0 =C2=A0 =C2=A0Warner Losh &lt;imp@FreeBSD.org&gt;<br>
&gt; AuthorDate: 2022-09-16 15:09:41 +0000<br>
&gt; Commit:=C2=A0 =C2=A0 =C2=A0Warner Losh &lt;imp@FreeBSD.org&gt;<br>
&gt; CommitDate: 2022-09-16 15:18:57 +0000<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0stand: Allocate bootinfo rather than have it be sta=
tic<br>
&gt;=C2=A0 =C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0This saves 80 bytes (the new bootinfo structure was=
 84 bytes, and a<br>
&gt;=C2=A0 =C2=A0 =C2=A0pointer is 4 bytes). The bi_load32 code is the same=
 size.<br>
&gt;=C2=A0 =C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0Sponsored by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0Netflix<br>
&gt;=C2=A0 =C2=A0 =C2=A0Reviewed by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 tsoome<br>
&gt;=C2=A0 =C2=A0 =C2=A0Differential Revision:=C2=A0 <a href=3D"https://rev=
iews.freebsd.org/D36575" rel=3D"noreferrer noreferrer" target=3D"_blank">ht=
tps://reviews.freebsd.org/D36575</a><br>
&gt; ---<br>
&gt;=C2=A0 stand/i386/libi386/bootinfo32.c | 29 +++++++++++++++------------=
--<br>
&gt;=C2=A0 1 file changed, 15 insertions(+), 14 deletions(-)<br>
&gt; <br>
&gt; diff --git a/stand/i386/libi386/bootinfo32.c b/stand/i386/libi386/boot=
info32.c<br>
&gt; index 372bced917d6..37a797289f2b 100644<br>
&gt; --- a/stand/i386/libi386/bootinfo32.c<br>
&gt; +++ b/stand/i386/libi386/bootinfo32.c<br>
&gt; @@ -42,7 +42,7 @@ __FBSDID(&quot;$FreeBSD$&quot;);<br>
&gt;=C2=A0 #include &quot;geliboot.h&quot;<br>
&gt;=C2=A0 #endif<br>
&gt;=C2=A0 <br>
&gt; -static struct bootinfo=C2=A0 bi;<br>
&gt; +static struct bootinfo=C2=A0 *bi;<br>
&gt;=C2=A0 <br>
&gt;=C2=A0 /*<br>
&gt;=C2=A0 =C2=A0* Load the information expected by an i386 kernel.<br>
&gt; @@ -91,11 +91,12 @@ bi_load32(char *args, int *howtop, int *bootdevp, =
vm_offset_t *bip, vm_offset_t<br>
&gt;=C2=A0 =C2=A0 =C2=A0 /* XXX - use a default bootdev of 0.=C2=A0 Is this=
 ok??? */<br>
&gt;=C2=A0 =C2=A0 =C2=A0 bootdevnr =3D 0;<br>
&gt;=C2=A0 <br>
&gt; +=C2=A0 =C2=A0 bi =3D calloc(sizeof(*bi), 1);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 switch(rootdev-&gt;dd.d_dev-&gt;dv_type) {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 case DEVT_CD:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 case DEVT_DISK:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0/* pass in the BIOS device number of the cur=
rent disk */<br>
&gt; -=C2=A0 =C2=A0 =C2=A0bi.bi_bios_dev =3D bd_unit2bios(rootdev);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0bi-&gt;bi_bios_dev =3D bd_unit2bios(rootdev);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bootdevnr =3D bd_getdev(rootdev);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
&gt;=C2=A0 <br>
&gt; @@ -172,22 +173,22 @@ bi_load32(char *args, int *howtop, int *bootdevp=
, vm_offset_t *bip, vm_offset_t<br>
&gt;=C2=A0 =C2=A0 =C2=A0 /* legacy bootinfo structure */<br>
&gt;=C2=A0 =C2=A0 =C2=A0 kernelname =3D getenv(&quot;kernelname&quot;);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 i386_getdev(NULL, kernelname, &amp;kernelpath);<br=
>
&gt; -=C2=A0 =C2=A0 bi.bi_version =3D BOOTINFO_VERSION;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_size =3D sizeof(bi);<br>
&gt; -=C2=A0 =C2=A0 bi.bi_memsizes_valid =3D 1;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_basemem =3D bios_basemem / 1024;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_extmem =3D bios_extmem / 1024;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_envp =3D envp;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_modulep =3D *modulep;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_kernend =3D kernend;<br>
&gt; -=C2=A0 =C2=A0 bi.bi_kernelname =3D VTOP(kernelpath);<br>
&gt; -=C2=A0 =C2=A0 bi.bi_symtab =3D ssym;=C2=A0 =C2=A0 =C2=A0 =C2=A0/* XXX=
 this is only the primary kernel symtab */<br>
&gt; -=C2=A0 =C2=A0 bi.bi_esymtab =3D esym;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_version =3D BOOTINFO_VERSION;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_size =3D sizeof(bi);<br>
<br>
sizeof(*bi) here and maybe make bi a function variable?<br></blockquote></d=
iv></div><div dir=3D"auto"><br></div><div dir=3D"auto">Damn. I even looked =
for those... :(</div><div dir=3D"auto"><br></div><div dir=3D"auto">Warner=
=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto"><div class=3D"gma=
il_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_memsizes_valid =3D 1;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_basemem =3D bios_basemem / 1024;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_extmem =3D bios_extmem / 1024;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_envp =3D envp;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_modulep =3D *modulep;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_kernend =3D kernend;<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_kernelname =3D VTOP(kernelpath);<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_symtab =3D ssym;=C2=A0 =C2=A0 =C2=A0 =C2=A0/*=
 XXX this is only the primary kernel symtab */<br>
&gt; +=C2=A0 =C2=A0 bi-&gt;bi_esymtab =3D esym;<br>
&gt;=C2=A0 <br>
&gt;=C2=A0 =C2=A0 =C2=A0 /* legacy boot arguments */<br>
&gt;=C2=A0 =C2=A0 =C2=A0 *howtop =3D howto | RB_BOOTINFO;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 *bootdevp =3D bootdevnr;<br>
&gt; -=C2=A0 =C2=A0 *bip =3D VTOP(&amp;bi);<br>
&gt; +=C2=A0 =C2=A0 *bip =3D VTOP(bi);<br>
&gt;=C2=A0 <br>
&gt;=C2=A0 =C2=A0 =C2=A0 return(0);<br>
&gt;=C2=A0 }<br>
<br>
</blockquote></div></div></div>

--0000000000008daaae05e8e3cd10--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfq=0sMgy%2B=O=64QywMwP=4v9B5ZXmNOc_9ZHyN66=GZSw>