OSDN Git Service

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