Loading...
iokit/Kernel/RootDomainUserClient.cpp xnu-12377.101.15 xnu-11417.101.15
--- xnu/xnu-12377.101.15/iokit/Kernel/RootDomainUserClient.cpp
+++ xnu/xnu-11417.101.15/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;
 }