Date: Fri, 4 Jun 2004 17:38:13 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> 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: <20040604172728.X33153@gamplex.bde.org> In-Reply-To: <20040603160405.E45592@root.org> References: <20040603223638.2187316A54D@hub.freebsd.org> <20040603160405.E45592@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 3 Jun 2004, Nate Lawson wrote: > On Thu, 3 Jun 2004, Poul-Henning Kamp wrote: > > phk 2004/06/03 15:36:24 PDT > > ... > > +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); > > } This has some style bugs: - dubious types for `from' and `to', Should probably be vm_offset_t. - wrong type for `len'. Should be size_t. - memcmp() should not be used in the kernel. It doesn't exist in some of my kernels. In -current, it is just a just a broken wrapper for bcmp() in the kernel. (memcmp() cannot be implemented using just bcmp(), since bcmp() returns a 2-state value while memcmp() returns a 3-state value.) - boolean comparison for the non-boolean value that should be returned by memcmp(). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040604172728.X33153>