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