Chameleon

Chameleon Svn Source Tree

Root/branches/Chimera/i386/include/IOKit/firewire/IOFireWireLocalNode.h

1/*
2 * IOFireWireLocalNode.h
3 * IOFireWireFamily
4 *
5 * Created by Niels on Fri Aug 16 2002.
6 * Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
7 *
8 * @APPLE_LICENSE_HEADER_START@
9 *
10 * The contents of this file constitute Original Code as defined in and
11 * are subject to the Apple Public Source License Version 1.1 (the
12 * "License"). You may not use this file except in compliance with the
13 * License. Please obtain a copy of the License at
14 * http://www.apple.com/publicsource and read it before using this file.
15 *
16 * This Original Code and all software distributed under the License are
17 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
18 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
19 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
21 * License for the specific language governing rights and limitations
22 * under the License.
23 *
24 * @APPLE_LICENSE_HEADER_END@
25 */
26/*
27$Log: IOFireWireLocalNode.h,v $
28Revision 1.8 2009/03/26 22:45:17 calderon
29<rdar://6728033> User client fails to terminate with unexpected consuequences
30
31Revision 1.7 2008/11/14 00:17:12 arulchan
32fix for rdar://5939334
33
34Revision 1.6 2005/02/18 22:56:53 gecko1
353958781 Q45C EVT: FireWire ASP reporter says port speed is 800 Mb/sec
36
37Revision 1.5 2003/02/20 02:00:12 collin
38*** empty log message ***
39
40Revision 1.4 2003/02/17 21:47:53 collin
41*** empty log message ***
42
43Revision 1.3 2002/10/18 23:29:44 collin
44fix includes, fix cast which fails on new compiler
45
46Revision 1.2 2002/09/25 00:27:24 niels
47flip your world upside-down
48
49*/
50
51// public
52#import <IOKit/firewire/IOFireWireNub.h>
53
54class IOFireWireLocalNode;
55
56#pragma mark -
57
58/*!
59@class IOFireWireLocalNodeAux
60*/
61
62class IOFireWireLocalNodeAux : public IOFireWireNubAux
63{
64 OSDeclareDefaultStructors(IOFireWireLocalNodeAux)
65
66friend class IOFireWireLocalNode;
67
68protected:
69
70/*!
71@struct ExpansionData
72@discussion This structure will be used to expand the capablilties of the class in the future.
73 */
74
75 struct ExpansionData { };
76
77/*!
78@var reserved
79Reserved for future use. (Internal use only)
80*/
81
82ExpansionData * reserved;
83
84 virtual bool init( IOFireWireLocalNode * primary );
85virtualvoid free();
86
87private:
88 OSMetaClassDeclareReservedUnused(IOFireWireLocalNodeAux, 0);
89 OSMetaClassDeclareReservedUnused(IOFireWireLocalNodeAux, 1);
90 OSMetaClassDeclareReservedUnused(IOFireWireLocalNodeAux, 2);
91 OSMetaClassDeclareReservedUnused(IOFireWireLocalNodeAux, 3);
92
93};
94
95#pragma mark -
96
97/*! @class IOFireWireLocalNode
98*/
99
100class IOFireWireLocalNode : public IOFireWireNub
101{
102 OSDeclareDefaultStructors(IOFireWireLocalNode)
103
104friend class IOFireWireLocalNodeAux;
105
106/*------------------Useful info about device (also available in the registry)--------*/
107protected:
108
109/*-----------Methods provided to FireWire device clients-------------*/
110public:
111
112// Set up properties affected by bus reset
113virtual void setNodeProperties(UInt32 generation, UInt16 nodeID, UInt32 *selfIDs, int numIDs, IOFWSpeed maxSpeed );
114
115/*
116* Standard nub initialization
117*/
118virtual bool init(OSDictionary * propTable);
119virtual bool attach(IOService * provider );
120
121virtual void handleClose( IOService * forClient,
122IOOptionBits options ) ;
123virtual bool handleOpen( IOService * forClient,
124IOOptionBits options,
125void * arg ) ;
126virtual bool handleIsOpen( const IOService * forClient ) const;
127
128/*
129* Trick method to create protocol user clients
130*/
131virtual IOReturn setProperties( OSObject * properties );
132
133protected:
134
135virtual IOFireWireNubAux * createAuxiliary( void );
136
137public:
138virtual IOReturn message( UInt32 type, IOService * provider, void * argument );
139virtual void free();
140
141protected:
142OSSet * fOpenClients;
143};
144

Archive Download this file

Revision: 1340