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/Kernel/IOServicePrivate.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) 1998-2000 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  * Copyright (c) 1999 Apple Computer, Inc.  All rights reserved. 
   30  *
   31  * HISTORY
   32  *
   33  */
   34 
   35 
   36 #ifndef _IOKIT_IOSERVICEPRIVATE_H
   37 #define _IOKIT_IOSERVICEPRIVATE_H
   38 
   39 // options for getExistingServices()
   40 enum {
   41     kIONotifyOnce               = 0x00000001,
   42     kIOServiceExistingSet       = 0x00000002
   43 };
   44 
   45 // masks for __state[1]
   46 enum {
   47     kIOServiceBusyStateMask     = 0x000000ff,
   48     kIOServiceBusyMax           = 255,
   49     kIOServiceNeedConfigState   = 0x80000000,
   50     kIOServiceSynchronousState  = 0x40000000,
   51     kIOServiceModuleStallState  = 0x20000000,
   52     kIOServiceBusyWaiterState   = 0x10000000,
   53 
   54     kIOServiceSyncPubState      = 0x08000000,
   55     kIOServiceConfigState       = 0x04000000,
   56     kIOServiceTermPhase2State   = 0x01000000,
   57     kIOServiceTermPhase3State   = 0x00800000,
   58 };
   59 
   60 // options for terminate()
   61 enum {
   62     kIOServiceRecursing         = 0x00100000,
   63 };
   64 
   65 // notify state
   66 enum {
   67     kIOServiceNotifyEnable      = 0x00000001,
   68     kIOServiceNotifyWaiter      = 0x00000002
   69 };
   70 
   71 struct _IOServiceNotifierInvocation
   72 {
   73     IOThread            thread;
   74     queue_chain_t       link;
   75 };
   76 
   77 class _IOServiceNotifier : public IONotifier
   78 {
   79     friend class IOService;
   80 
   81     OSDeclareDefaultStructors(_IOServiceNotifier)
   82 
   83 public:
   84     OSOrderedSet *                      whence;
   85 
   86     OSDictionary *                      matching;
   87     IOServiceNotificationHandler        handler;
   88     void *                              target;
   89     void *                              ref;
   90     SInt32                              priority;
   91     queue_head_t                        handlerInvocations;
   92     IOOptionBits                        state;
   93 
   94     virtual void free();
   95     virtual void remove();
   96     virtual bool disable();
   97     virtual void enable( bool was );
   98     virtual void wait();
   99 };
  100 
  101 class _IOServiceInterestNotifier : public IONotifier
  102 {
  103     friend class IOService;
  104 
  105     OSDeclareDefaultStructors(_IOServiceInterestNotifier)
  106 
  107 public:
  108     queue_chain_t               chain;
  109 
  110     IOServiceInterestHandler    handler;
  111     void *                      target;
  112     void *                      ref;
  113     queue_head_t                handlerInvocations;
  114     IOOptionBits                state;
  115 
  116     virtual void free();
  117     virtual void remove();
  118     virtual bool disable();
  119     virtual void enable( bool was );
  120     virtual void wait();
  121 };
  122 
  123 class _IOConfigThread : public OSObject
  124 {
  125     friend class IOService;
  126 
  127     OSDeclareDefaultStructors(_IOConfigThread)
  128 
  129 public:
  130     virtual void free();
  131 
  132     static void configThread( void );
  133     static void main( _IOConfigThread * self );
  134 };
  135 
  136 enum {
  137         kMaxConfigThreads       = CONFIG_MAX_THREADS,
  138 };
  139 
  140 enum {
  141     kMatchNubJob        = 10,
  142 };
  143 
  144 class _IOServiceJob : public OSObject
  145 {
  146     friend class IOService;
  147 
  148     OSDeclareDefaultStructors(_IOServiceJob)
  149 
  150 public:
  151     int                 type;
  152     IOService *         nub;
  153     IOOptionBits        options;
  154 
  155     static _IOServiceJob * startJob( IOService * nub, int type,
  156                           IOOptionBits options = 0 );
  157     static void pingConfig( class _IOServiceJob * job );
  158 
  159 };
  160 
  161 class IOResources : public IOService
  162 {
  163     friend class IOService;
  164 
  165     OSDeclareDefaultStructors(IOResources)
  166 
  167 public:
  168     static IOService * resources( void );
  169     virtual IOWorkLoop * getWorkLoop( ) const;
  170     virtual bool matchPropertyTable( OSDictionary * table );
  171     virtual IOReturn setProperties( OSObject * properties );
  172 };
  173 
  174 class _IOOpenServiceIterator : public OSIterator
  175 {
  176     friend class IOService;
  177 
  178     OSDeclareDefaultStructors(_IOOpenServiceIterator)
  179 
  180     OSIterator *        iter;
  181     const IOService *   client;
  182     const IOService *   provider;
  183     IOService *         last;
  184 
  185 public:
  186     static OSIterator * iterator( OSIterator * _iter,
  187                                   const IOService * client,
  188                                   const IOService * provider );
  189     virtual void free();
  190     virtual void reset();
  191     virtual bool isValid();
  192     virtual OSObject * getNextObject();
  193 };
  194 
  195 extern const OSSymbol * gIOConsoleUsersKey;
  196 extern const OSSymbol * gIOConsoleSessionUIDKey;
  197 extern const OSSymbol * gIOConsoleSessionOnConsoleKey;
  198 extern const OSSymbol * gIOConsoleSessionSecureInputPIDKey;
  199 
  200 #endif /* ! _IOKIT_IOSERVICEPRIVATE_H */
  201 

Cache object: 303984a5d8bb85d4e8338307575d5a0a


[ 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.