xref: /xnu-8796.101.5/iokit/Tests/TestServices/TestIOServiceUserNotification.cpp (revision aca3beaa3dfbd42498b42c5e5ce20a938e6554e5)
1*aca3beaaSApple OSS Distributions #include "TestIOServiceUserNotification.h"
2*aca3beaaSApple OSS Distributions #include <IOKit/IOService.h>
3*aca3beaaSApple OSS Distributions #include <IOKit/IOUserClient.h>
4*aca3beaaSApple OSS Distributions #include <IOKit/IOKitServer.h>
5*aca3beaaSApple OSS Distributions #include <kern/ipc_kobject.h>
6*aca3beaaSApple OSS Distributions 
7*aca3beaaSApple OSS Distributions #if DEVELOPMENT || DEBUG
8*aca3beaaSApple OSS Distributions 
9*aca3beaaSApple OSS Distributions OSDefineMetaClassAndStructors(TestIOServiceUserNotification, IOService);
10*aca3beaaSApple OSS Distributions 
11*aca3beaaSApple OSS Distributions OSDefineMetaClassAndStructors(TestIOServiceUserNotificationUserClient, IOUserClient);
12*aca3beaaSApple OSS Distributions 
13*aca3beaaSApple OSS Distributions bool
start(IOService * provider)14*aca3beaaSApple OSS Distributions TestIOServiceUserNotification::start(IOService * provider)
15*aca3beaaSApple OSS Distributions {
16*aca3beaaSApple OSS Distributions 	OSString * str = OSString::withCStringNoCopy("TestIOServiceUserNotificationUserClient");
17*aca3beaaSApple OSS Distributions 	bool ret = IOService::start(provider);
18*aca3beaaSApple OSS Distributions 	if (ret && str != NULL) {
19*aca3beaaSApple OSS Distributions 		setProperty(gIOUserClientClassKey, str);
20*aca3beaaSApple OSS Distributions 		registerService();
21*aca3beaaSApple OSS Distributions 	}
22*aca3beaaSApple OSS Distributions 	OSSafeReleaseNULL(str);
23*aca3beaaSApple OSS Distributions 	return ret;
24*aca3beaaSApple OSS Distributions }
25*aca3beaaSApple OSS Distributions 
26*aca3beaaSApple OSS Distributions 
27*aca3beaaSApple OSS Distributions IOReturn
clientClose()28*aca3beaaSApple OSS Distributions TestIOServiceUserNotificationUserClient::clientClose()
29*aca3beaaSApple OSS Distributions {
30*aca3beaaSApple OSS Distributions 	if (!isInactive()) {
31*aca3beaaSApple OSS Distributions 		terminate();
32*aca3beaaSApple OSS Distributions 	}
33*aca3beaaSApple OSS Distributions 	return kIOReturnSuccess;
34*aca3beaaSApple OSS Distributions }
35*aca3beaaSApple OSS Distributions 
36*aca3beaaSApple OSS Distributions IOReturn
externalMethod(uint32_t selector,IOExternalMethodArguments * args,IOExternalMethodDispatch * dispatch,OSObject * target,void * reference)37*aca3beaaSApple OSS Distributions TestIOServiceUserNotificationUserClient::externalMethod(uint32_t selector, IOExternalMethodArguments * args,
38*aca3beaaSApple OSS Distributions     IOExternalMethodDispatch * dispatch, OSObject * target, void * reference)
39*aca3beaaSApple OSS Distributions {
40*aca3beaaSApple OSS Distributions 	registerService();
41*aca3beaaSApple OSS Distributions 	return kIOReturnSuccess;
42*aca3beaaSApple OSS Distributions }
43*aca3beaaSApple OSS Distributions 
44*aca3beaaSApple OSS Distributions #endif /* DEVELOPMENT || DEBUG */
45