Generic Kernel API
Charles Swiger
cswiger at mac.com
Wed Nov 9 13:38:17 PST 2005
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
> trying to
> address with problem with KPI's. There are obvious advantages to
> 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
> 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
drivers from 10.2 and 10.3 under 10.4. You do not have to adopt KPIs
if your 10.3 driver code was using pure IOKit mechanisms, because
Apple has provided backwards compatibility for such older driver
binaries. From (long link, may get split):
http://developer.apple.com/documentation/Darwin/Conceptual/
KEXTConcept/KEXTConceptDependencies/kext_dependencies.html
"Declare dependencies on the kernel subcomponents available in
earlier versions of Mac OS X. This method provides backward
compatibility for pure I/O Kit KEXTs, but some Mach and BSD symbols
are no longer available. When you use this method, use the version of
the kernel subcomponent that corresponds to the earliest version of
Mac OS X you need to support (see the tables in “Declaring
Dependencies on Kernel Subcomponents” for these values).
This method is suitable for pure I/O Kit KEXTs that must run in
versions of Mac OS X prior to Mac OS X v10.4."
Apple's included version tables for com.apple.kernel.libkern,
com.apple.kernel.iokit, and so forth from MacOS X 10.0 onwards later
on that page.
--
-Chuck
More information about the freebsd-current
mailing list