|
|
1.1 root 1: /*
2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
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.
11: *
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
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: Copyright (c) 1998 Apple Computer, Inc. All rights reserved.
24:
25: HISTORY
26: 1998-7-13 Godfrey van der Linden(gvdl)
27: Created.
28: ]*/
29: #include <IOKit/IOLib.h>
30:
31: #include <IOKit/IOEventSource.h>
32: #include <IOKit/IOWorkLoop.h>
33:
34: #define super OSObject
35:
36: OSDefineMetaClass(IOEventSource, OSObject)
37: OSDefineAbstractStructors(IOEventSource, OSObject)
38:
39: bool IOEventSource::init(OSObject *inOwner,
40: Action inAction = 0)
41: {
42: if (!inOwner)
43: return false;
44:
45: owner = inOwner;
46:
47: if ( !super::init() )
48: return false;
49:
50: (void) setAction(inAction);
51: enabled = true;
52:
53: return true;
54: }
55:
56: IOEventSource::Action IOEventSource::getAction () const { return action; };
57:
58: void IOEventSource::setAction(Action inAction)
59: {
60: action = inAction;
61: }
62:
63: IOEventSource *IOEventSource::getNext() const { return eventChainNext; };
64:
65: void IOEventSource::setNext(IOEventSource *inNext)
66: {
67: eventChainNext = inNext;
68: }
69:
70: void IOEventSource::enable()
71: {
72: enabled = true;
73: if (workLoop)
74: return workLoop->signalWorkAvailable();
75: }
76:
77: void IOEventSource::disable()
78: {
79: enabled = false;
80: }
81:
82: bool IOEventSource::isEnabled() const
83: {
84: return enabled;
85: }
86:
87: void IOEventSource::setWorkLoop(IOWorkLoop *inWorkLoop)
88: {
89: workLoop = inWorkLoop;
90: }
91:
92: IOWorkLoop *IOEventSource::getWorkLoop() const
93: {
94: return workLoop;
95: }
96:
97: bool IOEventSource::onThread() const
98: {
99: return (workLoop != 0) && workLoop->onThread();
100: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.