cvs commit: src/sys/i386/include/pc bios.h src/sys/i386/i386
bios.c
Nate Lawson
nate at root.org
Thu Jun 3 23:06:50 GMT 2004
On Thu, 3 Jun 2004, Poul-Henning Kamp wrote:
> phk 2004/06/03 15:36:24 PDT
>
> FreeBSD src repository
>
> Modified files:
> sys/i386/include/pc bios.h
> sys/i386/i386 bios.c
> Log:
> Add new bios_string() which will hunt for a string inside a given range
> of the BIOS. This can be used for finding arbitrary magic in the BIOS
> in order to recognize particular platforms.
>
> Revision Changes Path
> 1.66 +15 -0 src/sys/i386/i386/bios.c
> 1.15 +8 -0 src/sys/i386/include/pc/bios.h
>
> --- src/sys/i386/i386/bios.c:1.65 Sun May 30 10:57:42 2004
> +++ src/sys/i386/i386/bios.c Thu Jun 3 15:36:24 2004
> @@ -472,6 +472,21 @@
> free(pte, M_TEMP); /* ... and free it */
> }
> return (i);
> +}
> +
> +const u_char *
> +bios_string(u_int from, u_int to, const u_char *string, int len)
> +{
> + const char *t, *te;
> +
> + if (len == 0)
> + len = strlen(string);
> + t = (const char *)(KERNBASE + from);
> + te = (const char *)(KERNBASE + to);
> + for (; t <= te; t++)
> + if (!memcmp(string, t, len))
> + return (t);
> + return (NULL);
> }
Many BIOS strings have alignment requirements. That might be useful to
add. Is all of BIOS mapped into kernel memory or should this operate on
physical addresses instead?
-Nate
More information about the cvs-src
mailing list