1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _MCX_H_ 7 #define _MCX_H_ 8 9 typedef struct _MODEMDEVCAPS { 10 DWORD dwActualSize; 11 DWORD dwRequiredSize; 12 DWORD dwDevSpecificOffset; 13 DWORD dwDevSpecificSize; 14 DWORD dwModemProviderVersion; 15 DWORD dwModemManufacturerOffset; 16 DWORD dwModemManufacturerSize; 17 DWORD dwModemModelOffset; 18 DWORD dwModemModelSize; 19 DWORD dwModemVersionOffset; 20 DWORD dwModemVersionSize; 21 DWORD dwDialOptions; 22 DWORD dwCallSetupFailTimer; 23 DWORD dwInactivityTimeout; 24 DWORD dwSpeakerVolume; 25 DWORD dwSpeakerMode; 26 DWORD dwModemOptions; 27 DWORD dwMaxDTERate; 28 DWORD dwMaxDCERate; 29 BYTE abVariablePortion[1]; 30 } MODEMDEVCAPS,*PMODEMDEVCAPS,*LPMODEMDEVCAPS; 31 32 typedef struct _MODEMSETTINGS { 33 DWORD dwActualSize; 34 DWORD dwRequiredSize; 35 DWORD dwDevSpecificOffset; 36 DWORD dwDevSpecificSize; 37 DWORD dwCallSetupFailTimer; 38 DWORD dwInactivityTimeout; 39 DWORD dwSpeakerVolume; 40 DWORD dwSpeakerMode; 41 DWORD dwPreferredModemOptions; 42 DWORD dwNegotiatedModemOptions; 43 DWORD dwNegotiatedDCERate; 44 BYTE abVariablePortion [1]; 45 } MODEMSETTINGS,*PMODEMSETTINGS,*LPMODEMSETTINGS; 46 47 #define DIALOPTION_BILLING 0x00000040 48 #define DIALOPTION_QUIET 0x00000080 49 #define DIALOPTION_DIALTONE 0x00000100 50 51 #define MDMVOLFLAG_LOW 0x00000001 52 #define MDMVOLFLAG_MEDIUM 0x00000002 53 #define MDMVOLFLAG_HIGH 0x00000004 54 55 #define MDMVOL_LOW 0x00000000 56 #define MDMVOL_MEDIUM 0x00000001 57 #define MDMVOL_HIGH 0x00000002 58 59 #define MDMSPKRFLAG_OFF 0x00000001 60 #define MDMSPKRFLAG_DIAL 0x00000002 61 #define MDMSPKRFLAG_ON 0x00000004 62 #define MDMSPKRFLAG_CALLSETUP 0x00000008 63 64 #define MDMSPKR_OFF 0x00000000 65 #define MDMSPKR_DIAL 0x00000001 66 #define MDMSPKR_ON 0x00000002 67 #define MDMSPKR_CALLSETUP 0x00000003 68 69 #define MDM_COMPRESSION 0x00000001 70 #define MDM_ERROR_CONTROL 0x00000002 71 #define MDM_FORCED_EC 0x00000004 72 #define MDM_CELLULAR 0x00000008 73 #define MDM_FLOWCONTROL_HARD 0x00000010 74 #define MDM_FLOWCONTROL_SOFT 0x00000020 75 #define MDM_CCITT_OVERRIDE 0x00000040 76 #define MDM_SPEED_ADJUST 0x00000080 77 #define MDM_TONE_DIAL 0x00000100 78 #define MDM_BLIND_DIAL 0x00000200 79 #define MDM_V23_OVERRIDE 0x00000400 80 #define MDM_DIAGNOSTICS 0x00000800 81 82 #define MDM_MASK_BEARERMODE 0x0000f000 83 #define MDM_SHIFT_BEARERMODE 12 84 85 #define MDM_MASK_PROTOCOLID 0x000f0000 86 #define MDM_SHIFT_PROTOCOLID 16 87 88 #define MDM_MASK_PROTOCOLDATA 0x0ff00000 89 #define MDM_SHIFT_PROTOCOLDATA 20 90 91 #define MDM_MASK_PROTOCOLINFO (MDM_MASK_PROTOCOLID|MDM_MASK_PROTOCOLDATA) 92 #define MDM_SHIFT_PROTOCOLINFO MDM_SHIFT_PROTOCOLID 93 94 #define MDM_MASK_EXTENDEDINFO (MDM_MASK_BEARERMODE|MDM_MASK_PROTOCOLINFO) 95 #define MDM_SHIFT_EXTENDEDINFO MDM_SHIFT_BEARERMODE 96 97 #define MDM_GET_BEARERMODE(_dwOptions) (((_dwOptions)&MDM_MASK_BEARERMODE) >> MDM_SHIFT_BEARERMODE) 98 #define MDM_SET_BEARERMODE(_dwOptions,_bm) (((_dwOptions) &= ~MDM_MASK_BEARERMODE),((_dwOptions) |= (((_bm)<<MDM_SHIFT_BEARERMODE)&MDM_MASK_BEARERMODE))) 99 #define MDM_GET_PROTOCOLID(_dwOptions) (((_dwOptions)&MDM_MASK_PROTOCOLID) >> MDM_SHIFT_PROTOCOLID) 100 #define MDM_SET_PROTOCOLID(_dwOptions,_prot) (((_dwOptions) &= ~MDM_MASK_PROTOCOLID),((_dwOptions) |= (((_prot)<<MDM_SHIFT_PROTOCOLID)&MDM_MASK_PROTOCOLID))) 101 #define MDM_GET_PROTOCOLDATA(_dwOptions) (((_dwOptions)&MDM_MASK_PROTOCOLDATA) >> MDM_SHIFT_PROTOCOLDATA) 102 #define MDM_SET_PROTOCOLDATA(_dwOptions,_pd) (((_dwOptions) &= ~MDM_MASK_PROTOCOLDATA),((_dwOptions) |= (((_pd)<<MDM_SHIFT_PROTOCOLDATA)&MDM_MASK_PROTOCOLDATA))) 103 #define MDM_GET_PROTOCOLINFO(_dwOptions) ((_dwOptions)&MDM_MASK_PROTOCOLINFO) 104 #define MDM_SET_PROTOCOLINFO(_dwOptions,_pinfo) (((_dwOptions) &= ~MDM_MASK_PROTOCOLINFO),((_dwOptions) |= ((_pinfo)&MDM_MASK_PROTOCOLINFO))) 105 #define MDM_GEN_PROTOCOLINFO(_pid,_pdata) ((((_pid)<<MDM_SHIFT_PROTOCOLID)&MDM_MASK_PROTOCOLID) |(((_pdata)<<MDM_SHIFT_PROTOCOLDATA)&MDM_MASK_PROTOCOLDATA)) 106 #define MDM_GET_EXTENDEDINFO(_dwOptions) ((_dwOptions)&MDM_MASK_EXTENDEDINFO) 107 #define MDM_SET_EXTENDEDINFO(_dwOptions,_extinfo) (((_dwOptions) &= ~MDM_MASK_EXTENDEDINFO),((_dwOptions) |= ((_extinfo) & MDM_MASK_EXTENDEDINFO))) 108 #define MDM_GEN_EXTENDEDINFO(_bearermode,_pinfo) (((_pinfo)&MDM_MASK_PROTOCOLINFO) |(((_bearermode)<<MDM_SHIFT_BEARERMODE)&MDM_MASK_BEARERMODE)) 109 110 #define MDM_BEARERMODE_ANALOG 0x0 111 #define MDM_BEARERMODE_ISDN 0x1 112 #define MDM_BEARERMODE_GSM 0x2 113 114 #define MDM_PROTOCOLID_DEFAULT 0x0 115 #define MDM_PROTOCOLID_HDLCPPP 0x1 116 #define MDM_PROTOCOLID_V128 0x2 117 #define MDM_PROTOCOLID_X75 0x3 118 #define MDM_PROTOCOLID_V110 0x4 119 #define MDM_PROTOCOLID_V120 0x5 120 #define MDM_PROTOCOLID_AUTO 0x6 121 #define MDM_PROTOCOLID_ANALOG 0x7 122 #define MDM_PROTOCOLID_GPRS 0x8 123 #define MDM_PROTOCOLID_PIAFS 0x9 124 125 #define MDM_SHIFT_HDLCPPP_SPEED 0x0 126 #define MDM_MASK_HDLCPPP_SPEED 0x7 127 128 #define MDM_HDLCPPP_SPEED_DEFAULT 0x0 129 #define MDM_HDLCPPP_SPEED_64K 0x1 130 #define MDM_HDLCPPP_SPEED_56K 0x2 131 132 #define MDM_SHIFT_HDLCPPP_AUTH 0x3 133 #define MDM_MASK_HDLCPPP_AUTH (0x7<<3) 134 135 #define MDM_HDLCPPP_AUTH_DEFAULT 0x0 136 #define MDM_HDLCPPP_AUTH_NONE 0x1 137 #define MDM_HDLCPPP_AUTH_PAP 0x2 138 #define MDM_HDLCPPP_AUTH_CHAP 0x3 139 #define MDM_HDLCPPP_AUTH_MSCHAP 0x4 140 141 #define MDM_SHIFT_HDLCPPP_ML 0x6 142 #define MDM_MASK_HDLCPPP_ML (0x3<<6) 143 144 #define MDM_HDLCPPP_ML_DEFAULT 0x0 145 #define MDM_HDLCPPP_ML_NONE 0x1 146 #define MDM_HDLCPPP_ML_2 0x2 147 148 #define MDM_GEN_HDLCPPP_PROTOCOL_DATA(_speed,_auth,_ml) ((((_speed)<<MDM_SHIFT_HDLCPPP_SPEED)&MDM_MASK_HDLCPPP_SPEED) |(((_auth)<<MDM_SHIFT_HDLCPPP_AUTH)&MDM_MASK_HDLCPPP_AUTH) |(((_ml)<<MDM_SHIFT_HDLCPPP_ML)&MDM_MASK_HDLCPPP_ML)) 149 150 #define MDM_PROTOCOL_HDLCPPP_64K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_64K,MDM_HDLCPPP_AUTH_DEFAULT,MDM_HDLCPPP_ML_DEFAULT)) 151 #define MDM_PROTOCOL_HDLCPPP_56K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_56K,MDM_HDLCPPP_AUTH_DEFAULT,MDM_HDLCPPP_ML_DEFAULT)) 152 #define MDM_PROTOCOL_HDLCPPP_112K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_56K,MDM_HDLCPPP_AUTH_DEFAULT,MDM_HDLCPPP_ML_2)) 153 #define MDM_PROTOCOL_HDLCPPP_112K_PAP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_56K,MDM_HDLCPPP_AUTH_PAP,MDM_HDLCPPP_ML_2)) 154 #define MDM_PROTOCOL_HDLCPPP_112K_CHAP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_56K,MDM_HDLCPPP_AUTH_CHAP,MDM_HDLCPPP_ML_2)) 155 #define MDM_PROTOCOL_HDLCPPP_112K_MSCHAP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_56K,MDM_HDLCPPP_AUTH_MSCHAP,MDM_HDLCPPP_ML_2)) 156 #define MDM_PROTOCOL_HDLCPPP_128K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_64K,MDM_HDLCPPP_AUTH_DEFAULT,MDM_HDLCPPP_ML_2)) 157 #define MDM_PROTOCOL_HDLCPPP_128K_PAP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_64K,MDM_HDLCPPP_AUTH_PAP,MDM_HDLCPPP_ML_2)) 158 #define MDM_PROTOCOL_HDLCPPP_128K_CHAP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_64K,MDM_HDLCPPP_AUTH_CHAP,MDM_HDLCPPP_ML_2)) 159 #define MDM_PROTOCOL_HDLCPPP_128K_MSCHAP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_HDLCPPP,MDM_GEN_HDLCPPP_PROTOCOL_DATA (MDM_HDLCPPP_SPEED_64K,MDM_HDLCPPP_AUTH_MSCHAP,MDM_HDLCPPP_ML_2)) 160 161 #define MDM_SHIFT_V120_SPEED 0x0 162 #define MDM_MASK_V120_SPEED 0x7 163 164 #define MDM_V120_SPEED_DEFAULT 0x0 165 #define MDM_V120_SPEED_64K 0x1 166 #define MDM_V120_SPEED_56K 0x2 167 168 #define MDM_SHIFT_V120_ML 0x6 169 #define MDM_MASK_V120_ML (0x3<<6) 170 171 #define MDM_V120_ML_DEFAULT 0x0 172 #define MDM_V120_ML_NONE 0x1 173 #define MDM_V120_ML_2 0x2 174 175 #define MDM_GEN_V120_PROTOCOL_DATA(_speed,_ml) ((((_speed)<<MDM_SHIFT_V120_SPEED)&MDM_MASK_V120_SPEED) |(((_ml)<<MDM_SHIFT_V120_ML)&MDM_MASK_V120_ML)) 176 177 #define MDM_PROTOCOL_V120_64K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V120,MDM_GEN_V120_PROTOCOL_DATA (MDM_V120_SPEED_64K,MDM_V120_ML_NONE)) 178 #define MDM_PROTOCOL_V120_56K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V120,MDM_GEN_V120_PROTOCOL_DATA (MDM_V120_SPEED_56K,MDM_V120_ML_NONE)) 179 #define MDM_PROTOCOL_V120_112K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V120,MDM_GEN_V120_PROTOCOL_DATA (MDM_V120_SPEED_56K,MDM_V120_ML_2)) 180 #define MDM_PROTOCOL_V120_128K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V120,MDM_GEN_V120_PROTOCOL_DATA (MDM_V120_SPEED_64K,MDM_V120_ML_2)) 181 182 #define MDM_SHIFT_X75_DATA 0x0 183 #define MDM_MASK_X75_DATA 0x7 184 185 #define MDM_X75_DATA_DEFAULT 0x0 186 #define MDM_X75_DATA_64K 0x1 187 #define MDM_X75_DATA_128K 0x2 188 #define MDM_X75_DATA_T_70 0x3 189 #define MDM_X75_DATA_BTX 0x4 190 191 #define MDM_GEN_X75_PROTOCOL_DATA(_data) (((_data)<<MDM_SHIFT_X75_DATA)&MDM_MASK_X75_DATA) 192 193 #define MDM_PROTOCOL_X75_64K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_X75,MDM_GEN_X75_PROTOCOL_DATA (MDM_X75_DATA_64K)) 194 #define MDM_PROTOCOL_X75_128K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_X75,MDM_GEN_X75_PROTOCOL_DATA (MDM_X75_DATA_128K)) 195 #define MDM_PROTOCOL_X75_T_70 MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_X75,MDM_GEN_X75_PROTOCOL_DATA (MDM_X75_DATA_T_70)) 196 #define MDM_PROTOCOL_X75_BTX MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_X75,MDM_GEN_X75_PROTOCOL_DATA (MDM_X75_DATA_BTX)) 197 198 #define MDM_SHIFT_V110_SPEED 0x0 199 #define MDM_MASK_V110_SPEED 0xf 200 201 #define MDM_V110_SPEED_DEFAULT 0x0 202 #define MDM_V110_SPEED_1DOT2K 0x1 203 #define MDM_V110_SPEED_2DOT4K 0x2 204 #define MDM_V110_SPEED_4DOT8K 0x3 205 #define MDM_V110_SPEED_9DOT6K 0x4 206 #define MDM_V110_SPEED_12DOT0K 0x5 207 #define MDM_V110_SPEED_14DOT4K 0x6 208 #define MDM_V110_SPEED_19DOT2K 0x7 209 #define MDM_V110_SPEED_28DOT8K 0x8 210 #define MDM_V110_SPEED_38DOT4K 0x9 211 #define MDM_V110_SPEED_57DOT6K 0xA 212 213 #define MDM_GEN_V110_PROTOCOL_DATA(_data) (((_data)<<MDM_SHIFT_V110_SPEED)&MDM_MASK_V110_SPEED) 214 215 #define MDM_PROTOCOL_V110_1DOT2K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_1DOT2K)) 216 #define MDM_PROTOCOL_V110_2DOT4K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_2DOT4K)) 217 #define MDM_PROTOCOL_V110_4DOT8K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_4DOT8K)) 218 #define MDM_PROTOCOL_V110_9DOT6K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_9DOT6K)) 219 #define MDM_PROTOCOL_V110_12DOT0K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_12DOT0K)) 220 #define MDM_PROTOCOL_V110_14DOT4K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_14DOT4K)) 221 #define MDM_PROTOCOL_V110_19DOT2K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_19DOT2K)) 222 #define MDM_PROTOCOL_V110_28DOT8K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_28DOT8K)) 223 #define MDM_PROTOCOL_V110_38DOT4K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_38DOT4K)) 224 #define MDM_PROTOCOL_V110_57DOT6K MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_V110,MDM_GEN_V110_PROTOCOL_DATA (MDM_V110_SPEED_57DOT6K)) 225 226 #define MDM_SHIFT_AUTO_SPEED 0x0 227 #define MDM_MASK_AUTO_SPEED 0x7 228 #define MDM_AUTO_SPEED_DEFAULT 0x0 229 230 #define MDM_SHIFT_AUTO_ML 0x6 231 #define MDM_MASK_AUTO_ML (0x3<<6) 232 #define MDM_AUTO_ML_DEFAULT 0x0 233 #define MDM_AUTO_ML_NONE 0x1 234 #define MDM_AUTO_ML_2 0x2 235 236 #define MDM_GEN_AUTO_PROTOCOL_DATA(_speed,_ml) ((((_speed)<<MDM_SHIFT_AUTO_SPEED)&MDM_MASK_AUTO_SPEED) |(((_ml)<<MDM_SHIFT_AUTO_ML)&MDM_MASK_AUTO_ML)) 237 238 #define MDM_PROTOCOL_AUTO_1CH MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_AUTO,MDM_GEN_AUTO_PROTOCOL_DATA (MDM_AUTO_SPEED_DEFAULT,MDM_AUTO_ML_NONE)) 239 #define MDM_PROTOCOL_AUTO_2CH MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_AUTO,MDM_GEN_AUTO_PROTOCOL_DATA (MDM_AUTO_SPEED_DEFAULT,MDM_AUTO_ML_2)) 240 241 #define MDM_ANALOG_RLP_ON 0x0 242 #define MDM_ANALOG_RLP_OFF 0x1 243 #define MDM_ANALOG_V34 0x2 244 245 #define MDM_GEN_ANALOG_PROTOCOL_DATA(_rlp) (_rlp) 246 247 #define MDM_PROTOCOL_ANALOG_RLP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_ANALOG,MDM_GEN_ANALOG_PROTOCOL_DATA (MDM_ANALOG_RLP_ON)) 248 #define MDM_PROTOCOL_ANALOG_NRLP MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_ANALOG,MDM_GEN_ANALOG_PROTOCOL_DATA (MDM_ANALOG_RLP_OFF)) 249 #define MDM_PROTOCOL_ANALOG_V34 MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_ANALOG,MDM_GEN_ANALOG_PROTOCOL_DATA (MDM_ANALOG_V34)) 250 #define MDM_PROTOCOL_GPRS MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_GPRS,0) 251 252 #define MDM_PIAFS_INCOMING 0 253 #define MDM_PIAFS_OUTGOING 1 254 255 #define MDM_PROTOCOL_PIAFS_INCOMING MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_PIAFS,MDM_PIAFS_INCOMING) 256 #define MDM_PROTOCOL_PIAFS_OUTGOING MDM_GEN_PROTOCOLINFO(MDM_PROTOCOLID_PIAFS,MDM_PIAFS_OUTGOING) 257 #endif 258