Commit Graph

200 Commits

Author SHA1 Message Date
Aleksander Morgado 5ee73a0f3e core: use new autogenerated code for the WDS service 2012-07-03 16:08:54 +02:00
Aleksander Morgado 39de72d0b2 data: add database of WDS messages 2012-07-03 16:08:54 +02:00
Aleksander Morgado f01a927934 qmi-codegen: improve input bundles
Simplify the field-type-specific TLV adding, as well as the mandatory field
checkings.
2012-07-03 16:08:54 +02:00
Aleksander Morgado 02d2ba6471 qmi-codegen: strings are copied when set 2012-07-03 16:08:54 +02:00
Aleksander Morgado cdf2e190b3 qmi-codegen: allow prerequisites to be more than one 2012-07-03 16:08:54 +02:00
Aleksander Morgado cb730a57be qmi-codegen: if a copy() operation is given in the Field, use it when setting 2012-07-03 16:08:54 +02:00
Aleksander Morgado f0c6b93408 qmi-codegen: always transfer-none when reading parameters from bundles 2012-07-03 16:08:54 +02:00
Aleksander Morgado 4e21e3991f core: use new autogenerated code for the DMS service 2012-07-03 16:08:54 +02:00
Aleksander Morgado 18e6cc52c1 device: the array returned is not fully transferred, so keep a ref around 2012-07-03 16:08:54 +02:00
Aleksander Morgado 536a589678 qmi-codegen: support new 'string' TLV fields 2012-07-03 16:08:54 +02:00
Aleksander Morgado 86670ea3e9 qmi-codegen: ensure containers get created with ref_count = 1 2012-07-03 16:08:54 +02:00
Aleksander Morgado 911858cbb7 qmi-codegen: ensure fields with prerequisites are handled after the prerequisites
Currently we only support:
   * fields without prerequisites and which are not prerequisite of another field.
   * fields without prerequisites and which are prerequisite of another field.
   * fields with 1 prerequisite and which are not prerequisite of another field

We'll add more support whenever needed.
2012-07-03 16:08:54 +02:00
Aleksander Morgado fe3d7e34cc data: let the `Result' TLV be a common type 2012-07-03 16:08:54 +02:00
Aleksander Morgado 16f5dc0e8e qmi-codegen: allow specifying files with common types
Some times, e.g. the Result TLV, are the same in every message defined, so
instead of re-defining them over and over, just provide a reference to a
common predefined type.
2012-07-03 16:08:53 +02:00
Aleksander Morgado b97d32fd32 qmi-codegen: pass input and output files with command line options 2012-07-03 16:08:53 +02:00
Aleksander Morgado ac2a3802fa codegen: special treatment for the common `Result' output TLV
Instead of making the Result struct public, just provide a new method for each
OutputContainer, like:

gboolean
qmi_messate_ctl_something_output_get_result (
    QmiMessageCtlSomethingOutput *self,
    GError **error);

