Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/IOKit/firewire/IOFireWireUnit.h

Source at commit 1129 created 12 years 11 months ago.
By meklort, Change options.o so that it reloads the system config as well. Also change it so that it uses that config for variables (NOTE: if the calue exists in chameleonConfig, it's used instead.
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
34class IOFireWireDevice;
35class IOFireWireUnit;
36
37#pragma mark -
38
39/*!
40@class IOFireWireUnitAux
41*/
42
43class IOFireWireUnitAux : public IOFireWireNubAux
44{
45 OSDeclareDefaultStructors(IOFireWireUnitAux)
46
47friend class IOFireWireUnit;
48
49protected:
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
60Reserved for future use. (Internal use only)
61*/
62
63ExpansionData * reserved;
64
65 virtual bool init( IOFireWireUnit * primary );
66virtualvoid free();
67
68virtual bool isPhysicalAccessEnabled( void );
69
70virtual IOFWSimpleContiguousPhysicalAddressSpace * createSimpleContiguousPhysicalAddressSpace( vm_size_t size, IODirection direction );
71
72 virtual IOFWSimplePhysicalAddressSpace * createSimplePhysicalAddressSpace( vm_size_t size, IODirection direction );
73
74private:
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*/
86class IOFireWireUnit : public IOFireWireNub
87{
88 OSDeclareDefaultStructors(IOFireWireUnit)
89
90friend class IOFireWireUnitAux;
91friend class IOFireWireDevice;
92
93protected:
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-----------------------*/
106public:
107
108 virtual bool init(OSDictionary *propTable, IOConfigDirectory *directory);
109
110 /*
111 * Standard nub initialization
112 */
113 virtual bool attach(IOService * provider );
114virtual 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 );
138virtual void clearNodeFlags( UInt32 flags );
139 virtual UInt32 getNodeFlags( void );
140
141virtual 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
150protected:
151
152virtual IOFireWireNubAux * createAuxiliary( void );
153
154public:
155void setMaxSpeed( IOFWSpeed speed );
156
157protected:
158void terminateUnit( void );
159static void terminateUnitThreadFunc( void * refcon );
160
161private:
162 OSMetaClassDeclareReservedUnused(IOFireWireUnit, 0);
163 OSMetaClassDeclareReservedUnused(IOFireWireUnit, 1);
164
165};
166
167#endif /* ! _IOKIT_IOFIREWIREDEVICE_H */
168

Archive Download this file

Revision: 1129