From owner-cvs-src@FreeBSD.ORG Fri Apr 4 22:54:36 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9CCF037B404; Fri, 4 Apr 2003 22:54:36 -0800 (PST) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id B24B943FBF; Fri, 4 Apr 2003 22:54:35 -0800 (PST) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.8/8.12.3) with ESMTP id h356rHA7071003; Fri, 4 Apr 2003 23:53:17 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Fri, 04 Apr 2003 23:52:53 -0700 (MST) Message-Id: <20030404.235253.02300362.imp@bsdimp.com> To: bde@zeta.org.au From: "M. Warner Losh" In-Reply-To: <20030405160449.L37042@gamplex.bde.org> References: <20030404173635.GA22147@rot13.obsecurity.org> <20030405160449.L37042@gamplex.bde.org> X-Mailer: Mew version 2.1 on Emacs 21.2 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.org cc: kris@obsecurity.org cc: cvs-all@FreeBSD.org cc: src-committers@FreeBSD.org cc: des@ofug.org Subject: Re: cvs commit: src/sys/alpha/alpha support.s src/sys/i386/i386 identcpu.c support.s src/sys/i386/include md_var.h src/sys/i386/isa npx.c src/sys/ia64/ia64 support.s src/sys/powerpc/powerpc bcopy.c sr X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Apr 2003 06:54:37 -0000 In message: <20030405160449.L37042@gamplex.bde.org> Bruce Evans writes: : > The existence of ovbcopy()? I imagine it was just an API issue, : > someone didn't feel comfortable assuming that the kernel bcopy() : > handles overlap when the userland version doesn't. In FreeBSD : : I think the problem is more the reverse. The userland bcopy() has handled : overlap (and has been documented to do so) since at least FreeBSD-1.1. : It's hard to see how the BSD bcopy() family could work if bcopy() didn't : handle overlap, since this family has no other member corresponding to : Standard C's memmove(). Actually ovbcopy was introduced in some of the Sys V or Sys III ports when people found they could (or thought they could) write 'memcpy' faster than 'memmove' and it matter enough to go through their source code trees and hack the overlap cases to deal with ovbcopy. In BSD land bcopy has always ment what we spell these days as 'memmove'. In the middle 1980's there was a lot of ifdefs to deal with all this madness, and I think only IRIX and/or HP-UX were the only machines that changed the API of bcopy to mean 'memcpy' and had ovbopy for the overlapping cases, but I couldn't find anything in my ancient collection of unix books tonight to back up my vague memory. Warner