Date: Fri, 04 Jun 2004 09:27:24 +0800 From: David Xu <davidxu@freebsd.org> To: Nate Lawson <nate@root.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/i386/include/pc bios.h src/sys/i386/i386 bios.c Message-ID: <40BFCFFC.5040701@freebsd.org> In-Reply-To: <20040603160405.E45592@root.org> References: <20040603160405.E45592@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Nate Lawson wrote: > 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 > > First 4M bytes are mapped at KERNBASE, right ? I saw KERNLOAD is 4M bytes, and from page 1 to KERNLOAD are mapped read-only, zero page is mapped R/W, all in locore.s. David Xu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40BFCFFC.5040701>