OSDN Git Service

Manual resolution for LICENSE for files already containing a file
[mingw/mingw-org-wsl.git] / include / ddk / atm.h
1 /**
2  * @file atm.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef __ATM_H
25 #define __ATM_H
26 #pragma GCC system_header
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 typedef ULONG   ATM_ADDRESSTYPE;
33
34 #define SAP_TYPE_NSAP                                   1
35 #define SAP_TYPE_E164                                   2
36
37 #define ATM_MEDIA_SPECIFIC                1
38
39 #define CALLMGR_SPECIFIC_Q2931            1
40
41 #define ATM_NSAP                                                  0
42 #define ATM_E164                                                  1
43
44 #define ATM_MAC_ADDRESS_LENGTH            6
45 #define ATM_ADDRESS_LENGTH                          20
46
47 typedef ULONG   ATM_AAL_TYPE, *PATM_AAL_TYPE;
48
49 #define AAL_TYPE_AAL0                                   1
50 #define AAL_TYPE_AAL1                                   2
51 #define AAL_TYPE_AAL34                                4
52 #define AAL_TYPE_AAL5                                   8
53
54 #define ATM_ADDR_BLANK_CHAR                                     L' '
55 #define ATM_ADDR_E164_START_CHAR                      L'+'
56 #define ATM_ADDR_PUNCTUATION_CHAR                     L'.'
57
58 typedef enum {
59         IE_AALParameters,
60         IE_TrafficDescriptor,
61         IE_BroadbandBearerCapability,
62         IE_BHLI,
63         IE_BLLI,
64         IE_CalledPartyNumber,
65         IE_CalledPartySubaddress,
66         IE_CallingPartyNumber,
67         IE_CallingPartySubaddress,
68         IE_Cause,
69         IE_QOSClass,
70         IE_TransitNetworkSelection,
71         IE_BroadbandSendingComplete,
72         IE_LIJCallId,
73         IE_Raw
74 } Q2931_IE_TYPE;
75
76 typedef struct _Q2931_IE {
77   Q2931_IE_TYPE  IEType;
78   ULONG  IELength;
79   UCHAR  IE[1];
80 } Q2931_IE, *PQ2931_IE;
81
82 typedef struct _AAL1_PARAMETERS {
83   UCHAR  Subtype;
84   UCHAR  CBRRate;
85   USHORT  Multiplier;
86   UCHAR  SourceClockRecoveryMethod;
87   UCHAR  ErrorCorrectionMethod;
88   USHORT  StructuredDataTransferBlocksize;
89   UCHAR  PartiallyFilledCellsMethod;
90 } AAL1_PARAMETERS, *PAAL1_PARAMETERS;
91
92 typedef struct _AAL34_PARAMETERS {
93   USHORT  ForwardMaxCPCSSDUSize;
94   USHORT  BackwardMaxCPCSSDUSize;
95   USHORT  LowestMID;
96   USHORT  HighestMID;
97   UCHAR  SSCSType;
98 } AAL34_PARAMETERS, *PAAL34_PARAMETERS;
99
100 /* AAL5_PARAMETERS.Mode constants */
101 #define AAL5_MODE_MESSAGE                                   0x01
102 #define AAL5_MODE_STREAMING                               0x02
103
104 /* AAL5_PARAMETERS.SSCSType constants */
105 #define AAL5_SSCS_NULL                                      0x00
106 #define AAL5_SSCS_SSCOP_ASSURED                 0x01
107 #define AAL5_SSCS_SSCOP_NON_ASSURED           0x02
108 #define AAL5_SSCS_FRAME_RELAY                     0x04
109
110 typedef struct _AAL5_PARAMETERS {
111   ULONG  ForwardMaxCPCSSDUSize;
112   ULONG  BackwardMaxCPCSSDUSize;
113   UCHAR  Mode;
114   UCHAR  SSCSType;
115 } AAL5_PARAMETERS, *PAAL5_PARAMETERS;
116
117 typedef struct _AALUSER_PARAMETERS {
118   ULONG  UserDefined;
119 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
120
121 typedef struct _AAL_PARAMETERS_IE {
122   ATM_AAL_TYPE  AALType;
123   union {
124     AAL1_PARAMETERS  AAL1Parameters;
125     AAL34_PARAMETERS  AAL34Parameters;
126     AAL5_PARAMETERS  AAL5Parameters;
127     AALUSER_PARAMETERS  AALUserParameters;
128   } AALSpecificParameters;
129 } AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
130
131
132 /* FIXME: Should the union be anonymous in C++ too?  If so,
133    can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
134    within anonymous union for C++. */
135 typedef struct _ATM_AAL_OOB_INFO
136 {
137         ATM_AAL_TYPE  AalType;
138 #ifndef __cplusplus
139         _ANONYMOUS_UNION
140 #endif
141         union {
142                 struct _ATM_AAL5_INFO {
143                         BOOLEAN  CellLossPriority;
144                         UCHAR  UserToUserIndication;
145                         UCHAR  CommonPartIndicator;
146                 } ATM_AAL5_INFO;
147                 
148                 struct _ATM_AAL0_INFO {
149                         BOOLEAN  CellLossPriority;
150                         UCHAR  PayLoadTypeIdentifier;
151                 } ATM_AAL0_INFO;
152 #ifndef __cplusplus
153         } DUMMYUNIONNAME;
154 #else
155         } u;
156 #endif
157 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
158
159 typedef struct _ATM_ADDRESS  { 
160   ATM_ADDRESSTYPE  AddressType; 
161   ULONG  NumberOfDigits; 
162   UCHAR  Address[ATM_ADDRESS_LENGTH]; 
163 } ATM_ADDRESS, *PATM_ADDRESS;
164
165 /* ATM_BHLI_IE.HighLayerInfoType constants */
166 #define BHLI_ISO                                                  0x00
167 #define BHLI_UserSpecific                             0x01
168 #define BHLI_HighLayerProfile               0x02
169 #define BHLI_VendorSpecificAppId          0x03
170
171 typedef struct _ATM_BHLI_IE {
172   ULONG  HighLayerInfoType;
173   ULONG  HighLayerInfoLength;
174   UCHAR  HighLayerInfo[8];
175 } ATM_BHLI_IE, *PATM_BHLI_IE;
176
177 /* ATM_BLLI_IE.Layer2Protocol constants */
178 #define BLLI_L2_ISO_1745                              0x01
179 #define BLLI_L2_Q921                                    0x02
180 #define BLLI_L2_X25L                                    0x06
181 #define BLLI_L2_X25M                                    0x07
182 #define BLLI_L2_ELAPB                                   0x08
183 #define BLLI_L2_HDLC_ARM                              0x09
184 #define BLLI_L2_HDLC_NRM                              0x0A
185 #define BLLI_L2_HDLC_ABM                              0x0B
186 #define BLLI_L2_LLC                                             0x0C
187 #define BLLI_L2_X75                                             0x0D
188 #define BLLI_L2_Q922                                    0x0E
189 #define BLLI_L2_USER_SPECIFIED            0x10
190 #define BLLI_L2_ISO_7776                              0x11
191
192 /* ATM_BLLI_IE.Layer3Protocol constants */
193 #define BLLI_L3_X25                                             0x06
194 #define BLLI_L3_ISO_8208                              0x07
195 #define BLLI_L3_X223                                    0x08
196 #define BLLI_L3_SIO_8473                              0x09
197 #define BLLI_L3_T70                                             0x0A
198 #define BLLI_L3_ISO_TR9577                          0x0B
199 #define BLLI_L3_USER_SPECIFIED            0x10
200
201 /* ATM_BLLI_IE.Layer3IPI constants */
202 #define BLLI_L3_IPI_SNAP                              0x80
203 #define BLLI_L3_IPI_IP                                0xCC
204
205 typedef struct _ATM_BLLI_IE {
206   ULONG  Layer2Protocol;
207   UCHAR  Layer2Mode;
208   UCHAR  Layer2WindowSize;
209   ULONG  Layer2UserSpecifiedProtocol;
210   ULONG  Layer3Protocol;
211   UCHAR  Layer3Mode;
212   UCHAR  Layer3DefaultPacketSize;
213   UCHAR  Layer3PacketWindowSize;
214   ULONG  Layer3UserSpecifiedProtocol;
215   ULONG  Layer3IPI;
216   UCHAR  SnapId[5];
217 } ATM_BLLI_IE, *PATM_BLLI_IE;
218
219 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
220 #define BCOB_A                                                    0x00
221 #define BCOB_C                                                    0x01
222 #define BCOB_X                                                    0x02
223
224 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
225 #define TT_NOIND                                                  0x00
226 #define TT_CBR                                                    0x04
227 #define TT_VBR                                                    0x08
228
229 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
230 #define TR_NOIND                                                  0x00
231 #define TR_END_TO_END                                   0x01
232 #define TR_NO_END_TO_END                              0x02
233
234 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
235 #define CLIP_NOT                                                  0x00
236 #define CLIP_SUS                                                  0x20
237
238 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
239 #define UP_P2P                                                    0x00
240 #define UP_P2MP                                                   0x01
241
242 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
243   UCHAR  BearerClass;
244   UCHAR  TrafficType;
245   UCHAR  TimingRequirements;
246   UCHAR  ClippingSusceptability;
247   UCHAR  UserPlaneConnectionConfig;
248 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
249
250 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
251   UCHAR  SendingComplete;
252 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
253
254 typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
255   ATM_ADDRESS  Number;
256   UCHAR  PresentationIndication;
257   UCHAR  ScreeningIndicator;
258 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
259
260 /* ATM_CAUSE_IE.Location constants */
261 #define ATM_CAUSE_LOC_USER                    0x00
262 #define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
263 #define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
264 #define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
265 #define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
266 #define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
267 #define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
268 #define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A
269
270 /* ATM_CAUSE_IE.Cause constants */
271 #define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
272 #define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
273 #define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
274 #define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
275 #define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
276 #define ATM_CAUSE_USER_BUSY                         0x11
277 #define ATM_CAUSE_NO_USER_RESPONDING                0x12
278 #define ATM_CAUSE_CALL_REJECTED                     0x15
279 #define ATM_CAUSE_NUMBER_CHANGED                    0x16
280 #define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
281 #define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
282 #define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
283 #define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
284 #define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
285 #define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
286 #define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
287 #define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
288 #define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
289 #define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
290 #define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
291 #define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
292 #define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
293 #define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
294 #define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
295 #define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
296 #define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
297 #define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
298 #define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
299 #define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
300 #define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
301 #define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
302 #define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
303 #define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
304 #define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
305 #define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
306 #define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
307 #define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
308 #define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
309 #define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
310 #define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
311 #define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
312 #define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
313
314 /* ATM_CAUSE_IE.Diagnostics constants */
315 #define ATM_CAUSE_COND_UNKNOWN            0x00
316 #define ATM_CAUSE_COND_PERMANENT          0x01
317 #define ATM_CAUSE_COND_TRANSIENT          0x02
318 #define ATM_CAUSE_REASON_USER             0x00
319 #define ATM_CAUSE_REASON_IE_MISSING       0x04
320 #define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
321 #define ATM_CAUSE_PU_PROVIDER             0x00
322 #define ATM_CAUSE_PU_USER                 0x08
323 #define ATM_CAUSE_NA_NORMAL               0x00
324 #define ATM_CAUSE_NA_ABNORMAL             0x04
325
326 typedef struct _ATM_CAUSE_IE {
327   UCHAR  Location;
328   UCHAR  Cause;
329   UCHAR  DiagnosticsLength;
330   UCHAR  Diagnostics[4];
331 } ATM_CAUSE_IE, *PATM_CAUSE_IE;
332
333
334 typedef ULONG   ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
335
336 /* ATM_FLOW_PARAMETERS.ServiceCategory constants */
337 #define ATM_SERVICE_CATEGORY_CBR                1
338 #define ATM_SERVICE_CATEGORY_VBR                2
339 #define ATM_SERVICE_CATEGORY_UBR                4
340 #define ATM_SERVICE_CATEGORY_ABR                8
341
342 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
343 #define ATM_FLOW_PARAMS_RSVD1_MPP               0x01
344
345 typedef struct _ATM_FLOW_PARAMETERS {
346   ATM_SERVICE_CATEGORY  ServiceCategory;
347   ULONG  AverageCellRate;
348   ULONG  PeakCellRate;
349   ULONG  MinimumCellRate;
350   ULONG  InitialCellRate;
351   ULONG  BurstLengthCells;
352   ULONG  MaxSduSize;
353   ULONG  TransientBufferExposure;
354   ULONG  CumulativeRMFixedRTT;
355   UCHAR  RateIncreaseFactor;
356   UCHAR  RateDecreaseFactor;
357   USHORT  ACRDecreaseTimeFactor;
358   UCHAR  MaximumCellsPerForwardRMCell;
359   UCHAR  MaximumForwardRMCellInterval;
360   UCHAR  CutoffDecreaseFactor;
361   UCHAR  Reserved1;
362   ULONG  MissingRMCellCount;
363   ULONG  Reserved2;
364   ULONG  Reserved3;
365 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
366
367 typedef struct _ATM_VPIVCI {
368   ULONG  Vpi;
369   ULONG  Vci;
370 } ATM_VPIVCI, *PATM_VPIVCI;
371
372 typedef struct _ATM_MEDIA_PARAMETERS {
373   ATM_VPIVCI  ConnectionId;
374   ATM_AAL_TYPE  AALType;
375   ULONG  CellDelayVariationCLP0;
376   ULONG  CellDelayVariationCLP1;
377   ULONG  CellLossRatioCLP0;
378   ULONG  CellLossRatioCLP1;
379   ULONG  CellTransferDelayCLP0;
380   ULONG  CellTransferDelayCLP1;
381   ULONG  DefaultCLP;
382   ATM_FLOW_PARAMETERS  Transmit;
383   ATM_FLOW_PARAMETERS  Receive;
384 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
385
386 typedef struct _ATM_PVC_SAP {
387   ATM_BLLI_IE  Blli;
388   ATM_BHLI_IE  Bhli;
389 } ATM_PVC_SAP, *PATM_PVC_SAP;
390
391 /* ATM_QOS_CLASS_IE constants */
392 #define QOS_CLASS0                                              0x00
393 #define QOS_CLASS1                                              0x01
394 #define QOS_CLASS2                                              0x02
395 #define QOS_CLASS3                                              0x03
396 #define QOS_CLASS4                                              0x04
397
398 typedef struct _ATM_QOS_CLASS_IE {
399   UCHAR  QOSClassForward;
400   UCHAR  QOSClassBackward;
401 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
402
403 typedef struct _ATM_RAW_IE {
404   ULONG  RawIELength;
405   ULONG  RawIEType;
406   UCHAR  RawIEValue[1];
407 } ATM_RAW_IE, *PATM_RAW_IE;
408
409 typedef struct _ATM_SAP {
410   ATM_BLLI_IE  Blli;
411   ATM_BHLI_IE  Bhli;
412   ULONG  NumberOfAddresses;
413   UCHAR  Addresses[1];
414 } ATM_SAP, *PATM_SAP;
415
416 typedef struct _ATM_TRAFFIC_DESCRIPTOR {
417   ULONG  PeakCellRateCLP0;
418   ULONG  PeakCellRateCLP01;
419   ULONG  SustainableCellRateCLP0;
420   ULONG  SustainableCellRateCLP01;
421   ULONG  MaximumBurstSizeCLP0;
422   ULONG  MaximumBurstSizeCLP01;
423   BOOLEAN  BestEffort;
424   BOOLEAN  Tagging;
425 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
426
427 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
428   ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
429   ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
430   BOOLEAN  BestEffort;
431 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
432
433 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
434 #define TNS_TYPE_NATIONAL                                   0x40
435
436 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
437 #define TNS_PLAN_CARRIER_ID_CODE                0x01
438
439 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
440   UCHAR  TypeOfNetworkId;
441   UCHAR  NetworkIdPlan;
442   UCHAR  NetworkIdLength;
443   UCHAR  NetworkId[1];
444 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
445
446 typedef struct _ATM_LIJ_CALLID_IE {
447         ULONG  Identifier;
448 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
449
450 /* Q2931_ADD_PVC.Flags constants */
451 #define CO_FLAG_SIGNALING_VC              0x00000001
452 #define CO_FLAG_NO_DEST_SAP               0x00000002
453
454 typedef struct _Q2931_ADD_PVC {
455   ATM_ADDRESS  CalledParty;
456   ATM_ADDRESS  CallingParty;
457   ATM_VPIVCI  ConnectionId;
458   ATM_AAL_TYPE  AALType;
459   ATM_FLOW_PARAMETERS  ForwardFP;
460   ATM_FLOW_PARAMETERS  BackwardFP;
461   ULONG  Flags;
462   ATM_PVC_SAP  LocalSap;
463   ATM_PVC_SAP  DestinationSap;
464   BOOLEAN  LIJIdPresent;
465   ATM_LIJ_CALLID_IE  LIJId;
466 } Q2931_ADD_PVC, *PQ2931_ADD_PVC;
467
468 typedef struct _Q2931_DELETE_PVC {
469   ATM_VPIVCI  ConnectionId;
470 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
471
472 typedef ATM_ADDRESS     ATM_CALLED_PARTY_NUMBER_IE;
473 typedef ATM_ADDRESS     ATM_CALLED_PARTY_SUBADDRESS_IE;
474 typedef ATM_ADDRESS     ATM_CALLING_PARTY_SUBADDRESS_IE;
475
476 typedef struct _Q2931_CALLMGR_PARAMETERS {
477   ATM_ADDRESS  CalledParty;
478   ATM_ADDRESS  CallingParty;
479   ULONG  InfoElementCount;
480   UCHAR  InfoElements[1];
481 } Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
482
483 typedef struct _ATM_VC_RATES_SUPPORTED {
484   ULONG  MinCellRate;
485   ULONG  MaxCellRate;
486 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
487
488 typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
489
490 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
491 #define ATM_SERVICE_REGISTRY_LECS                     1
492 #define ATM_SERVICE_REGISTRY_ANS                      2
493
494 typedef struct _ATM_SERVICE_ADDRESS_LIST {
495   ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
496   ULONG  NumberOfAddressesAvailable;
497   ULONG  NumberOfAddressesReturned;
498   ATM_ADDRESS  Address[1];
499 } ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
500
501 #ifdef __cplusplus
502 }
503 #endif
504
505 #endif /* __ATM_H */