[PATCH] qmicli: fix --dms-get-band-capabilities output on 32-bit platforms

Aleksander Morgado aleksander at aleksander.es
Sun Mar 20 19:36:08 UTC 2016


On Sat, Mar 19, 2016 at 9:42 PM, Reinhard Speyerer <rspmn at arcor.de> wrote:
> The @enum_name at _build_string_from_mask template in
> qmi-flags64-types-template.c uses a local gulong number variable.
> On platforms where sizeof(gulong) < sizeof(Qmi*BandCapability) this
> may cause bands to be missing from qmicli output or incorrect bands
> to be contained in the output. Replace gulong number with guint64
> number to fix this.
>
> Signed-off-by: Reinhard Speyerer <rspmn at arcor.de>
> ---
> With the patch the qmicli -v --dms-get-band-capabilities output for a
> Sierra Wireless MC7430 changes from
> ...
>>>>>>> TLV:
>>>>>>>   type       = "LTE Band Capability" (0x10)
>>>>>>>   length     = 8
>>>>>>>   value      = D5:00:16:08:E0:01:00:00
>>>>>>>   translated = 1, 3, 5, 7, 8, 18, 19, 21
>>>>>>> TLV:
>>>>>>>   type       = "Band Capability" (0x01)
>>>>>>>   length     = 8
>>>>>>>   value      = 00:00:40:0C:00:00:06:10
>>>>>>>   translated = wcdma-2100, wcdma-850-us, wcdma-800, bc-15
> ...
> to
> ...
>>>>>>> TLV:
>>>>>>>   type       = "LTE Band Capability" (0x10)
>>>>>>>   length     = 8
>>>>>>>   value      = D5:00:16:08:E0:01:00:00
>>>>>>>   translated = 1, 3, 5, 7, 8, 18, 19, 21, 38, 39, 40, 41
>>>>>>> TLV:
>>>>>>>   type       = "Band Capability" (0x01)
>>>>>>>   length     = 8
>>>>>>>   value      = 00:00:40:0C:00:00:06:10
>>>>>>>   translated = wcdma-2100, wcdma-850-us, wcdma-800, wcdma-900, wcdma-1700-japan, wcdma-850-japan
> ...
> .
>
> (LTE band 28 is missing from the output in both cases since the corresponding
> bit is listed as reserved in enum QmiDmsLteBandCapability and the Gobi API.)
>
> Reinhard
>

Thanks; pushed to master, qmi-1-14 and qmi-1-12.

> diff --git a/build-aux/templates/qmi-flags64-types-template.c b/build-aux/templates/qmi-flags64-types-template.c
> index c1c5491..a92824c 100644
> --- a/build-aux/templates/qmi-flags64-types-template.c
> +++ b/build-aux/templates/qmi-flags64-types-template.c
> @@ -49,7 +49,7 @@ gchar *
>          /* Build list with single-bit masks */
>          if (mask & @enum_name at _values[i].value) {
>              guint c;
> -            gulong number = @enum_name at _values[i].value;
> +            guint64 number = @enum_name at _values[i].value;
>
>              for (c = 0; number; c++)
>                  number &= number - 1;
> _______________________________________________
> libqmi-devel mailing list
> libqmi-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libqmi-devel



-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list