Chameleon

Chameleon Svn Source Tree

Root/branches/ErmaC/Enoch_Modules/i386/include/IOKit/firewire/IOFWDCLPool.h

1/*
2 * IOFWNuDCLPool.h
3 * IOFireWireFamily
4 *
5 * Created by Niels on Fri Mar 07 2003.
6 * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
7 *
8 *$Log: IOFWDCLPool.h,v $
9 *Revision 1.15 2008/11/14 00:17:12 arulchan
10 *fix for rdar://5939334
11 *
12 *Revision 1.14 2008/03/03 23:31:42 ayanowit
13 *another gcc-42 fix.
14 *
15 *Revision 1.13 2007/01/26 20:52:31 ayanowit
16 *changes to user-space isoch stuff to support 64-bit apps.
17 *
18 *Revision 1.12 2006/02/09 00:21:50 niels
19 *merge chardonnay branch to tot
20 *
21 *Revision 1.11 2005/04/12 20:09:13 niels
22 *fix memory leak importing NuDCL programs from user space
23 *
24 *Revision 1.10.20.2 2006/01/31 04:49:50 collin
25 **** empty log message ***
26 *
27 *Revision 1.10 2003/11/07 21:24:28 niels
28 **** empty log message ***
29 *
30 *Revision 1.9 2003/11/07 21:01:18 niels
31 **** empty log message ***
32 *
33 *Revision 1.8 2003/08/25 08:39:15 niels
34 **** empty log message ***
35 *
36 *Revision 1.7 2003/08/22 18:15:16 niels
37 **** empty log message ***
38 *
39 *Revision 1.6 2003/08/15 04:36:55 niels
40 **** empty log message ***
41 *
42 *Revision 1.5 2003/07/30 05:22:14 niels
43 **** empty log message ***
44 *
45 *Revision 1.4 2003/07/21 08:48:20 niels
46 **** empty log message ***
47 *
48 *Revision 1.3 2003/07/21 07:52:13 niels
49 **** empty log message ***
50 *
51 *Revision 1.2 2003/07/21 06:52:58 niels
52 *merge isoch to TOT
53 *
54 *Revision 1.1.2.3 2003/07/11 18:15:34 niels
55 **** empty log message ***
56 *
57 *Revision 1.1.2.2 2003/07/09 21:24:00 niels
58 **** empty log message ***
59 *
60 *Revision 1.1.2.1 2003/07/01 20:54:06 niels
61 *isoch merge
62 *
63 */
64
65#import <libkern/c++/OSObject.h>
66#import <libkern/c++/OSArray.h>
67#import <IOKit/IOTypes.h>
68
69class IOFireWireLink ;
70class IOFWDCL ;
71class IOFWReceiveDCL ;
72class IOFWSendDCL ;
73class IOFWSkipCycleDCL ;
74class IOFireWireUserClient ;
75class IOMemoryDescriptor ;
76class IOMemoryMap ;
77class OSSet;
78
79/*! @class IOFWDCLPool
80@discussion You should never subclass IOFWDCLPool
81*/
82
83class IOFWDCLPool : public OSObject
84{
85OSDeclareAbstractStructors( IOFWDCLPool )
86
87friend class IOFireWireUserClient ;
88friend class IOFWUserLocalIsochPort ;
89
90protected:
91
92class Expansion*fReserved ;// for class expansion
93
94IOFireWireLink *fLink ;
95UInt8fCurrentTag ;
96UInt8fCurrentSync ;
97OSArray*fProgram ;
98DCLNuDCLLeaderfLeader ;
99
100public:
101
102// OSObject
103
104virtual voidfree() ;
105
106// me
107
108virtual bool initWithLink ( IOFireWireLink& link, UInt32 capacity ) ;
109
110virtual voidsetCurrentTagAndSync ( UInt8 tag, UInt8 sync ) ;
111
112virtual IOFWReceiveDCL*appendReceiveDCL (
113OSSet * updateSet,
114UInt8 headerBytes,
115UInt32rangesCount,
116IOVirtualRangeranges[] ) ;
117virtual IOFWSendDCL*appendSendDCL (
118OSSet * updateSet,
119UInt32rangesCount,
120IOVirtualRangeranges[] ) ;
121virtual IOFWSkipCycleDCL*appendSkipCycleDCL () ;
122virtual const OSArray *getProgramRef () const ;
123
124protected :
125
126IOReturnimportUserProgram (
127IOMemoryDescriptor *userExportDesc,
128unsignedbufferRangeCount,
129IOAddressRangebufferRanges[],
130IOMemoryMap *bufferMap ) ;
131IOReturnimportUserDCL(
132IOFWDCL *dcl,
133void * importData,
134IOByteCount &dataSize,
135IOMemoryMap *bufferMap ) ;
136
137
138protected :
139
140virtual IOFWReceiveDCL *allocReceiveDCL () = 0 ;
141virtual IOFWSendDCL *allocSendDCL () = 0 ;
142virtual IOFWSkipCycleDCL *allocSkipCycleDCL () = 0 ;
143
144private :
145
146voidappendDCL( IOFWDCL * dcl ) ;
147
148public :
149
150DCLCommand *getProgram() ;
151
152 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 0);
153 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 1);
154 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 2);
155 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 3);
156 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 4);
157 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 5);
158 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 6);
159 OSMetaClassDeclareReservedUnused ( IOFWDCLPool, 7);
160} ;
161

Archive Download this file

Revision: 2238