Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Oct 2010 22:22:30 +0200
From:      Attilio Rao <attilio@freebsd.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r214457 - in head/sys: amd64/amd64 conf i386/i386 x86/x86
Message-ID:  <AANLkTi=dZK3YcgXxSKy1T24BiT5KrGjiEfRGrx3RR7MV@mail.gmail.com>
In-Reply-To: <201010281457.19804.jhb@freebsd.org>
References:  <201010281631.o9SGVdtZ014923@svn.freebsd.org> <AANLkTim_znVvoC0DVygFEu8GPOiwiuNs2fB_iMp61GpA@mail.gmail.com> <201010281411.40423.jhb@freebsd.org> <201010281457.19804.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
2010/10/28 John Baldwin <jhb@freebsd.org>:
> On Thursday, October 28, 2010 2:11:40 pm John Baldwin wrote:
>> On Thursday, October 28, 2010 1:21:34 pm Attilio Rao wrote:
>> > + =C2=A0 =C2=A0 =C2=A0 vm_paddr_t *p;
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 caddr_t kmdp;
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 uint32_t smapsize;
>> > - =C2=A0 =C2=A0 =C2=A0 int error, rid;
>> > + =C2=A0 =C2=A0 =C2=A0 int error, i, rid;
>> >
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Retrieve the system memory map from the=
 loader. */
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 kmdp =3D preload_search_by_type("elf kerne=
l");
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (kmdp =3D=3D NULL)
>> > - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 kmdp =3D preload_se=
arch_by_type("elf64 kernel");
>> > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 kmdp =3D preload_se=
arch_by_type(ELF_KERN_STR);
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 smapbase =3D (struct bios_smap *)preload_s=
earch_info(kmdp,
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 MODINFO_METADATA | MODINFOMD=
_SMAP);
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 smapsize =3D *((u_int32_t *)smapbase - 1);
>>
>> It would be nice if ELF_KERN_STR could be autogenerated as something lik=
e:
>>
>> "elf ## __ELF_WORD_SIZE ## kernel" instead of needing an #ifdef.
>
> This works in my testing:
>
> #include <sys/elf.h>
> #include <stdio.h>
>
> int
> main(void)
> {
> =C2=A0 =C2=A0 =C2=A0 =C2=A0printf("%s\n", "elf" __XSTRING(__ELF_WORD_SIZE=
) " kernel");
> =C2=A0 =C2=A0 =C2=A0 =C2=A0return (0);
> }
>

I'm not entirely sure we might use this because in general it is an
'embedded' string for the other cases, but I don't have a strong
opinion about it, so I'm fine with auto-generation.

Attilio


--=20
Peace can only be achieved by understanding - A. Einstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=dZK3YcgXxSKy1T24BiT5KrGjiEfRGrx3RR7MV>