I tried editing the header but it seems that the prototype has changed from
U IOUserClient::setAsyncReference(unsigned*, unsigned, void*, void*)
to
U IOUserClient::registerNotificationPort(ipc_port*, unsigned long, unsigned
long)
and I don't know where the definition for ipc_port is to be found ...
upon further examination it seems like mach_port_t has been replaced by
ipc_port_t in multiple places
U IODataQueue::setNotificationPort(ipc_port*)
U IOUserClient::setAsyncReference(unsigned*, ipc_port*, void*,
void*)
U IOUserClient::registerNotificationPort(ipc_port*, unsigned long,
unsigned long)
U IOServiceUserNotification::init(ipc_port*, unsigned, unsigned*)
U IOServiceMessageUserNotification::init(ipc_port*, unsigned,
unsigned*, unsigned)
but the header files haven't been updated to reflect this...
so its not clear to me how i should modify the header files in order to make
this work... any suggestions ? is there some hope of this being fixed soon ?
thanks
-rimas
* Subject: Re: problem with kext compiled under tiger...
* From: Mike Smith
Edit your copy of the header to contain the correct prototype for the method.
= Mike
On Jun 16, 2005, at 3:37 PM, rimas wrote:
are you aware of a workaround ?
On Wed, 15 Jun 2005 16:46:20 -0700
Kris Daniel <email@hidden> wrote:
We just ran into the same problem while at WWDC. If you use the
command:
nm /System/Library/Extensions/System.kext/Plugins/IOKit.kext/IOKit | grep
UserClient17setAsync | c++filt
you'll get the results:
U IOUserClient::setAsyncReference(unsigned int*, ipc_port*,
void*, void*)
Speaking with one of the IOKit team, it seems that the header
file in the framework does not match the symbol exposed in the kernel. So,
although the function prototype actually did change, we didn't get updated
headers.
I haven't entered a Radar bug on this yet, namely because we
told the IOKit team member. It wouldn't hurt to enter a bug, just so they
have something to track.
Kris Daniel
Line 6, Inc.
On Jun 15, 2005, at 10:30 AM, rimas wrote:
i recently recompiled my KEXT on a machine running Tiger. When I
try to kextload it I get the following error message:
doing an nm /System/Library/Extensions/System.kext/Plugins/
IOKit.kext/IOKit | grep UserClient17setAsync
i see
U __ZN12IOUserClient17setAsyncReferenceEPjP8ipc_portPvS3_
so it looks like the arguments to the function have changed or
something ? (sorry i'm not exactly sure how to interpret the
alphanumeric characters after the function name). The prototype in
IOUserClient.h doesn't seem to have changed...