From owner-freebsd-current@FreeBSD.ORG Wed Nov 9 21:38:17 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1462E16A41F for ; Wed, 9 Nov 2005 21:38:17 +0000 (GMT) (envelope-from cswiger@mac.com) Received: from pi.codefab.com (pi.codefab.com [199.103.21.227]) by mx1.FreeBSD.org (Postfix) with ESMTP id 61F9A43D53 for ; Wed, 9 Nov 2005 21:38:10 +0000 (GMT) (envelope-from cswiger@mac.com) Received: from localhost (localhost [127.0.0.1]) by pi.codefab.com (Postfix) with ESMTP id C306B5F4A; Wed, 9 Nov 2005 16:38:09 -0500 (EST) Received: from pi.codefab.com ([127.0.0.1]) by localhost (pi.codefab.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 34875-10; Wed, 9 Nov 2005 16:38:08 -0500 (EST) Received: from [199.103.21.238] (pan.codefab.com [199.103.21.238]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by pi.codefab.com (Postfix) with ESMTP id CBD585F38; Wed, 9 Nov 2005 16:38:08 -0500 (EST) In-Reply-To: <43724D29.906@samsco.org> References: <20051108232855.2d1b7df5.lists@yazzy.org> <437145DF.2040508@samsco.org> <20051109093552.3082c51b.lists@yazzy.org> <43724D29.906@samsco.org> Mime-Version: 1.0 (Apple Message framework v746.2) Content-Type: text/plain; charset=WINDOWS-1252; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: quoted-printable From: Charles Swiger Date: Wed, 9 Nov 2005 16:38:07 -0500 To: Scott Long X-Mailer: Apple Mail (2.746.2) X-Virus-Scanned: amavisd-new at codefab.com Cc: current@freebsd.org Subject: Re: Generic Kernel API X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Nov 2005 21:38:17 -0000 On Nov 9, 2005, at 2:25 PM, Scott Long wrote: > Where this breaks down is in moving from 6.x to 7.0. We make no > guarantees there for binary or source compatiblity. Apple is =20 > trying to > address with problem with KPI's. There are obvious advantages to =20 > this, > but the cost is quite high. It took them a number of years to go > through the system and essentially re-write most of it. And it's =20 > still > really only a theory; porting from 10.3 to 10.4 is hard because you > have to adopt the KPIs in your code, and no one has seen 10.5 yet to > decide if the KPI is really the same there. That's not entirely true: I've been able to use third-party USB =20 drivers from 10.2 and 10.3 under 10.4. You do not have to adopt KPIs =20= if your 10.3 driver code was using pure IOKit mechanisms, because =20 Apple has provided backwards compatibility for such older driver =20 binaries. =46rom (long link, may get split): http://developer.apple.com/documentation/Darwin/Conceptual/=20 KEXTConcept/KEXTConceptDependencies/kext_dependencies.html "Declare dependencies on the kernel subcomponents available in =20 earlier versions of Mac OS X. This method provides backward =20 compatibility for pure I/O Kit KEXTs, but some Mach and BSD symbols =20 are no longer available. When you use this method, use the version of =20= the kernel subcomponent that corresponds to the earliest version of =20 Mac OS X you need to support (see the tables in =93Declaring =20 Dependencies on Kernel Subcomponents=94 for these values). This method is suitable for pure I/O Kit KEXTs that must run in =20 versions of Mac OS X prior to Mac OS X v10.4." Apple's included version tables for com.apple.kernel.libkern, =20 com.apple.kernel.iokit, and so forth from MacOS X 10.0 onwards later =20 on that page. --=20 -Chuck