New devices return a "Missing Argument" error in WDA Get Data Format,
requiring the use of the "Endpoint info" TLV. Given that all these new
devices are raw-ip only anyway, let's use this error to right away
fallback to require raw-ip in the interface.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/177
It has the same exact format as MMBaseModemAtCommand, but its contents
are assumed heap allocated.
The only real purpose of this type is to allow defining static
constant MMBaseModemAtCommand variables without warnings when using
-Wdiscarded-qualifiers.
Useful when clamping a unsigned integer with low threshold set to 0,
which would give us compiler warnings with -Wtype-limits when using
CLAMP(), e.g.:
via/mm-broadband-modem-via.c: In function ‘handle_evdo_quality_change’:
/usr/include/glib-2.0/glib/gmacros.h:811:63: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
811 | #define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
| ^
via/mm-broadband-modem-via.c:284:19: note: in expansion of macro ‘CLAMP’
284 | quality = CLAMP (quality, 0, 100);
| ^~~~~
Let's use the suggested compat symbols instead, provided in libqmi 1.22.
mm-sim-qmi.c: In function ‘uim_read’:
mm-sim-qmi.c:170:5: error: ‘qmi_message_uim_read_transparent_input_set_session_information’ is deprecated: Use 'qmi_message_uim_read_transparent_input_set_session' instead [-Werror=deprecated-declarations]
170 | qmi_message_uim_read_transparent_input_set_session_information (
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/libqmi-glib/libqmi-glib.h:40,
from mm-port-qmi.h:23,
from mm-base-modem.h:39,
from mm-base-sim.h:25,
from mm-sim-qmi.h:22,
from mm-sim-qmi.c:29:
/usr/include/libqmi-glib/qmi-compat.h:1154:10: note: declared here
1154 | gboolean qmi_message_uim_read_transparent_input_set_session_information (
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
test-error-helpers.c: In function ‘test_error_helpers_connection_error’:
test-error-helpers.c:36:39: error: comparison of integer expressions of different signedness: ‘guint’ {aka ‘unsigned int’} and ‘gint’ {aka ‘int’} [-Werror=sign-compare]
36 | for (i = enum_class->minimum; i <= enum_class->maximum; i++) { \
| ^~
test-qcdm-serial-port.c: In function ‘print_buf’:
test-qcdm-serial-port.c:79:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘gsize’ {aka ‘long unsigned int’} [-Werror=sign-compare]
79 | for (i = 0; i < len; i++) {
| ^
test-qcdm-serial-port.c: In function ‘server_wait_request’:
test-qcdm-serial-port.c:163:20: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Werror=sign-compare]
163 | } while (total < sizeof (readbuf));
| ^
test-modem-helpers.c: In function ‘test_cgev_indication’:
test-modem-helpers.c:2165:9: error: enumeration value ‘MM_3GPP_CGEV_UNKNOWN’ not handled in switch [-Werror=switch-enum]
2165 | switch (type) {
| ^~~~~~
cc1: all warnings being treated as errors
test-modem-helpers.c: In function ‘test_creg_match’:
test-modem-helpers.c:1127:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare]
1127 | for (i = 0; i < array->len; i++) {
| ^
kerneldevice/mm-kernel-device-udev.c: In function ‘mm_kernel_device_udev_new_from_properties’:
kerneldevice/mm-kernel-device-udev.c:770:70: error: declaration of ‘properties’ shadows a global declaration [-Werror=shadow]
770 | mm_kernel_device_udev_new_from_properties (MMKernelEventProperties *properties,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
kerneldevice/mm-kernel-device-udev.c:38:20: note: shadowed declaration is here
38 | static GParamSpec *properties[PROP_LAST];
| ^~~~~~~~~~
kerneldevice/mm-kernel-device-generic.c: In function ‘mm_kernel_device_generic_new_with_rules’:
kerneldevice/mm-kernel-device-generic.c:954:68: error: declaration of ‘properties’ shadows a global declaration [-Werror=shadow]
954 | mm_kernel_device_generic_new_with_rules (MMKernelEventProperties *properties,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
kerneldevice/mm-kernel-device-generic.c:46:20: note: shadowed declaration is here
46 | static GParamSpec *properties[PROP_LAST];
| ^~~~~~~~~~
kerneldevice/mm-kernel-device-generic.c: In function ‘mm_kernel_device_generic_new’:
kerneldevice/mm-kernel-device-generic.c:971:57: error: declaration of ‘properties’ shadows a global declaration [-Werror=shadow]
971 | mm_kernel_device_generic_new (MMKernelEventProperties *properties,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
kerneldevice/mm-kernel-device-generic.c:46:20: note: shadowed declaration is here
46 | static GParamSpec *properties[PROP_LAST];
| ^~~~~~~~~~
mm-modem-helpers-mbim.c: In function ‘mm_mobile_equipment_error_from_mbim_nw_error’:
mm-modem-helpers-mbim.c:206:5: error: enumeration value ‘MBIM_NW_ERROR_IMEI_NOT_ACCEPTED’ not handled in switch [-Werror=switch-enum]
206 | switch (nw_error) {
| ^~~~~~
mm-modem-helpers-mbim.c: In function ‘mm_bearer_ip_family_from_mbim_context_ip_type’:
mm-modem-helpers-mbim.c:403:5: error: enumeration value ‘MBIM_CONTEXT_IP_TYPE_DEFAULT’ not handled in switch [-Werror=switch-enum]
403 | switch (ip_type) {
| ^~~~~~
mm-modem-helpers-qmi.c: In function ‘mm_qmi_unique_id_to_firmware_unique_id’:
mm-modem-helpers-qmi.c:1653:19: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare]
1653 | for (i = 0; i < qmi_unique_id->len; i++) {
| ^
mm-modem-helpers-qmi.c:1679:11: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare]
1679 | if (i != qmi_unique_id->len)
| ^~
mm-modem-helpers-qmi.c: In function ‘mm_3gpp_facility_to_qmi_uim_facility’:
mm-modem-helpers-qmi.c:137:5: error: enumeration value ‘MM_MODEM_3GPP_FACILITY_NONE’ not handled in switch [-Werror=switch-enum]
137 | switch (mm) {
| ^~~~~~
mm-modem-helpers-qmi.c:137:5: error: enumeration value ‘MM_MODEM_3GPP_FACILITY_SIM’ not handled in switch [-Werror=switch-enum]
mm-modem-helpers-qmi.c:137:5: error: enumeration value ‘MM_MODEM_3GPP_FACILITY_FIXED_DIALING’ not handled in switch [-Werror=switch-enum]
mm-modem-helpers-qmi.c:137:5: error: enumeration value ‘MM_MODEM_3GPP_FACILITY_PH_FSIM’ not handled in switch [-Werror=switch-enum]
...
mm-sms-part-3gpp.c: In function ‘mm_sms_part_3gpp_new_from_binary_pdu’:
mm-sms-part-3gpp.c:721:9: error: enumeration value ‘MM_SMS_ENCODING_8BIT’ not handled in switch [-Werror=switch-enum]
721 | switch (user_data_encoding) {
| ^~~~~~
mm-sms-part-3gpp.c: In function ‘mm_sms_part_3gpp_get_submit_pdu’:
mm-sms-part-3gpp.c:917:5: error: enumeration value ‘MM_SMS_ENCODING_UNKNOWN’ not handled in switch [-Werror=switch-enum]
917 | switch (mm_sms_part_get_encoding (part)) {
| ^~~~~~
mm-sms-part-3gpp.c:917:5: error: enumeration value ‘MM_SMS_ENCODING_8BIT’ not handled in switch [-Werror=switch-enum]
mm-sms-part-3gpp.c: In function ‘mm_sms_part_3gpp_new_from_binary_pdu’:
mm-sms-part-3gpp.c:607:9: error: enumeration value ‘MM_SMS_ENCODING_UNKNOWN’ not handled in switch [-Werror=switch-enum]
607 | switch (user_data_encoding) {
| ^~~~~~
mm-sms-part-3gpp.c:714:9: error: enumeration value ‘MM_SMS_ENCODING_UNKNOWN’ not handled in switch [-Werror=switch-enum]
714 | switch (user_data_encoding) {
| ^~~~~~
mm-charsets.c: In function ‘mm_charset_gsm_unpacked_to_utf8’:
mm-charsets.c:423:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint32’ {aka ‘unsigned int’} [-Werror=sign-compare]
423 | for (i = 0; i < len; i++) {
| ^
mm-charsets.c: In function ‘pccp437_is_subset’:
mm-charsets.c:544:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Werror=sign-compare]
544 | for (i = 0; i < G_N_ELEMENTS (t); i++) {
| ^
mm-charsets.c: In function ‘pcdn_is_subset’:
mm-charsets.c:575:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Werror=sign-compare]
575 | for (i = 0; i < sizeof (t) / sizeof (t[0]); i++) {
| ^
mm-charsets.c: In function ‘mm_charset_gsm_unpack’:
mm-charsets.c:657:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint32’ {aka ‘unsigned int’} [-Werror=sign-compare]
657 | for (i = 0; i < num_septets; i++) {
| ^
mm-charsets.c: In function ‘mm_charset_gsm_pack’:
mm-charsets.c:701:42: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint32’ {aka ‘unsigned int’} [-Werror=sign-compare]
701 | for (i = 0, lshift = start_offset; i < src_len; i++) {
| ^
mm-modem-helpers.c: In function ‘mm_3gpp_get_pdp_type_from_ip_family’:
mm-modem-helpers.c:4166:5: error: enumeration value ‘MM_BEARER_IP_FAMILY_NONE’ not handled in switch [-Werror=switch-enum]
4166 | switch (family) {
| ^~~~~~
mm-modem-helpers.c:4166:5: error: enumeration value ‘MM_BEARER_IP_FAMILY_ANY’ not handled in switch [-Werror=switch-enum]
mm-port-qmi.c:353:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
353 | ctx->step++;
| ~~~~~~~~~^~
mm-port-qmi.c:356:5: note: here
356 | case PORT_OPEN_STEP_CHECK_OPENING:
| ^~~~
mm-port-qmi.c:366:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
366 | ctx->step++;
| ~~~~~~~~~^~
mm-port-qmi.c:369:5: note: here
369 | case PORT_OPEN_STEP_CHECK_ALREADY_OPEN:
| ^~~~
mm-port-qmi.c:376:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
376 | ctx->step++;
| ~~~~~~~~~^~
mm-port-qmi.c:379:5: note: here
379 | case PORT_OPEN_STEP_DEVICE_NEW: {
| ^~~~
mm-port-qmi.c:424:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
424 | ctx->step++;
| ~~~~~~~~~^~
mm-port-qmi.c:427:5: note: here
427 | case PORT_OPEN_STEP_ALLOCATE_WDA_CLIENT:
| ^~~~
mm-port-qmi.c:474:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
474 | ctx->step++;
| ~~~~~~~~~^~
mm-port-qmi.c:477:5: note: here
477 | case PORT_OPEN_STEP_SET_KERNEL_DATA_FORMAT:
| ^~~~
mm-port-serial-qcdm.c: In function ‘find_qcdm_start’:
mm-port-serial-qcdm.c:51:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare]
51 | for (i = 0; i < response->len; i++) {
| ^
mm-port-serial.c: In function ‘port_serial_process_command’:
mm-port-serial.c:605:16: error: this statement may fall through [-Werror=implicit-fallthrough=]
605 | if (written > 0) {
| ^
mm-port-serial.c:611:9: note: here
611 | case G_IO_STATUS_AGAIN:
| ^~~~
mm-port-serial.c: In function ‘_close_internal’:
mm-port-serial.c:1464:19: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare]
1464 | for (i = 0; i < g_queue_get_length (self->priv->queue); i++) {
| ^
mm-broadband-modem-mbim.c: In function ‘atds_signal_query_ready’:
mm-broadband-modem-mbim.c:4389:49: error: implicit conversion from ‘float’ to ‘double’ to match other operand of binary expression [-Werror=double-promotion]
4389 | mm_signal_set_ecio (result->umts, -24.0 + ((float) ecno / 2));
| ^
mm-broadband-modem-mbim.c:4394:48: error: implicit conversion from ‘float’ to ‘double’ to match other operand of binary expression [-Werror=double-promotion]
4394 | mm_signal_set_rsrq (result->lte, -19.5 + ((float) rsrq / 2));
| ^
mm-broadband-modem-mbim.c: In function ‘query_device_services_ready’:
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_INVALID’ not handled in switch [-Werror=switch-enum]
2132 | switch (service) {
| ^~~~~~
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_BASIC_CONNECT’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_SMS’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_PHONEBOOK’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_STK’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_AUTH’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_DSS’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_MS_FIRMWARE_ID’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_MS_HOST_SHUTDOWN’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_PROXY_CONTROL’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-mbim.c:2132:13: error: enumeration value ‘MBIM_SERVICE_QMI’ not handled in switch [-Werror=switch-enum]
mm-bearer-mbim.c: In function ‘connect_context_step’:
mm-bearer-mbim.c:843:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
843 | ctx->step++;
| ~~~~~~~~~^~
mm-bearer-mbim.c:845:5: note: here
845 | case CONNECT_STEP_PACKET_SERVICE: {
| ^~~~
mm-bearer-mbim.c: In function ‘disconnect_context_step’:
mm-bearer-mbim.c:1269:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
1269 | ctx->step++;
| ~~~~~~~~~^~
mm-bearer-mbim.c:1271:5: note: here
1271 | case DISCONNECT_STEP_DISCONNECT: {
| ^~~~
In file included from mm-broadband-modem-qmi.c:29:
mm-broadband-modem-qmi.c: In function ‘uim_get_card_status_output_parse’:
mm-log.h:33:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
33 | _mm_log (G_STRLOC, G_STRFUNC, MM_LOG_LEVEL_WARN, ## __VA_ARGS__ )
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm-broadband-modem-qmi.c:894:13: note: in expansion of macro ‘mm_warn’
894 | mm_warn ("PUK2 permanently blocked");
| ^~~~~~~
mm-broadband-modem-qmi.c:895:9: note: here
895 | case QMI_UIM_PIN_STATE_BLOCKED:
| ^~~~
...
mm-broadband-modem-qmi.c: In function ‘qmi_dbm_valid’:
mm-broadband-modem-qmi.c:1385:5: error: enumeration value ‘QMI_NAS_RADIO_INTERFACE_UNKNOWN’ not handled in switch [-Werror=switch-enum]
1385 | switch (radio_interface) {
| ^~~~~~
mm-broadband-modem-qmi.c:1385:5: error: enumeration value ‘QMI_NAS_RADIO_INTERFACE_NONE’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-qmi.c:1385:5: error: enumeration value ‘QMI_NAS_RADIO_INTERFACE_AMPS’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-qmi.c:1385:5: error: enumeration value ‘QMI_NAS_RADIO_INTERFACE_GSM’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-qmi.c:1385:5: error: enumeration value ‘QMI_NAS_RADIO_INTERFACE_LTE’ not handled in switch [-Werror=switch-enum]
mm-broadband-modem-qmi.c:1385:5: error: enumeration value ‘QMI_NAS_RADIO_INTERFACE_TD_SCDMA’ not handled in switch [-Werror=switch-enum]
...
mm-broadband-modem-qmi.c: In function ‘uim_get_card_status_output_parse’:
mm-broadband-modem-qmi.c:846:5: error: enumeration value ‘QMI_UIM_PIN_STATE_NOT_INITIALIZED’ not handled in switch [-Werror=switch-enum]
846 | switch (app->pin1_state) {
| ^~~~~~
mm-broadband-modem-qmi.c:877:9: error: enumeration value ‘QMI_UIM_PIN_STATE_NOT_INITIALIZED’ not handled in switch [-Werror=switch-enum]
877 | switch (app->pin2_state) {
| ^~~~~~
...
mm-bearer-qmi.c:168:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
168 | ctx->step++;
| ~~~~~~~~~^~
mm-bearer-qmi.c:169:5: note: here
169 | case RELOAD_STATS_CONTEXT_STEP_IPV4:
| ^~~~
...