]>
git.saurik.com Git - apple/xnu.git/blob - iokit/Kernel/IOEventSource.cpp
44bdcf52eabc0730f9c78cefdba31a6a5ff00e75
   2  * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. 
   4  * @APPLE_LICENSE_HEADER_START@ 
   6  * The contents of this file constitute Original Code as defined in and 
   7  * are subject to the Apple Public Source License Version 1.1 (the 
   8  * "License").  You may not use this file except in compliance with the 
   9  * License.  Please obtain a copy of the License at 
  10  * http://www.apple.com/publicsource and read it before using this file. 
  12  * This Original Code and all software distributed under the License are 
  13  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  14  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  15  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 
  16  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the 
  17  * License for the specific language governing rights and limitations 
  20  * @APPLE_LICENSE_HEADER_END@ 
  23 Copyright (c) 1998 Apple Computer, Inc.  All rights reserved. 
  26     1998-7-13   Godfrey van der Linden(gvdl) 
  29 #include <IOKit/IOLib.h> 
  31 #include <IOKit/IOEventSource.h> 
  32 #include <IOKit/IOWorkLoop.h> 
  34 #define super OSObject 
  36 OSDefineMetaClassAndAbstractStructors(IOEventSource
, OSObject
) 
  37 OSMetaClassDefineReservedUnused(IOEventSource
, 0); 
  38 OSMetaClassDefineReservedUnused(IOEventSource
, 1); 
  39 OSMetaClassDefineReservedUnused(IOEventSource
, 2); 
  40 OSMetaClassDefineReservedUnused(IOEventSource
, 3); 
  41 OSMetaClassDefineReservedUnused(IOEventSource
, 4); 
  42 OSMetaClassDefineReservedUnused(IOEventSource
, 5); 
  43 OSMetaClassDefineReservedUnused(IOEventSource
, 6); 
  44 OSMetaClassDefineReservedUnused(IOEventSource
, 7); 
  46 /* inline function implementations */ 
  47 void IOEventSource::signalWorkAvailable()       { workLoop
->signalWorkAvailable(); } 
  48 void IOEventSource::openGate()                  { workLoop
->openGate(); } 
  49 void IOEventSource::closeGate()                 { workLoop
->closeGate(); } 
  50 bool IOEventSource::tryCloseGate()              { return workLoop
->tryCloseGate(); } 
  51 int IOEventSource::sleepGate(void *event
, UInt32 type
) 
  52         { return workLoop
->sleepGate(event
, type
); } 
  53 void IOEventSource::wakeupGate(void *event
, bool oneThread
) 
  54         { workLoop
->wakeupGate(event
, oneThread
); } 
  56 bool IOEventSource::init(OSObject 
*inOwner
, 
  67     (void) setAction(inAction
); 
  73 IOEventSource::Action 
IOEventSource::getAction () const { return action
; }; 
  75 void IOEventSource::setAction(Action inAction
) 
  80 IOEventSource 
*IOEventSource::getNext() const { return eventChainNext
; }; 
  82 void IOEventSource::setNext(IOEventSource 
*inNext
) 
  84     eventChainNext 
= inNext
; 
  87 void IOEventSource::enable() 
  91         return signalWorkAvailable(); 
  94 void IOEventSource::disable() 
  99 bool IOEventSource::isEnabled() const 
 104 void IOEventSource::setWorkLoop(IOWorkLoop 
*inWorkLoop
) 
 108     workLoop 
= inWorkLoop
; 
 111 IOWorkLoop 
*IOEventSource::getWorkLoop() const 
 116 bool IOEventSource::onThread() const 
 118     return (workLoop 
!= 0) && workLoop
->onThread();