This method will return special `QMI_PROTOCOL_ERROR' GErrors with the specific
error code returned in the QMI Response message.
2012-07-03 16:08:53 +02:00
Aleksander Morgado 64b944badc core: use new autogenerated code for the CTL service 2012-07-03 16:08:53 +02:00
Aleksander Morgado 716b0c15ea build: use `qmi-codegen' to build CTL-specific message handling 2012-07-03 16:08:53 +02:00
Aleksander Morgado 9182c49222 data: add database of CTL messages 2012-07-03 16:08:53 +02:00
Aleksander Morgado 4c17c33edd codegen: new `qmi-codegen' build utility
It will try to generate message creator/parsers from a manually maintained
JSON-encoded database.
2012-07-03 16:08:53 +02:00
Aleksander Morgado c04af51eb2 build-aux: move header/source templates to its own `template' directory 2012-07-03 16:08:53 +02:00
Aleksander Morgado a586f30867 ctl,message: properly print `gsize' variable 2012-07-03 16:08:53 +02:00
Aleksander Morgado 7548d79c73 message: properly print `gsize' and `size_t' variables 2012-07-03 16:08:53 +02:00
Aleksander Morgado 1c047c2ef4 message: include missing interface methods 2012-07-03 16:08:53 +02:00
Aleksander Morgado 900b33af3d ctl: include missing interface methods 2012-07-03 16:08:53 +02:00
Aleksander Morgado 388abc8da6 build: by default compile with most warnings enabled and -Werror 2012-07-03 16:08:53 +02:00
Aleksander Morgado 341b5aeee2 core: avoid `QmiClient' typedef redefinition
Another option would have been to provide a qmi-types.h header with all typedefs
and struct forward declarations and let the qmi_client_get/peek_device() methods
return a proper QmiDevice. Not a big deal I guess.
2012-07-03 16:08:53 +02:00
Aleksander Morgado fe1c920942 core: we'll consider `qmi-message.h' a public header
We do want to provide users the capabilities to read and write raw QMI messages
themselves.
2012-07-03 16:08:53 +02:00
Aleksander Morgado be9cbb6873 device: method `device_store_transaction()' should return void 2012-07-03 16:08:53 +02:00
Aleksander Morgado 116e0ee886 cli: fix warning, remove unused variables 2012-07-03 16:08:53 +02:00
Aleksander Morgado 92c9e1e896 cli: include missing `glib/gprintf.h' header 2012-07-03 16:08:53 +02:00
Aleksander Morgado 298aa5c439 core: avoid unnecessary semicolons out of functions 2012-07-03 16:08:53 +02:00
Aleksander Morgado 512a553325 device: fix warning, let the buffer be a gchar buffer 2012-07-03 16:08:52 +02:00
Aleksander Morgado cd4acbfe45 device: don't include device path when setting the GErrors 2012-07-03 16:08:52 +02:00
Aleksander Morgado c00e534eef message: include missing interface methods 2012-07-03 16:08:52 +02:00
Aleksander Morgado dc421a9d7b core: fix warning, avoid comma after last enum value 2012-07-03 16:08:52 +02:00
Aleksander Morgado 5ea07589b7 core: fix warning, remove unused variables 2012-07-03 16:08:52 +02:00
Aleksander Morgado 55d8f1b0b8 core: fix warning, always provide a return value if returning non-void 2012-07-03 16:08:52 +02:00
Aleksander Morgado 7e4f4380ab qmi-network: avoid double brackets on if statements 2012-07-03 16:08:52 +02:00
Aleksander Morgado a5bf4b74d5 qmi-network: don't issue error if clearing already cleared state 2012-07-03 16:08:52 +02:00
Aleksander Morgado 674a242bdc qmi-network: if network start fails, release CID 2012-07-03 16:08:52 +02:00
Aleksander Morgado be46ed88d6 qmi-network: stopping while already stopped won't issue an error 2012-07-03 16:08:52 +02:00
Aleksander Morgado 611c5a7737 cli: new `--wds-noop' and `--dms-noop' which help to just allocate/release a CID
E.g.: If I want to allocate a WDS client with a NEW CID, without performing any
other operation, and keeping the CID unreleased; I would run:
  $> qmicli -d /dev/cdc-wdm0 --dms-noop --client-no-release-cid
   [/dev/cdc-wdm0] Client ID not released:
        Service: 'dms'
            CID: '1'

Then, if I just want to release that previously allocated  client:
  $> qmicli -d /dev/cdc-wdm0 --dms-noop --client-cid=1
2012-07-03 16:08:52 +02:00
Aleksander Morgado e2ce1ab21d utils,qmi-network: try to use /bin/sh instead of /bin/bash 2012-07-03 16:08:52 +02:00
Aleksander Morgado f0758c3b10 utils,qmi-network: always compare strings in if() conditions 2012-07-03 16:08:52 +02:00
Aleksander Morgado 20d40a528b cli,wds: fix reporting packet data handle on `--wds-stop-network' 2012-07-03 16:08:52 +02:00
Aleksander Morgado 7c798009a7 wds: fail if invalid packet data handle is set when stopping network 2012-07-03 16:08:52 +02:00
Aleksander Morgado 15a8cd9566 utils: new `qmi-network' script which helps starting/stopping the network 2012-07-03 16:08:52 +02:00
Aleksander Morgado 48a984f0a8 cli: ensure we release clients even on error conditions
Do not just exit() on errors, instead let the program flow do a clean shutdown,
which involves client ID releasing.
2012-07-03 16:08:52 +02:00
Aleksander Morgado 81c1b94300 qmicli: new `--silent' option
We will avoid every log in the `--silent' option, even the error and warning
ones.
2012-07-03 16:08:52 +02:00