Loading...
--- xnu/xnu-12377.101.15/iokit/IOKit/IOServiceStateNotificationEventSource.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1998-2019 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _IOKIT_IOSERVICESTATENOTIFICATIONEVENTSOURCE_H
-#define _IOKIT_IOSERVICESTATENOTIFICATIONEVENTSOURCE_H
-
-#include <libkern/c++/OSPtr.h>
-#include <IOKit/IOEventSource.h>
-
-class IOService;
-
-
-/*! @class IOServiceStateNotificationEventSource : public IOEventSource
- * @abstract Event source for IOService state notification delivery to work-loop based drivers.
- * @discussion For use with the IOService.iig IOService::StateNotification* APIs.
- */
-
-class IOServiceStateNotificationEventSource : public IOEventSource
-{
- OSDeclareDefaultStructors(IOServiceStateNotificationEventSource);
-
-public:
- typedef void (^ActionBlock)();
-
-protected:
- IOService * fStateNotification;
- IOStateNotificationListenerRef fListener;
- bool fEnable;
- bool fArmed;
-
-/*! @struct ExpansionData
- * @discussion This structure will be used to expand the capablilties of the IOWorkLoop in the future.
- */
-
-/*! @var reserved
- * Reserved for future use. (Internal use only) */
- APPLE_KEXT_WSHADOW_PUSH;
- ExpansionData *reserved;
- APPLE_KEXT_WSHADOW_POP;
-
-/*! @function free
- * @abstract Sub-class implementation of free method, disconnects from the interrupt source. */
- virtual void free() APPLE_KEXT_OVERRIDE;
-
-/*! @function checkForWork
- * @abstract Pure Virtual member function used by IOWorkLoop for issueing a client calls.
- * @discussion This function called when the work-loop is ready to check for any work to do and then to call out the owner/action.
- * @result Return true if this function needs to be called again before all its outstanding events have been processed. */
- virtual bool checkForWork() APPLE_KEXT_OVERRIDE;
-
-/*! @function setWorkLoop
- * @abstract Sub-class implementation of setWorkLoop method. */
- virtual void setWorkLoop(IOWorkLoop *inWorkLoop) APPLE_KEXT_OVERRIDE;
-
-public:
-
- /*!
- * @brief Create an IOServiceStateNotificationEventSource for notification of IOService state events sent by the StateNotificationSet() api.
- * @param service The object hosting state, typically returned by IOService::CopySystemStateNotificationService().
- * @param items Array of state item names to be notified about.
- * @param action Handler block to be invoked on the event source workloop when the notification fires.
- * @return IOServiceStateNotificationEventSource with +1 retain, or NULL on failure.
- */
- static OSPtr<IOServiceStateNotificationEventSource>
- serviceStateNotificationEventSource(IOService *service,
- OSArray * items,
- ActionBlock action);
-
-/*! @function enable
- * @abstract Enable event source.
- * @discussion A subclass implementation is expected to respect the enabled
- * state when checkForWork is called. Calling this function will cause the
- * work-loop to be signalled so that a checkForWork is performed. */
- virtual void enable() APPLE_KEXT_OVERRIDE;
-
-/*! @function disable
- * @abstract Disable event source.
- * @discussion A subclass implementation is expected to respect the enabled
- * state when checkForWork is called. */
- virtual void disable() APPLE_KEXT_OVERRIDE;
-
-private:
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 0);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 1);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 2);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 3);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 4);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 5);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 6);
- OSMetaClassDeclareReservedUnused(IOServiceStateNotificationEventSource, 7);
-};
-
-#endif /* !_IOKIT_IOSERVICESTATENOTIFICATIONEVENTSOURCE_H */