Skip to content

Commit 5a97dff

Browse files
committed
Update ALCUserClient with MacKernelSDK IOExternalMethod changes
1 parent 4fa9897 commit 5a97dff

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

AppleALC/ALCUserClient/ALCUserClient.cpp

+11-7
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,14 @@ IOReturn ALCUserClient::externalMethod(uint32_t selector, IOExternalMethodArgume
3636
}
3737

3838
#else
39-
IOExternalMethodACID ALCUserClient::sMethodsLegacy[kNumberOfMethods] = {
39+
IOExternalMethod ALCUserClient::sMethodsLegacy[kNumberOfMethods] = {
4040
{ //kMethodExecuteVerb
4141
NULL,
42-
#if defined(__i386__)
43-
kIOExternalMethodACIDPadding,
44-
#endif
45-
(IOMethodACID) sendHdaCommandInternal,
46-
#if defined(__x86_64__)
47-
kIOExternalMethodACIDPadding,
42+
#if (defined(__i386__) && defined(__clang__))
43+
kIOExternalMethodACID32Padding,
44+
(IOMethodACID32) &ALCUserClient::sendHdaCommandInternal,
45+
#else
46+
(IOMethod) &ALCUserClient::sendHdaCommandInternal,
4847
#endif
4948
kIOUCScalarIScalarO,
5049
3,
@@ -60,8 +59,13 @@ IOExternalMethod* ALCUserClient::getTargetAndMethodForIndex(IOService **targetP,
6059
return reinterpret_cast<IOExternalMethod*>(&sMethodsLegacy[index]);
6160
}
6261

62+
#if (defined(__i386__) && defined(__clang__))
6363
IOReturn ALCUserClient::sendHdaCommandInternal(ALCUserClient *that, uint16_t nid, uint16_t verb, uint16_t param, uint64_t *outVal) {
6464
*outVal = that->mProvider->sendHdaCommand(nid, verb, param);
65+
#else
66+
IOReturn ALCUserClient::sendHdaCommandInternal(uint16_t nid, uint16_t verb, uint16_t param, uint64_t *outVal) {
67+
*outVal = mProvider->sendHdaCommand(nid, verb, param);
68+
#endif
6569
return kIOReturnSuccess;
6670
}
6771
#endif

AppleALC/ALCUserClient/ALCUserClient.hpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,12 @@ class EXPORT ALCUserClient : public IOUserClient {
2525
#if __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_4
2626
static const IOExternalMethodDispatch sMethods[kNumberOfMethods];
2727
#else
28-
static IOExternalMethodACID sMethodsLegacy[kNumberOfMethods];
28+
static IOExternalMethod sMethodsLegacy[kNumberOfMethods];
29+
#if (defined(__i386__) && defined(__clang__))
2930
static IOReturn sendHdaCommandInternal(ALCUserClient *that, uint16_t nid, uint16_t verb, uint16_t param, uint64_t *outVal);
31+
#else
32+
IOReturn sendHdaCommandInternal(uint16_t nid, uint16_t verb, uint16_t param, uint64_t *outVal);
33+
#endif
3034
#endif
3135

3236
public:

0 commit comments

Comments
 (0)