Loading...
--- xnu/xnu-12377.101.15/iokit/Kernel/RootDomainUserClient.cpp
+++ xnu/xnu-11215.61.5/iokit/Kernel/RootDomainUserClient.cpp
@@ -34,8 +34,6 @@
#include <IOKit/IOLib.h>
#include <IOKit/IOKitKeys.h>
#include <IOKit/IOBufferMemoryDescriptor.h>
-#include <IOKit/IOSubMemoryDescriptor.h>
-#include <AssertMacros.h>
#include "RootDomainUserClient.h"
#include <IOKit/pwr_mgt/IOPMLibDefs.h>
#include <IOKit/pwr_mgt/IOPMPrivate.h>
@@ -244,74 +242,9 @@
}
IOReturn
-RootDomainUserClient::secureSetLockdownModeHibernation(
- uint32_t status)
-{
-#if HIBERNATION
- int admin_priv = 0;
- IOReturn ret;
-
- ret = clientHasPrivilege(fOwningTask, kIOClientPrivilegeAdministrator);
- admin_priv = (kIOReturnSuccess == ret);
-
- if (admin_priv && fOwner) {
- fOwner->setLockdownModeHibernation(status);
- } else {
- ret = kIOReturnNotPrivileged;
- }
- return kIOReturnSuccess;
-#else
- return kIOReturnError;
-#endif
-}
-
-IOReturn
-RootDomainUserClient::secureGetAssertionLog(
- IOPMAssertionLogData *outLog)
-{
- if (!fOwner) {
- return kIOReturnError;
- }
-
- return fOwner->getAssertionLog(outLog);
-}
-
-IOReturn
-RootDomainUserClient::secureSetAssertionLogNotificationThreshold(
- uint64_t threshold)
-{
- if (!fOwner) {
- return kIOReturnError;
- }
-
- return fOwner->setAssertionLogNotificationThreshold(threshold);
-}
-
-IOReturn
-RootDomainUserClient::secureSetAssertionLogNotificationPort(
- mach_port_t port)
-{
- if (!fOwner) {
- return kIOReturnError;
- }
-
- IOReturn ret = fOwner->setAssertionLogNotificationPort(port);
-
- if (ret == kIOReturnSuccess) {
- fAssertionLogNotificationPortRegistered = (port != MACH_PORT_NULL);
- }
-
- return ret;
-}
-
-IOReturn
RootDomainUserClient::clientClose( void )
{
terminate();
-
- if (fAssertionLogNotificationPortRegistered) {
- secureSetAssertionLogNotificationPort(MACH_PORT_NULL);
- }
return kIOReturnSuccess;
}
@@ -328,17 +261,6 @@
}
IOReturn
-RootDomainUserClient::registerNotificationPort(mach_port_t port, UInt32 type, UInt32 refCon)
-{
- switch ((IOPMUserClientNotificationType)type) {
- case IOPMUserClientNotificationType_AssertionLog:
- return secureSetAssertionLogNotificationPort(port);
- }
-
- return kIOReturnSuccess;
-}
-
-IOReturn
RootDomainUserClient::externalMethod(uint32_t selector, IOExternalMethodArgumentsOpaque * args )
{
static const IOExternalMethodDispatch2022 dispatchArray[] = {
@@ -495,33 +417,6 @@
.allowAsync = false,
.checkEntitlement = NULL,
},
- [kPMSetLDMHibernationDisable] = {
- .function = &RootDomainUserClient::externalMethodDispatched,
- .checkScalarInputCount = 1,
- .checkStructureInputSize = 0,
- .checkScalarOutputCount = 0,
- .checkStructureOutputSize = 0,
- .allowAsync = false,
- .checkEntitlement = NULL,
- },
- [kPMGetAssertionLog] = {
- .function = &RootDomainUserClient::externalMethodDispatched,
- .checkScalarInputCount = 0,
- .checkStructureInputSize = 0,
- .checkScalarOutputCount = 0,
- .checkStructureOutputSize = sizeof(IOPMAssertionLogData),
- .allowAsync = false,
- .checkEntitlement = NULL,
- },
- [kPMSetAssertionLogThreshold] = {
- .function = &RootDomainUserClient::externalMethodDispatched,
- .checkScalarInputCount = 1,
- .checkStructureInputSize = 0,
- .checkScalarOutputCount = 0,
- .checkStructureOutputSize = 0,
- .allowAsync = false,
- .checkEntitlement = NULL,
- },
};
return dispatchExternalMethod(selector, args, dispatchArray, sizeof(dispatchArray) / sizeof(dispatchArray[0]), this, NULL);
@@ -529,24 +424,8 @@
IOReturn
RootDomainUserClient::externalMethodDispatched(OSObject * target, void * reference, IOExternalMethodArguments * arguments)
{
- IOReturn ret = kIOReturnBadArgument;
- RootDomainUserClient *me = (typeof(me))target;
- IOMemoryDescriptor *outMD = nullptr;
- IOMemoryMap *outMap = nullptr;
-
- if (arguments->structureOutputSize > 0 || arguments->structureOutputDescriptorSize > 0) {
- if (arguments->structureOutputDescriptor) {
- outMD = arguments->structureOutputDescriptor;
- outMD->retain();
- } else {
- outMD = IOMemoryDescriptor::withAddressRange((mach_vm_address_t)arguments->structureOutput, arguments->structureOutputSize, kIODirectionIn, kernel_task);
- }
-
- require_action(outMD != nullptr, out, ret = kIOReturnError);
- outMap = outMD->map();
- require_action(outMap != nullptr, out, ret = kIOReturnError);
- }
-
+ IOReturn ret = kIOReturnBadArgument;
+ RootDomainUserClient * me = (typeof(me))target;
switch (arguments->selector) {
case kPMSetAggressiveness:
ret = me->secureSetAggressiveness(
@@ -652,32 +531,11 @@
(uint32_t *) &arguments->scalarOutput[0]);
break;
- case kPMSetLDMHibernationDisable:
- ret = me->secureSetLockdownModeHibernation((uint32_t)arguments->scalarInput[0]);
- break;
-
- case kPMGetAssertionLog:
- require_action(outMap != nullptr, out, ret = kIOReturnBadArgument);
- ret = me->secureGetAssertionLog((IOPMAssertionLogData *)outMap->getAddress());
- break;
-
- case kPMSetAssertionLogThreshold:
- ret = me->secureSetAssertionLogNotificationThreshold(arguments->scalarInput[0]);
- break;
default:
// bad selector
- ret = kIOReturnBadArgument;
- break;
- }
-
-out:
- if (outMap) {
- outMap->unmap();
- }
-
- OSSafeReleaseNULL(outMap);
- OSSafeReleaseNULL(outMD);
+ return kIOReturnBadArgument;
+ }
return ret;
}