Root/
Source at commit 2350 created 10 years 5 months ago. By ifabio, remove duplicated define. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1998-2002 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 | *␊ |
24 | *␉IOFireWireUnit.h␊ |
25 | *␊ |
26 | *␊ |
27 | */␊ |
28 | #ifndef _IOKIT_IOFIREWIREUNIT_H␊ |
29 | #define _IOKIT_IOFIREWIREUNIT_H␊ |
30 | ␊ |
31 | // public␊ |
32 | #include <IOKit/firewire/IOFireWireNub.h>␊ |
33 | ␊ |
34 | class IOFireWireDevice;␊ |
35 | class IOFireWireUnit;␊ |
36 | ␊ |
37 | #pragma mark -␊ |
38 | ␊ |
39 | /*! ␊ |
40 | ␉@class IOFireWireUnitAux␊ |
41 | */␊ |
42 | ␊ |
43 | class IOFireWireUnitAux : public IOFireWireNubAux␊ |
44 | {␊ |
45 | OSDeclareDefaultStructors(IOFireWireUnitAux)␊ |
46 | ␊ |
47 | ␉friend class IOFireWireUnit;␊ |
48 | ␉␊ |
49 | protected:␊ |
50 | ␉␊ |
51 | ␉/*! ␊ |
52 | ␉␉@struct ExpansionData␊ |
53 | ␉␉@discussion This structure will be used to expand the capablilties of the class in the future.␊ |
54 | */ ␊ |
55 | ␉ ␊ |
56 | struct ExpansionData { };␊ |
57 | ␊ |
58 | ␉/*! ␊ |
59 | ␉␉@var reserved␊ |
60 | ␉␉Reserved for future use. (Internal use only) ␊ |
61 | ␉*/␊ |
62 | ␊ |
63 | ␉ExpansionData * reserved;␊ |
64 | ␊ |
65 | virtual bool init( IOFireWireUnit * primary );␊ |
66 | ␉virtual␉void free();␊ |
67 | ␊ |
68 | ␉virtual bool isPhysicalAccessEnabled( void );␊ |
69 | ␊ |
70 | ␉virtual IOFWSimpleContiguousPhysicalAddressSpace * createSimpleContiguousPhysicalAddressSpace( vm_size_t size, IODirection direction );␊ |
71 | ␉␉␊ |
72 | virtual IOFWSimplePhysicalAddressSpace * createSimplePhysicalAddressSpace( vm_size_t size, IODirection direction );␊ |
73 | ␉␊ |
74 | private:␊ |
75 | OSMetaClassDeclareReservedUnused(IOFireWireUnitAux, 0);␊ |
76 | OSMetaClassDeclareReservedUnused(IOFireWireUnitAux, 1);␊ |
77 | OSMetaClassDeclareReservedUnused(IOFireWireUnitAux, 2);␊ |
78 | OSMetaClassDeclareReservedUnused(IOFireWireUnitAux, 3);␊ |
79 | ␉␊ |
80 | };␊ |
81 | ␊ |
82 | #pragma mark -␊ |
83 | ␊ |
84 | /*! @class IOFireWireUnit␊ |
85 | */␊ |
86 | class IOFireWireUnit : public IOFireWireNub␊ |
87 | {␊ |
88 | OSDeclareDefaultStructors(IOFireWireUnit)␊ |
89 | ␊ |
90 | ␉friend class IOFireWireUnitAux;␊ |
91 | ␉friend class IOFireWireDevice;␊ |
92 | ␊ |
93 | protected:␊ |
94 | IOFireWireDevice *fDevice;␉// The device unit is part of␊ |
95 | ␊ |
96 | /*! @struct ExpansionData␊ |
97 | @discussion This structure will be used to expand the capablilties of the class in the future.␊ |
98 | */ ␊ |
99 | struct ExpansionData { };␊ |
100 | ␊ |
101 | /*! @var reserved␊ |
102 | Reserved for future use. (Internal use only) */␊ |
103 | ExpansionData *reserved;␊ |
104 | ␊ |
105 | /*------------------Methods provided to FireWire device clients-----------------------*/␊ |
106 | public:␊ |
107 | ␊ |
108 | virtual bool init(OSDictionary *propTable, IOConfigDirectory *directory);␊ |
109 | ␊ |
110 | /*␊ |
111 | * Standard nub initialization␊ |
112 | */␊ |
113 | virtual bool attach(IOService * provider );␊ |
114 | ␉virtual void free();␊ |
115 | ␊ |
116 | /*␊ |
117 | * Matching language support␊ |
118 | * Match on the following properties of the unit:␊ |
119 | * Vendor_ID␊ |
120 | * GUID␊ |
121 | * Unit_Spec_ID␊ |
122 | * Unit_SW_Version␊ |
123 | */␊ |
124 | virtual bool matchPropertyTable(OSDictionary * table);␊ |
125 | ␊ |
126 | ␊ |
127 | virtual IOReturn message( UInt32 type, IOService * provider, void * argument );␊ |
128 | ␊ |
129 | // Override handleOpen() and handleClose() to pass on to device␊ |
130 | virtual bool handleOpen( ␉IOService *␉ forClient,␊ |
131 | IOOptionBits␉ options,␊ |
132 | void *␉␉ arg );␊ |
133 | ␊ |
134 | virtual void handleClose( IOService *␉ forClient,␊ |
135 | IOOptionBits␉ options );␊ |
136 | ␊ |
137 | virtual void setNodeFlags( UInt32 flags );␊ |
138 | ␉virtual void clearNodeFlags( UInt32 flags );␊ |
139 | virtual UInt32 getNodeFlags( void );␊ |
140 | ␊ |
141 | ␉virtual IOReturn setConfigDirectory( IOConfigDirectory *directory );␊ |
142 | ␊ |
143 | /*␊ |
144 | * Create local FireWire address spaces for the device to access␊ |
145 | */␊ |
146 | virtual IOFWPhysicalAddressSpace *createPhysicalAddressSpace(IOMemoryDescriptor *mem);␊ |
147 | virtual IOFWPseudoAddressSpace *createPseudoAddressSpace(FWAddress *addr, UInt32 len,␊ |
148 | FWReadCallback reader, FWWriteCallback writer, void *refcon);␊ |
149 | ␊ |
150 | protected:␊ |
151 | ␉␊ |
152 | ␉virtual IOFireWireNubAux * createAuxiliary( void );␊ |
153 | ␊ |
154 | public:␊ |
155 | ␉void setMaxSpeed( IOFWSpeed speed );␊ |
156 | ␊ |
157 | protected:␊ |
158 | ␉void terminateUnit( void );␊ |
159 | ␉static void terminateUnitThreadFunc( void * refcon );␊ |
160 | ␉ ␊ |
161 | private:␊ |
162 | OSMetaClassDeclareReservedUnused(IOFireWireUnit, 0);␊ |
163 | OSMetaClassDeclareReservedUnused(IOFireWireUnit, 1);␊ |
164 | ␊ |
165 | };␊ |
166 | ␊ |
167 | #endif /* ! _IOKIT_IOFIREWIREDEVICE_H */␊ |
168 |