📄 atm.h
字号:
/* * atm.h * * ATM support * * This file is part of the w32api package. * * Contributors: * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __ATM_H#define __ATM_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endiftypedef ULONG ATM_ADDRESSTYPE;#define SAP_TYPE_NSAP 1#define SAP_TYPE_E164 2#define ATM_MEDIA_SPECIFIC 1#define CALLMGR_SPECIFIC_Q2931 1#define ATM_NSAP 0#define ATM_E164 1#define ATM_MAC_ADDRESS_LENGTH 6#define ATM_ADDRESS_LENGTH 20typedef 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 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} Q2931_IE_TYPE;typedef struct _Q2931_IE { 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;} AAL1_PARAMETERS, *PAAL1_PARAMETERS;typedef struct _AAL34_PARAMETERS { 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/* 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 0x04typedef struct _AAL5_PARAMETERS { ULONG ForwardMaxCPCSSDUSize; ULONG BackwardMaxCPCSSDUSize; UCHAR Mode; UCHAR SSCSType;} AAL5_PARAMETERS, *PAAL5_PARAMETERS;typedef struct _AALUSER_PARAMETERS { ULONG UserDefined;} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;typedef struct _AAL_PARAMETERS_IE { ATM_AAL_TYPE AALType; union { AAL1_PARAMETERS AAL1Parameters; AAL34_PARAMETERS AAL34Parameters; AAL5_PARAMETERS AAL5Parameters; AALUSER_PARAMETERS AALUserParameters; } AALSpecificParameters;} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;/* FIXME: Should the union be anonymous in C++ too? If so, can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO within anonymous union for C++. */typedef struct _ATM_AAL_OOB_INFO{ ATM_AAL_TYPE AalType;#ifndef __cplusplus _ANONYMOUS_UNION#endif union { struct _ATM_AAL5_INFO { BOOLEAN CellLossPriority; UCHAR UserToUserIndication; UCHAR CommonPartIndicator; } ATM_AAL5_INFO; struct _ATM_AAL0_INFO { BOOLEAN CellLossPriority; UCHAR PayLoadTypeIdentifier; } ATM_AAL0_INFO;#ifndef __cplusplus } DUMMYUNIONNAME;#else } u;#endif} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;typedef struct _ATM_ADDRESS { ATM_ADDRESSTYPE AddressType; ULONG NumberOfDigits; UCHAR Address[ATM_ADDRESS_LENGTH]; } ATM_ADDRESS, *PATM_ADDRESS;/* ATM_BHLI_IE.HighLayerInfoType constants */#define BHLI_ISO 0x00#define BHLI_UserSpecific 0x01#define BHLI_HighLayerProfile 0x02#define BHLI_VendorSpecificAppId 0x03typedef struct _ATM_BHLI_IE { 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/* 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/* ATM_BLLI_IE.Layer3IPI constants */#define BLLI_L3_IPI_SNAP 0x80#define BLLI_L3_IPI_IP 0xCCtypedef 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];} 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/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */#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/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */#define CLIP_NOT 0x00#define CLIP_SUS 0x20/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */#define UP_P2P 0x00#define UP_P2MP 0x01typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE { 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;} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -