Age | Commit message (Collapse) | Author |
|
|
|
IPv6 addresses are always sent in network byte order. Oddly,
IPv4 addresses appear to be sent as LE uint32s rather than
BE/network byte order.
|
|
Some values are sent by the firmware in big endian byte order,
specifically IP addresses, which are sent in network byte order
(ie, big endian). Add the ability to specify the byte order
the firmware handles the value as, and convert that to host
byte order when reading/writing QMI buffers.
|
|
We allow passing a GCancellable to every async operation with the clients. Now,
if the cancellable gets cancelled and the operation can be ABORT-ed, then we
do it.
|
|
If we don't disconnect the signal handler when we clear the private
QmiClientCtl, we may end up in the situation where we try to use the
already disposed QmiDevice object.
|
|
|
|
|
|
Messages can now be tagged with a special 'abort' keyword, so that whenever the
message times out we issue a new ABORT command to cancel the specific timed out
request.
This support is currently only available for the NAS and WDS services, which are
the ones supporting ABORT for their long-running operations.
|
|
|
|
|
|
|
|
|
|
|
|
Message traces have been very useful when debugging issues in the protocol, and
we should avoid requiring a full recompilation in order to get them enabled.
Instead, we provide two new API methods, `qmi_utils_(get|set)_traces_enabled()',
which allow specifying whether traces should be dumped with g_debug() or not.
|
|
|
|
|
|
|
|
These methods are (should only be) used only by the library.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Among the tons of fixes done here, we now generate some per-service .sections
file which we then concatenate to build the final libqmi-glib-sections.txt file.
|
|
Also simplify the build by using BUILT_SOURCES to avoid needing to specify
custom dependency rules.
|
|
|
|
|
|
|
|
Seems that SINR and IO, even if they are supposedly only meaningful in EV-DO,
may still be given for other networks.
[27 Sep 2012, 11:17:36] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> QMUX:
>>>>>> length = 49
>>>>>> flags = 0x80
>>>>>> service = "nas"
>>>>>> client = 6
>>>>>> QMI:
>>>>>> flags = "response"
>>>>>> transaction = 1
>>>>>> tlv_length = 37
>>>>>> message = "Get Signal Strength" (0x0020)
>>>>>> TLV:
>>>>>> type = "Result" (0x02)
>>>>>> length = 4
>>>>>> value = 00:00:00:00
>>>>>> translated = SUCCESS
>>>>>> TLV:
>>>>>> type = "Signal Strength" (0x01)
>>>>>> length = 2
>>>>>> value = A8:05
>>>>>> translated = [ strength = '-88' radio_interface = '5' ]
>>>>>> TLV:
>>>>>> type = "RSSI List" (0x11)
>>>>>> length = 4
>>>>>> value = 01:00:58:05
>>>>>> translated = { [0] = '[ rssi = '88' radio_interface = '5' ] '}
>>>>>> TLV:
>>>>>> type = "ECIO List" (0x12)
>>>>>> length = 4
>>>>>> value = 01:00:FC:05
>>>>>> translated = { [0] = '[ ecio = '252' radio_interface = '5' ] '}
>>>>>> TLV:
>>>>>> type = "IO" (0x13)
>>>>>> length = 4
>>>>>> value = 96:FF:FF:FF
>>>>>> translated = -106
>>>>>> TLV:
>>>>>> type = "SINR" (0x14)
>>>>>> length = 1
>>>>>> value = 08
>>>>>> translated = 8
|
|
|
|
Some architectures require that the value of a pointer is aligned in memory.
Given that we're reading from a raw buffer, the integers in it may not end up
aligned so we cannot safely cast any address to a valid 16/32/64 bit integer
value. Handle this by copying the integer from the raw buffer directly into the
output variable, which is of course properly aligned. Also added new test cases
to check this.
Thanks to:
Shawn J. Goff <shawnjgoff@gmail.com>
for reporting the issue and his endless tests.
|
|
Can be run e.g. like:
$> sudo qmicli -d /dev/cdc-wdm0 --dms-select-stored-image="modem1,pri2"
|
|
Can be run e.g. like:
$> sudo qmicli -d /dev/cdc-wdm0 --dms-delete-stored-image="pri2"
The passed index is the one given by a previous `--dms-list-stored-images'
action. Please note that if you delete a given image, the listed indexes will
change, so if you want to delete multiple images you'll need to first list
stored images and grab the index and then use that bew index to delete the new
image.
Also, don't try this command many times or you'll run out of images to delete!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When an array is required to be passed in an input TLV, the user who created it
is responsible for freeing it. Therefore, we should not dump the static array
element clear function in these cases, or these unused methods will end up
breaking the compilation.
|
|
|
|
|
|
We make sure that every `QmiMessage' object out there is valid according to our
now internal message_check(). Therefore, it's pointless to run the validity
checks in getters, so remove those.
|
|
Why have our own ref-counted byte array when we can use the default glib one?
|
|
Passing a modifiable `GByteArray' allows us to run the validity check as soon as
we create the `QmiMessage', given that we can remove the read chunk of data from
the input buffer directly. This removal takes place both when the QMI message is
valid and invalid.
|
|
|
|
|
|
|