Reintegrate header-work branch. Important changes include continued work on headers...
[reactos.git] / reactos / include / ddk / atm.h
index 0ff43c3..d23f278 100644 (file)
  *
  */
 
-#ifndef _ATM_H
-#define _ATM_H
+#pragma once
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-typedef ULONG  ATM_ADDRESSTYPE;
+typedef ULONG ATM_ADDRESSTYPE;
 
-#define SAP_TYPE_NSAP                                  1
-#define SAP_TYPE_E164                                  2
+#define SAP_TYPE_NSAP                  1
+#define SAP_TYPE_E164                  2
 
-#define ATM_MEDIA_SPECIFIC                1
+#define ATM_MEDIA_SPECIFIC             1
 
-#define CALLMGR_SPECIFIC_Q2931            1
+#define CALLMGR_SPECIFIC_Q2931         1
 
-#define        ATM_NSAP                                                  0
-#define        ATM_E164                                                  1
+#define ATM_NSAP                       0
+#define ATM_E164                       1
 
-#define        ATM_MAC_ADDRESS_LENGTH            6
-#define        ATM_ADDRESS_LENGTH                          20
+#define ATM_MAC_ADDRESS_LENGTH         6
+#define ATM_ADDRESS_LENGTH             20
 
-typedef ULONG  ATM_AAL_TYPE, *PATM_AAL_TYPE;
+typedef ULONG ATM_AAL_TYPE, *PATM_AAL_TYPE;
 
-#define        AAL_TYPE_AAL0                                   1
-#define        AAL_TYPE_AAL1                                   2
-#define        AAL_TYPE_AAL34                                4
-#define        AAL_TYPE_AAL5                                   8
+#define AAL_TYPE_AAL0                  1
+#define AAL_TYPE_AAL1                  2
+#define AAL_TYPE_AAL34                 4
+#define AAL_TYPE_AAL5                  8
 
-#define ATM_ADDR_BLANK_CHAR                                    L' '
-#define ATM_ADDR_E164_START_CHAR                     L'+'
-#define ATM_ADDR_PUNCTUATION_CHAR                    L'.'
+#define ATM_ADDR_BLANK_CHAR            L' '
+#define ATM_ADDR_E164_START_CHAR       L'+'
+#define ATM_ADDR_PUNCTUATION_CHAR      L'.'
 
