#define T30_DCS_BIT_UNLIMITED_LENGTH 20
/* Bits 21, 22, 23 - min scan line time */
-
/* When ISDN mode is used, in DIS/DTC bits 21 to 23 shall be set to "1". */
+#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_1 21
+#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_1 21
+#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_2 22
+#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_2 22
+#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_3 23
+#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_3 23
+#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_4 24
+#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_4 24
/* Bit 24 is an extension bit */
param_id = buf[0];
param_len = buf[1];
buf += 2;
- group_len -= (2 + param_len);
- if (group_len < 0)
+ if (group_len < (2 + param_len))
break;
+ group_len -= (2 + param_len);
switch (param_id)
{
case PI_HDLC_OPTIONAL_FUNCTIONS:
param_id = buf[0];
param_len = buf[1];
buf += 2;
- group_len -= (2 + param_len);
- if (group_len < 0)
+ if (group_len < 2 + param_len)
break;
+ group_len -= (2 + param_len);
switch (param_id)
{
case PI_PARAMETER_SET_ID:
return "Calling modem on cellular";
case V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR:
return "Answering modem on cellular";
- case V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR:
+ case (V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR):
return "Answering and calling modems on cellular";
case V8_PSTN_ACCESS_DCE_ON_DIGITAL:
return "DCE on digital";
- case V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_CALL_DCE_CELLULAR:
+ case (V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_CALL_DCE_CELLULAR):
return "DCE on digital, and calling modem on cellular";
- case V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR:
+ case (V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR):
return "DCE on digital, answering modem on cellular";
- case V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR:
+ case (V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR):
return "DCE on digital, and answering and calling modems on cellular";
}
return "PSTN access unknown";
return "V.90/V.92 analogue available";
case V8_PSTN_PCM_MODEM_V90_V92_DIGITAL:
return "V.90/V.92 digital available";
- case V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE:
+ case (V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE):
return "V.90/V.92 digital/analogue available";
case V8_PSTN_PCM_MODEM_V91:
return "V.91 available";
- case V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE:
+ case (V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE):
return "V.91 and V.90/V.92 analogue available";
- case V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL:
+ case (V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL):
return "V.91 and V.90/V.92 digital available";
- case V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE:
+ case (V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE):
return "V.91 and V.90/V.92 digital/analogue available";
}
return "PCM availability unknown";