The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/iokit/IOKit/IOPolledInterface.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
    5  * 
    6  * This file contains Original Code and/or Modifications of Original Code
    7  * as defined in and that are subject to the Apple Public Source License
    8  * Version 2.0 (the 'License'). You may not use this file except in
    9  * compliance with the License. The rights granted to you under the License
   10  * may not be used to create, or enable the creation or redistribution of,
   11  * unlawful or unlicensed copies of an Apple operating system, or to
   12  * circumvent, violate, or enable the circumvention or violation of, any
   13  * terms of an Apple operating system software license agreement.
   14  * 
   15  * Please obtain a copy of the License at
   16  * http://www.opensource.apple.com/apsl/ and read it before using this file.
   17  * 
   18  * The Original Code and all software distributed under the License are
   19  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   20  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   21  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   22  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   23  * Please see the License for the specific language governing rights and
   24  * limitations under the License.
   25  * 
   26  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
   27  */
   28 
   29 #ifndef _IOPOLLEDINTERFACE_H_
   30 #define _IOPOLLEDINTERFACE_H_
   31 
   32 #include <libkern/c++/OSObject.h>
   33 
   34 #define kIOPolledInterfaceSupportKey "IOPolledInterface"
   35 
   36 enum
   37 {
   38     kIOPolledPreflightState   = 1,
   39     kIOPolledBeforeSleepState = 2,
   40     kIOPolledAfterSleepState  = 3,
   41     kIOPolledPostflightState  = 4
   42 };
   43 
   44 enum
   45 {
   46     kIOPolledWrite = 1,
   47     kIOPolledRead  = 2
   48 };
   49 
   50 typedef void (*IOPolledCompletionAction)( void *   target,
   51                                           void *   parameter,
   52                                           IOReturn status,
   53                                           uint64_t actualByteCount);
   54 struct IOPolledCompletion
   55 {
   56     void *                    target;
   57     IOPolledCompletionAction  action;
   58     void *                    parameter;
   59 };
   60 
   61 class IOPolledInterface : public OSObject
   62 {
   63     OSDeclareAbstractStructors(IOPolledInterface);
   64 
   65 protected:
   66     struct ExpansionData { };
   67     ExpansionData * reserved;
   68 
   69 public:
   70     virtual IOReturn probe(IOService * target) = 0;
   71 
   72     virtual IOReturn open( IOOptionBits state, IOMemoryDescriptor * buffer) = 0;
   73     virtual IOReturn close(IOOptionBits state) = 0;
   74 
   75     virtual IOReturn startIO(uint32_t           operation,
   76                              uint32_t           bufferOffset,
   77                              uint64_t           deviceOffset,
   78                              uint64_t           length,
   79                              IOPolledCompletion completion) = 0;
   80 
   81     virtual IOReturn checkForWork(void) = 0;
   82 
   83     static IOReturn checkAllForWork(void);
   84 
   85     OSMetaClassDeclareReservedUnused(IOPolledInterface, 0);
   86     OSMetaClassDeclareReservedUnused(IOPolledInterface, 1);
   87     OSMetaClassDeclareReservedUnused(IOPolledInterface, 2);
   88     OSMetaClassDeclareReservedUnused(IOPolledInterface, 3);
   89     OSMetaClassDeclareReservedUnused(IOPolledInterface, 4);
   90     OSMetaClassDeclareReservedUnused(IOPolledInterface, 5);
   91     OSMetaClassDeclareReservedUnused(IOPolledInterface, 6);
   92     OSMetaClassDeclareReservedUnused(IOPolledInterface, 7);
   93     OSMetaClassDeclareReservedUnused(IOPolledInterface, 8);
   94     OSMetaClassDeclareReservedUnused(IOPolledInterface, 9);
   95     OSMetaClassDeclareReservedUnused(IOPolledInterface, 10);
   96     OSMetaClassDeclareReservedUnused(IOPolledInterface, 11);
   97     OSMetaClassDeclareReservedUnused(IOPolledInterface, 12);
   98     OSMetaClassDeclareReservedUnused(IOPolledInterface, 13);
   99     OSMetaClassDeclareReservedUnused(IOPolledInterface, 14);
  100     OSMetaClassDeclareReservedUnused(IOPolledInterface, 15);
  101 };
  102 
  103 #endif /* _IOPOLLEDINTERFACE_H_ */

Cache object: 1313c0bf7a910d1d1725539f9ec2e815


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.