xref: /xnu-12377.61.12/iokit/Tests/TestServices/TestIODataQueues.h (revision 4d495c6e23c53686cf65f45067f79024cf5dcee8)
1 #ifndef _IOKIT_TESTIOSERVICEUSERNOTIFICATION_H_
2 #define _IOKIT_TESTIOSERVICEUSERNOTIFICATION_H_
3 
4 #include <IOKit/IOService.h>
5 #include <IOKit/IOUserClient.h>
6 #include <IOKit/IOCircularDataQueue.h>
7 
8 #if DEVELOPMENT || DEBUG
9 
10 class TestIODataQueues : public IOService {
11 	OSDeclareDefaultStructors(TestIODataQueues);
12 	friend class TestIODataQueuesUserClient;
13 
14 	IOCircularDataQueue * fCDQueue;
15 
16 public:
17 	virtual bool start(IOService *provider) override;
18 };
19 
20 class TestIODataQueuesUserClient : public IOUserClient2022 {
21 	OSDeclareDefaultStructors(TestIODataQueuesUserClient);
22 
23 	TestIODataQueues * fTestIODataQueues;
24 
25 public:
26 	virtual bool start(IOService * provider) override;
27 	virtual IOReturn clientClose() override;
28 	virtual IOReturn externalMethod(uint32_t selector, IOExternalMethodArgumentsOpaque * args) override;
29 	virtual IOReturn clientMemoryForType(UInt32 type,
30 	    IOOptionBits * koptions,
31 	    IOMemoryDescriptor ** kmemory) override;
32 };
33 
34 #endif /* DEVELOPMENT || DEBUG */
35 
36 #endif /* _IOKIT_TESTIOSERVICEUSERNOTIFICATION_H_ */
37