-typedef enum {
-       IE_AALParameters,
-       IE_TrafficDescriptor,
-       IE_BroadbandBearerCapability,
-       IE_BHLI,
-       IE_BLLI,
-       IE_CalledPartyNumber,
-       IE_CalledPartySubaddress,
-       IE_CallingPartyNumber,
-       IE_CallingPartySubaddress,
-       IE_Cause,
-       IE_QOSClass,
-       IE_TransitNetworkSelection,
-       IE_BroadbandSendingComplete,
-       IE_LIJCallId,
-       IE_Raw
+typedef enum _Q2931_IE_TYPE {
+  IE_AALParameters,
+  IE_TrafficDescriptor,
+  IE_BroadbandBearerCapability,
+  IE_BHLI,
+  IE_BLLI,
+  IE_CalledPartyNumber,
+  IE_CalledPartySubaddress,
+  IE_CallingPartyNumber,
+  IE_CallingPartySubaddress,
+  IE_Cause,
+  IE_QOSClass,
+  IE_TransitNetworkSelection,
+  IE_BroadbandSendingComplete,
+  IE_LIJCallId,
+  IE_Raw
 } Q2931_IE_TYPE;
 
 typedef struct _Q2931_IE {
-  Q2931_IE_TYPE  IEType;
-  ULONG  IELength;
-  UCHAR  IE[1];
+  Q2931_IE_TYPE IEType;
+  ULONG IELength;
+  UCHAR IE[1];
 } Q2931_IE, *PQ2931_IE;
 
 typedef struct _AAL1_PARAMETERS {
-  UCHAR  Subtype;
-  UCHAR  CBRRate;
-  USHORT  Multiplier;
-  UCHAR  SourceClockRecoveryMethod;
-  UCHAR  ErrorCorrectionMethod;
-  USHORT  StructuredDataTransferBlocksize;
-  UCHAR  PartiallyFilledCellsMethod;
+  UCHAR Subtype;
+  UCHAR CBRRate;
+  USHORT Multiplier;
+  UCHAR SourceClockRecoveryMethod;
+  UCHAR ErrorCorrectionMethod;
+  USHORT StructuredDataTransferBlocksize;
+  UCHAR PartiallyFilledCellsMethod;
 } AAL1_PARAMETERS, *PAAL1_PARAMETERS;
 
 typedef struct _AAL34_PARAMETERS {
-  USHORT  ForwardMaxCPCSSDUSize;
-  USHORT  BackwardMaxCPCSSDUSize;
-  USHORT  LowestMID;
-  USHORT  HighestMID;
-  UCHAR  SSCSType;
+  USHORT ForwardMaxCPCSSDUSize;
+  USHORT BackwardMaxCPCSSDUSize;
+  USHORT LowestMID;
+  USHORT HighestMID;
+  UCHAR SSCSType;
 } AAL34_PARAMETERS, *PAAL34_PARAMETERS;
 
 /* AAL5_PARAMETERS.Mode constants */
-#define AAL5_MODE_MESSAGE                                  0x01
-#define AAL5_MODE_STREAMING                              0x02
+#define AAL5_MODE_MESSAGE              0x01
+#define AAL5_MODE_STREAMING            0x02
 
 /* AAL5_PARAMETERS.SSCSType constants */
-#define AAL5_SSCS_NULL                                     0x00
-#define AAL5_SSCS_SSCOP_ASSURED                        0x01
-#define AAL5_SSCS_SSCOP_NON_ASSURED          0x02
-#define AAL5_SSCS_FRAME_RELAY                    0x04
+#define AAL5_SSCS_NULL                 0x00
+#define AAL5_SSCS_SSCOP_ASSURED        0x01
+#define AAL5_SSCS_SSCOP_NON_ASSURED    0x02
+#define AAL5_SSCS_FRAME_RELAY          0x04
 
 typedef struct _AAL5_PARAMETERS {
-  ULONG  ForwardMaxCPCSSDUSize;
-  ULONG  BackwardMaxCPCSSDUSize;
-  UCHAR  Mode;
-  UCHAR  SSCSType;
+  ULONG ForwardMaxCPCSSDUSize;
+  ULONG BackwardMaxCPCSSDUSize;
+  UCHAR Mode;
+  UCHAR SSCSType;
 } AAL5_PARAMETERS, *PAAL5_PARAMETERS;
 
 typedef struct _AALUSER_PARAMETERS {
-  ULONG  UserDefined;
+  ULONG UserDefined;
 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
 
 typedef struct _AAL_PARAMETERS_IE {
-  ATM_AAL_TYPE  AALType;
+  ATM_AAL_TYPE AALType;
   union {
-    AAL1_PARAMETERS  AAL1Parameters;
-    AAL34_PARAMETERS  AAL34Parameters;
-    AAL5_PARAMETERS  AAL5Parameters;
-    AALUSER_PARAMETERS  AALUserParameters;
+    AAL1_PARAMETERS AAL1Parameters;
+    AAL34_PARAMETERS AAL34Parameters;
+    AAL5_PARAMETERS AAL5Parameters;
+    AALUSER_PARAMETERS AALUserParameters;
   } AALSpecificParameters;
 } AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
 
 struct _ATM_AAL5_INFO {
-       BOOLEAN  CellLossPriority;
-       UCHAR  UserToUserIndication;
-       UCHAR  CommonPartIndicator;
+  BOOLEAN CellLossPriority;
+  UCHAR UserToUserIndication;
+  UCHAR CommonPartIndicator;
 };
 
 struct _ATM_AAL0_INFO {
-       BOOLEAN  CellLossPriority;
-       UCHAR  PayLoadTypeIdentifier;
+  BOOLEAN CellLossPriority;
+  UCHAR PayLoadTypeIdentifier;
 };
 
-/* FIXME: Should the union be anonymous in C++ too? */
-typedef struct _ATM_AAL_OOB_INFO
-{
-       ATM_AAL_TYPE  AalType;
-#ifndef __cplusplus
-       _ANONYMOUS_UNION
-#endif
-       union {
-               struct _ATM_AAL5_INFO ATM_AAL5_INFO;
-               struct _ATM_AAL0_INFO ATM_AAL0_INFO;
-#ifndef __cplusplus
-       } DUMMYUNIONNAME;
-#else
-       } u;
-#endif
+typedef struct _ATM_AAL_OOB_INFO {
+  ATM_AAL_TYPE AalType;
+  union {
+    struct _ATM_AAL5_INFO ATM_AAL5_INFO;
+    struct _ATM_AAL0_INFO ATM_AAL0_INFO;
+  };
 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
 
-typedef struct _ATM_ADDRESS  {
-  ATM_ADDRESSTYPE  AddressType;
-  ULONG  NumberOfDigits;
-  UCHAR  Address[ATM_ADDRESS_LENGTH];
+typedef struct _ATM_ADDRESS {
+  ATM_ADDRESSTYPE AddressType;
+  ULONG NumberOfDigits;
+  UCHAR Address[ATM_ADDRESS_LENGTH];
 } ATM_ADDRESS, *PATM_ADDRESS;
 
+#define ATM_PHYS_RATE_SONET_STS3C      155520000
+#define ATM_PHYS_RATE_IBM_25           25600000
+
+#define ATM_CELL_TRANSFER_CAPACITY_SONET_STS3C   149760000
+#define ATM_CELL_TRANSFER_CAPACITY_IBM_25        25125926
+
+#define ATM_USER_DATA_RATE_SONET_155   1356317
+#define ATM_USER_DATA_RATE_IBM_25      227556
+
 /* ATM_BHLI_IE.HighLayerInfoType constants */
-#define BHLI_ISO                                                 0x00
-#define BHLI_UserSpecific                            0x01
-#define BHLI_HighLayerProfile              0x02
-#define BHLI_VendorSpecificAppId          0x03
+#define BHLI_ISO                       0x00
+#define BHLI_UserSpecific              0x01
+#define BHLI_HighLayerProfile          0x02
+#define BHLI_VendorSpecificAppId       0x03
 
 typedef struct _ATM_BHLI_IE {
-  ULONG  HighLayerInfoType;
-  ULONG  HighLayerInfoLength;
-  UCHAR  HighLayerInfo[8];
+  ULONG HighLayerInfoType;
+  ULONG HighLayerInfoLength;
+  UCHAR HighLayerInfo[8];
 } ATM_BHLI_IE, *PATM_BHLI_IE;
 
 /* ATM_BLLI_IE.Layer2Protocol constants */
-#define BLLI_L2_ISO_1745                             0x01
-#define BLLI_L2_Q921                                   0x02
-#define BLLI_L2_X25L                                   0x06
-#define BLLI_L2_X25M                                   0x07
-#define BLLI_L2_ELAPB                                  0x08
-#define BLLI_L2_HDLC_ARM                             0x09
-#define BLLI_L2_HDLC_NRM                             0x0A
-#define BLLI_L2_HDLC_ABM                             0x0B
-#define BLLI_L2_LLC                                            0x0C
-#define BLLI_L2_X75                                            0x0D
-#define BLLI_L2_Q922                                   0x0E
-#define BLLI_L2_USER_SPECIFIED            0x10
-#define BLLI_L2_ISO_7776                             0x11
+#define BLLI_L2_ISO_1745               0x01
+#define BLLI_L2_Q921                   0x02
+#define BLLI_L2_X25L                   0x06
+#define BLLI_L2_X25M                   0x07
+#define BLLI_L2_ELAPB                  0x08
+#define BLLI_L2_HDLC_ARM               0x09
+#define BLLI_L2_HDLC_NRM               0x0A
+#define BLLI_L2_HDLC_ABM               0x0B
+#define BLLI_L2_LLC                    0x0C
+#define BLLI_L2_X75                    0x0D
+#define BLLI_L2_Q922                   0x0E
+#define BLLI_L2_USER_SPECIFIED         0x10
+#define BLLI_L2_ISO_7776               0x11
 
 /* ATM_BLLI_IE.Layer3Protocol constants */
-#define BLLI_L3_X25                                            0x06
-#define BLLI_L3_ISO_8208                             0x07
-#define BLLI_L3_X223                                   0x08
-#define BLLI_L3_SIO_8473                             0x09
-#define BLLI_L3_T70                                            0x0A
-#define BLLI_L3_ISO_TR9577                         0x0B
-#define BLLI_L3_USER_SPECIFIED           0x10
+#define BLLI_L3_X25                    0x06
+#define BLLI_L3_ISO_8208               0x07
+#define BLLI_L3_X223                   0x08
+#define BLLI_L3_SIO_8473               0x09
+#define BLLI_L3_T70                    0x0A
+#define BLLI_L3_ISO_TR9577             0x0B
+#define BLLI_L3_USER_SPECIFIED         0x10
 
 /* ATM_BLLI_IE.Layer3IPI constants */
-#define BLLI_L3_IPI_SNAP                             0x80
-#define BLLI_L3_IPI_IP                               0xCC
+#define BLLI_L3_IPI_SNAP               0x80
+#define BLLI_L3_IPI_IP                 0xCC
 
 typedef struct _ATM_BLLI_IE {
-  ULONG  Layer2Protocol;
-  UCHAR  Layer2Mode;
-  UCHAR  Layer2WindowSize;
-  ULONG  Layer2UserSpecifiedProtocol;
-  ULONG  Layer3Protocol;
-  UCHAR  Layer3Mode;
-  UCHAR  Layer3DefaultPacketSize;
-  UCHAR  Layer3PacketWindowSize;
-  ULONG  Layer3UserSpecifiedProtocol;
-  ULONG  Layer3IPI;
-  UCHAR  SnapId[5];
+  ULONG Layer2Protocol;
+  UCHAR Layer2Mode;
+  UCHAR Layer2WindowSize;
+  ULONG Layer2UserSpecifiedProtocol;
+  ULONG Layer3Protocol;
+  UCHAR Layer3Mode;
+  UCHAR Layer3DefaultPacketSize;
+  UCHAR Layer3PacketWindowSize;
+  ULONG Layer3UserSpecifiedProtocol;
+  ULONG Layer3IPI;
+  UCHAR SnapId[5];
 } ATM_BLLI_IE, *PATM_BLLI_IE;
 
 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
-#define BCOB_A                                                   0x00
-#define BCOB_C                                                   0x01
-#define BCOB_X                                                   0x02
+#define BCOB_A                         0x00
+#define BCOB_C                         0x01
+#define BCOB_X                         0x02
 
 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
-#define TT_NOIND                                                 0x00
-#define TT_CBR                                                   0x04
-#define TT_VBR                                                   0x08
+#define TT_NOIND                       0x00
+#define TT_CBR                         0x04
+#define TT_VBR                         0x08
 
 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
-#define TR_NOIND                                                 0x00
-#define TR_END_TO_END                                  0x01
-#define TR_NO_END_TO_END                             0x02
+#define TR_NOIND                       0x00
+#define TR_END_TO_END                  0x01
+#define TR_NO_END_TO_END               0x02
 
 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
-#define CLIP_NOT                                                 0x00
-#define CLIP_SUS                                                 0x20
+#define CLIP_NOT                       0x00
+#define CLIP_SUS                       0x20
 
 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
-#define UP_P2P                                                   0x00
-#define UP_P2MP                                                          0x01
+#define UP_P2P                         0x00
+#define UP_P2MP                        0x01
 
 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
-  UCHAR  BearerClass;
-  UCHAR  TrafficType;
-  UCHAR  TimingRequirements;
-  UCHAR  ClippingSusceptability;
-  UCHAR  UserPlaneConnectionConfig;
+  UCHAR BearerClass;
+  UCHAR TrafficType;
+  UCHAR TimingRequirements;
+  UCHAR ClippingSusceptability;
+  UCHAR UserPlaneConnectionConfig;
 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
 
 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
-  UCHAR  SendingComplete;
+  UCHAR SendingComplete;
 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
 
 typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
-  ATM_ADDRESS  Number;
-  UCHAR  PresentationIndication;
-  UCHAR  ScreeningIndicator;
+  ATM_ADDRESS Number;
+  UCHAR PresentationIndication;
+  UCHAR ScreeningIndicator;
 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
 
 /* ATM_CAUSE_IE.Location constants */
-#define ATM_CAUSE_LOC_USER                    0x00
-#define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
-#define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
-#define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
-#define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
-#define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
-#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
-#define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A
+#define ATM_CAUSE_LOC_USER                  0x00
+#define ATM_CAUSE_LOC_PRIVATE_LOCAL         0x01
+#define ATM_CAUSE_LOC_PUBLIC_LOCAL          0x02
+#define ATM_CAUSE_LOC_TRANSIT_NETWORK       0x03
+#define ATM_CAUSE_LOC_PUBLIC_REMOTE         0x04
+#define ATM_CAUSE_LOC_PRIVATE_REMOTE        0x05
+#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK 0x07
+#define ATM_CAUSE_LOC_BEYOND_INTERWORKING   0x0A
 
 /* ATM_CAUSE_IE.Cause constants */
 #define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
@@ -322,182 +321,197 @@ typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
 #define ATM_CAUSE_NA_ABNORMAL             0x04
 
 typedef struct _ATM_CAUSE_IE {
-  UCHAR  Location;
-  UCHAR  Cause;
-  UCHAR  DiagnosticsLength;
-  UCHAR  Diagnostics[4];
+  UCHAR Location;
+  UCHAR Cause;
+  UCHAR DiagnosticsLength;
+  UCHAR Diagnostics[4];
 } ATM_CAUSE_IE, *PATM_CAUSE_IE;
 
 
-typedef ULONG  ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
+typedef ULONG ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
 
 /* ATM_FLOW_PARAMETERS.ServiceCategory constants */
-#define        ATM_SERVICE_CATEGORY_CBR                1
-#define        ATM_SERVICE_CATEGORY_VBR                2
-#define        ATM_SERVICE_CATEGORY_UBR                4
-#define        ATM_SERVICE_CATEGORY_ABR                8
+#define ATM_SERVICE_CATEGORY_CBR       1
+#define ATM_SERVICE_CATEGORY_VBR       2
+#define ATM_SERVICE_CATEGORY_UBR       4
+#define ATM_SERVICE_CATEGORY_ABR       8
 
 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
-#define ATM_FLOW_PARAMS_RSVD1_MPP              0x01
+#define ATM_FLOW_PARAMS_RSVD1_MPP      0x01
+
+#ifndef SAP_FIELD_ABSENT
+#define SAP_FIELD_ABSENT ((ULONG)0xfffffffe)
+#endif
+
+#ifndef SAP_FIELD_ANY
+#define SAP_FIELD_ANY ((ULONG)0xffffffff)
+#endif
+
+#define SAP_FIELD_ANY_AESA_SEL ((ULONG)0xfffffffa)
+#define SAP_FIELD_ANY_AESA_REST ((ULONG)0xfffffffb)
 
 typedef struct _ATM_FLOW_PARAMETERS {
-  ATM_SERVICE_CATEGORY  ServiceCategory;
-  ULONG  AverageCellRate;
-  ULONG  PeakCellRate;
-  ULONG  MinimumCellRate;
-  ULONG  InitialCellRate;
-  ULONG  BurstLengthCells;
-  ULONG  MaxSduSize;
-  ULONG  TransientBufferExposure;
-  ULONG  CumulativeRMFixedRTT;
-  UCHAR  RateIncreaseFactor;
-  UCHAR  RateDecreaseFactor;
-  USHORT  ACRDecreaseTimeFactor;
-  UCHAR  MaximumCellsPerForwardRMCell;
-  UCHAR  MaximumForwardRMCellInterval;
-  UCHAR  CutoffDecreaseFactor;
-  UCHAR  Reserved1;
-  ULONG  MissingRMCellCount;
-  ULONG  Reserved2;
-  ULONG  Reserved3;
+  ATM_SERVICE_CATEGORY ServiceCategory;
+  ULONG AverageCellRate;
+  ULONG PeakCellRate;
+  ULONG MinimumCellRate;
+  ULONG InitialCellRate;
+  ULONG BurstLengthCells;
+  ULONG MaxSduSize;
+  ULONG TransientBufferExposure;
+  ULONG CumulativeRMFixedRTT;
+  UCHAR RateIncreaseFactor;
+  UCHAR RateDecreaseFactor;
+  USHORT ACRDecreaseTimeFactor;
+  UCHAR MaximumCellsPerForwardRMCell;
+  UCHAR MaximumForwardRMCellInterval;
+  UCHAR CutoffDecreaseFactor;
+  UCHAR Reserved1;
+  ULONG MissingRMCellCount;
+  ULONG Reserved2;
+  ULONG Reserved3;
 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
 
 typedef struct _ATM_VPIVCI {
-  ULONG  Vpi;
-  ULONG  Vci;
+  ULONG Vpi;
+  ULONG Vci;
 } ATM_VPIVCI, *PATM_VPIVCI;
 
 typedef struct _ATM_MEDIA_PARAMETERS {
-  ATM_VPIVCI  ConnectionId;
-  ATM_AAL_TYPE  AALType;
-  ULONG  CellDelayVariationCLP0;
-  ULONG  CellDelayVariationCLP1;
-  ULONG  CellLossRatioCLP0;
-  ULONG  CellLossRatioCLP1;
-  ULONG  CellTransferDelayCLP0;
-  ULONG  CellTransferDelayCLP1;
-  ULONG  DefaultCLP;
-  ATM_FLOW_PARAMETERS  Transmit;
-  ATM_FLOW_PARAMETERS  Receive;
+  ATM_VPIVCI ConnectionId;
+  ATM_AAL_TYPE AALType;
+  ULONG CellDelayVariationCLP0;
+  ULONG CellDelayVariationCLP1;
+  ULONG CellLossRatioCLP0;
+  ULONG CellLossRatioCLP1;
+  ULONG CellTransferDelayCLP0;
+  ULONG CellTransferDelayCLP1;
+  ULONG DefaultCLP;
+  ATM_FLOW_PARAMETERS Transmit;
+  ATM_FLOW_PARAMETERS Receive;
 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
 
 typedef struct _ATM_PVC_SAP {
-  ATM_BLLI_IE  Blli;
-  ATM_BHLI_IE  Bhli;
+  ATM_BLLI_IE Blli;
+  ATM_BHLI_IE Bhli;
 } ATM_PVC_SAP, *PATM_PVC_SAP;
 
 /* ATM_QOS_CLASS_IE constants */
-#define QOS_CLASS0                                             0x00
-#define QOS_CLASS1                                             0x01
-#define QOS_CLASS2                                             0x02
-#define QOS_CLASS3                                             0x03
-#define QOS_CLASS4                                             0x04
+#define QOS_CLASS0                     0x00
+#define QOS_CLASS1                     0x01
+#define QOS_CLASS2                     0x02
+#define QOS_CLASS3                     0x03
+#define QOS_CLASS4                     0x04
 
 typedef struct _ATM_QOS_CLASS_IE {
-  UCHAR  QOSClassForward;
-  UCHAR  QOSClassBackward;
+  UCHAR QOSClassForward;
+  UCHAR QOSClassBackward;
 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
 
 typedef struct _ATM_RAW_IE {
-  ULONG  RawIELength;
-  ULONG  RawIEType;
-  UCHAR  RawIEValue[1];
+  ULONG RawIELength;
+  ULONG RawIEType;
+  UCHAR RawIEValue[1];
 } ATM_RAW_IE, *PATM_RAW_IE;
 
 typedef struct _ATM_SAP {
-  ATM_BLLI_IE  Blli;
-  ATM_BHLI_IE  Bhli;
-  ULONG  NumberOfAddresses;
-  UCHAR  Addresses[1];
+  ATM_BLLI_IE Blli;
+  ATM_BHLI_IE Bhli;
+  ULONG NumberOfAddresses;
+  UCHAR Addresses[1];
 } ATM_SAP, *PATM_SAP;
 
 typedef struct _ATM_TRAFFIC_DESCRIPTOR {
-  ULONG  PeakCellRateCLP0;
-  ULONG  PeakCellRateCLP01;
-  ULONG  SustainableCellRateCLP0;
-  ULONG  SustainableCellRateCLP01;
-  ULONG  MaximumBurstSizeCLP0;
-  ULONG  MaximumBurstSizeCLP01;
-  BOOLEAN  BestEffort;
-  BOOLEAN  Tagging;
+  ULONG PeakCellRateCLP0;
+  ULONG PeakCellRateCLP01;
+  ULONG SustainableCellRateCLP0;
+  ULONG SustainableCellRateCLP01;
+  ULONG MaximumBurstSizeCLP0;
+  ULONG MaximumBurstSizeCLP01;
+  BOOLEAN Tagging;
 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
 
 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
-  ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
-  ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
-  BOOLEAN  BestEffort;
+  ATM_TRAFFIC_DESCRIPTOR ForwardTD;
+  ATM_TRAFFIC_DESCRIPTOR BackwardTD;
+  BOOLEAN BestEffort;
 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
 
 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
-#define TNS_TYPE_NATIONAL                                  0x40
+#define TNS_TYPE_NATIONAL              0x40
 
 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
-#define TNS_PLAN_CARRIER_ID_CODE               0x01
+#define TNS_PLAN_CARRIER_ID_CODE       0x01
 
 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
-  UCHAR  TypeOfNetworkId;
-  UCHAR  NetworkIdPlan;
-  UCHAR  NetworkIdLength;
-  UCHAR  NetworkId[1];
+  UCHAR TypeOfNetworkId;
+  UCHAR NetworkIdPlan;
+  UCHAR NetworkIdLength;
+  UCHAR NetworkId[1];
 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
 
 typedef struct _ATM_LIJ_CALLID_IE {
-       ULONG  Identifier;
+  ULONG Identifier;
 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
 
 /* Q2931_ADD_PVC.Flags constants */
-#define CO_FLAG_SIGNALING_VC              0x00000001
-#define CO_FLAG_NO_DEST_SAP               0x00000002
+#define CO_FLAG_SIGNALING_VC           0x00000001
+#define CO_FLAG_NO_DEST_SAP            0x00000002
+#define CO_FLAG_NO_LOCAL_SAP           0x00000004
 
 typedef struct _Q2931_ADD_PVC {
-  ATM_ADDRESS  CalledParty;
-  ATM_ADDRESS  CallingParty;
-  ATM_VPIVCI  ConnectionId;
-  ATM_AAL_TYPE  AALType;
-  ATM_FLOW_PARAMETERS  ForwardFP;
-  ATM_FLOW_PARAMETERS  BackwardFP;
-  ULONG  Flags;
-  ATM_PVC_SAP  LocalSap;
-  ATM_PVC_SAP  DestinationSap;
-  BOOLEAN  LIJIdPresent;
-  ATM_LIJ_CALLID_IE  LIJId;
+  ATM_ADDRESS CalledParty;
+  ATM_ADDRESS CallingParty;
+  ATM_VPIVCI ConnectionId;
+  ATM_AAL_TYPE AALType;
+  ATM_FLOW_PARAMETERS ForwardFP;
+  ATM_FLOW_PARAMETERS BackwardFP;
+  ULONG Flags;
+  ATM_PVC_SAP LocalSap;
+  ATM_PVC_SAP DestinationSap;
+  BOOLEAN LIJIdPresent;
+  ATM_LIJ_CALLID_IE LIJId;
 } Q2931_ADD_PVC, *PQ2931_ADD_PVC;
 
 typedef struct _Q2931_DELETE_PVC {
-  ATM_VPIVCI  ConnectionId;
+  ATM_VPIVCI ConnectionId;
 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
 
-typedef ATM_ADDRESS    ATM_CALLED_PARTY_NUMBER_IE;
-typedef ATM_ADDRESS    ATM_CALLED_PARTY_SUBADDRESS_IE;
-typedef ATM_ADDRESS    ATM_CALLING_PARTY_SUBADDRESS_IE;
+typedef struct _CO_GET_CALL_INFORMATION {
+  ULONG CallInfoType;
+  ULONG CallInfoLength;
+  PVOID CallInfoBuffer;
+} CO_GET_CALL_INFORMATION, *PCO_GET_CALL_INFORMATION;
+
+typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE;
+typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE;
+typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE;
 
 typedef struct _Q2931_CALLMGR_PARAMETERS {
-  ATM_ADDRESS  CalledParty;
-  ATM_ADDRESS  CallingParty;
-  ULONG  InfoElementCount;
-  UCHAR  InfoElements[1];
+  ATM_ADDRESS CalledParty;
+  ATM_ADDRESS CallingParty;
+  ULONG InfoElementCount;
+  UCHAR InfoElements[1];
 } Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
 
 typedef struct _ATM_VC_RATES_SUPPORTED {
-  ULONG  MinCellRate;
-  ULONG  MaxCellRate;
+  ULONG MinCellRate;
+  ULONG MaxCellRate;
 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
 
 typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
 
 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
-#define ATM_SERVICE_REGISTRY_LECS                    1
-#define ATM_SERVICE_REGISTRY_ANS                     2
+#define ATM_SERVICE_REGISTRY_LECS      1
+#define ATM_SERVICE_REGISTRY_ANS       2
 
 typedef struct _ATM_SERVICE_ADDRESS_LIST {
-  ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
-  ULONG  NumberOfAddressesAvailable;
-  ULONG  NumberOfAddressesReturned;
-  ATM_ADDRESS  Address[1];
+  ATM_SERVICE_REGISTRY_TYPE ServiceRegistryType;
+  ULONG NumberOfAddressesAvailable;
+  ULONG NumberOfAddressesReturned;
+  ATM_ADDRESS Address[1];
 } ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
 
 #ifdef __cplusplus
 }
 #endif
-
-#endif /* _ATM_H */