Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Nov 2005 16:38:07 -0500
From:      Charles Swiger <cswiger@mac.com>
To:        Scott Long <scottl@samsco.org>
Cc:        current@freebsd.org
Subject:   Re: Generic Kernel API
Message-ID:  <CA0AED8E-DD70-4F6D-9F04-F9D7F0FCFA08@mac.com>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA0AED8E-DD70-4F6D-9F04-F9D7F0FCFA08>