]> git.saurik.com Git - apple/xnu.git/blame - iokit/Families/IOADBBus/IOADBDevice.cpp
xnu-344.23.tar.gz
[apple/xnu.git] / iokit / Families / IOADBBus / IOADBDevice.cpp
CommitLineData
1c79356b
A
1/*
2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
de355530
A
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.
1c79356b 11 *
de355530
A
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
1c79356b
A
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
de355530
A
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.
1c79356b
A
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22/*
23 * 18 June 1998 sdouglas Start IOKit version.
24 * 17 Nov 1998 suurballe Port objc to c++
25 */
26
27#include <IOKit/adb/IOADBDevice.h>
28
29#define super IOService
30OSDefineMetaClassAndStructors(IOADBDevice,IOService)
31
32// **********************************************************************************
33// init
34//
35// **********************************************************************************
36bool IOADBDevice::init ( OSDictionary * regEntry, ADBDeviceControl * us )
37{
38if( !super::init(regEntry))
39 return false;
40
41fBusRef = us;
42return true;
43}
44
45
46// **********************************************************************************
47// attach
48//
49// **********************************************************************************
50bool IOADBDevice::attach ( IOADBBus * controller )
51{
52if( !super::attach(controller))
53 return false;
54
55bus = controller;
56return true;
57}
58
59// **********************************************************************************
60// matchPropertyTable
61//
62// **********************************************************************************
63
64bool IOADBDevice::matchPropertyTable( OSDictionary * table )
65{
66 return( bus->matchNubWithPropertyTable( this, table ));
67}
68
69// **********************************************************************************
70// seizeForClient
71//
72// **********************************************************************************
73bool IOADBDevice::seizeForClient ( IOService * client, ADB_callback_func handler )
74{
75bus->setOwner(fBusRef,client,handler);
76
77return true;
78}
79
80
81// **********************************************************************************
82// releaseFromClient
83//
84// **********************************************************************************
85void IOADBDevice::releaseFromClient ( IORegistryEntry * )
86{
87 kprintf("IOADBDevice::releaseFromClient\n");
88 bus->clearOwner(fBusRef);
89}
90
91
92// **********************************************************************************
93// flush
94//
95// **********************************************************************************
96IOReturn IOADBDevice::flush ( void )
97{
0b4e3aa0
A
98if ( isInactive() ) {
99 return kIOReturnNotOpen;
100}
1c79356b
A
101return( bus->flush(fBusRef) );
102}
103
104
105// **********************************************************************************
106// readRegister
107//
108// **********************************************************************************
109IOReturn IOADBDevice::readRegister ( IOADBRegister adbRegister, UInt8 * data,
110 IOByteCount * length )
111{
0b4e3aa0
A
112if ( isInactive() ) {
113 return kIOReturnNotOpen;
114}
1c79356b
A
115return( bus->readRegister(fBusRef,adbRegister,data,length) );
116}
117
118
119// **********************************************************************************
120// writeRegister
121//
122// **********************************************************************************
123IOReturn IOADBDevice::writeRegister ( IOADBRegister adbRegister, UInt8 * data,
124 IOByteCount * length )
125{
0b4e3aa0
A
126if ( isInactive() ) {
127 return kIOReturnNotOpen;
128}
1c79356b
A
129return( bus->writeRegister(fBusRef,adbRegister,data,length) );
130}
131
132
133// **********************************************************************************
134// address
135//
136// **********************************************************************************
137IOADBAddress IOADBDevice::address ( void )
138{
139return( bus->address(fBusRef) );
140}
141
142
143// **********************************************************************************
144// defaultAddress
145//
146// **********************************************************************************
147IOADBAddress IOADBDevice::defaultAddress ( void )
148{
149return( bus->defaultAddress(fBusRef) );
150}
151
152
153// **********************************************************************************
154// handlerID
155//
156// **********************************************************************************
157UInt8 IOADBDevice::handlerID ( void )
158{
159return( bus->handlerID(fBusRef) );
160}
161
162
163// **********************************************************************************
164// defaultHandlerID
165//
166// **********************************************************************************
167UInt8 IOADBDevice::defaultHandlerID ( void )
168{
169return( bus->defaultHandlerID(fBusRef) );
170}
171
172
173// **********************************************************************************
174// setHandlerID
175//
176// **********************************************************************************
177IOReturn IOADBDevice::setHandlerID ( UInt8 handlerID )
178{
179return( bus->setHandlerID(fBusRef,handlerID) );
180}
181
182
183// **********************************************************************************
184// busRef
185//
186// **********************************************************************************
187void * IOADBDevice::busRef ( void )
188{
189return fBusRef;
190}