aboutsummaryrefslogtreecommitdiffstats
path: root/build-aux/qmi-codegen/Message.py
Commit message (Collapse)AuthorAgeFilesLines
* qmi-codegen: use the new TLV builder APIAleksander Morgado2014-11-091-5/+10
|
* qmi-codegen: fix some python3 compatibility issuesDan Williams2012-12-171-1/+1
| | | | Simple methods are no longer in the string module.
* qmi-codegen: validate TLV before really reading itAleksander Morgado2012-10-301-7/+4
| | | | | | | | | | Try to handle buggy firmware, or just make the library more robust, by validating the read TLV before really reading it. If a TLV is not considered valid, we just skip it for now. E.g.: the "Detailed Service Status" TLV (0x21) in the "NAS Get Serving System" message is supposed to be a sequence of 5 bytes, but some models (e.g. ZTE MF683) end up sending only the first 4 bytes.
* libqmi-glib,qmi-codegen: timed out operations will issue an ABORT messageAleksander Morgado2012-10-101-2/+8
| | | | | | | | | 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.
* libqmi-glib,utils: make qmi_utils_str_hex() private to the libraryAleksander Morgado2012-10-091-1/+1
|
* qmi-codegen: request creator and response/indication parsers are privateAleksander Morgado2012-10-091-43/+5
|
* docs: improve generated `libqmi-glib' documentationAleksander Morgado2012-10-091-1/+58
| | | | | 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.
* libmm-glib: fix multiple documentation issuesAleksander Morgado2012-10-091-1/+1
|
* message: swapped buffer/length variables in `qmi_message_get_tlv_printable()'Aleksander Morgado2012-09-261-2/+2
|
* message: renamed `qmi_message_tlv_foreach()' to `qmi_message_foreach_raw_tlv()'Aleksander Morgado2012-09-261-4/+4
|
* qmi-codegen: fix printable indicationsAleksander Morgado2012-09-181-24/+29
|
* qmi-codegen: allow indications without output TLVsAleksander Morgado2012-07-231-101/+121
|
* qmi-codegen: convert indication messages received into `QmiClient' signalsAleksander Morgado2012-07-231-37/+47
|
* qmi-codegen: trivial fix, renamed internal methodAleksander Morgado2012-07-231-2/+2
| | | | TLVs are either input or output, not always output.
* qmi-codegen: support a new 'version' tag in the messagesAleksander Morgado2012-07-231-0/+2
| | | | | | If the 'version' tag is given in the messages and the `QmiDevice' is opened with a explicit version info check, we will return an error if we're trying to send a message which was introduced in a newer version of a service we support.
* qmi-codegen: fix including message name on error stringAleksander Morgado2012-07-051-1/+2
|
* qmi-codegen: refactor, don't use internal packed structs to match TLVsAleksander Morgado2012-07-031-10/+31
| | | | | | | | | | | | | | | | | | | | | | | | This is a huge refactor to avoid using internal packed structs to match TLVs from a raw byte buffer. There are cases where packed structs do not help, for example when two variable-length fields (like strings) are found in the same TLV. Instead of packed structs, we'll read basic types one by one directly from the raw byte buffer. With this new logic, struct and array variables are no more than containers of other basic types. Each basic type, implemented as objects inheriting from a base Variable type, knows how to read/write from/to the raw buffer. Therefore, reading a struct is just about reading one by one each of the fields in the struct; and reading an array is just about providing a loop to read all the array elements one by one. This greatly simplifies reading basic types like integers, as the implementation is kept in a single place, regardless of having the integer as the only field in the TLV or as a field of a struct TLV or as an element of an array TLV. Strings are treated a bit differently. In string TLVs, the string is to be considered to be as long as the TLV value itself. In struct TLVs with string fields, the string is assumed to have a 1-byte length prefix which specifies the length of the string field within the TLV.
* qmi-codegen: properly print a gsizeAleksander Morgado2012-07-031-1/+1
|
* qmi-codegen: pretty-print the structsAleksander Morgado2012-07-031-2/+6
|
* qmi-codegen: include struct TLV contents in printable stringsAleksander Morgado2012-07-031-4/+19
|
* qmi-codegen: improve message/TLV printabilityAleksander Morgado2012-07-031-2/+116
|
* qmi-codegen: improve input bundlesAleksander Morgado2012-07-031-6/+58
| | | | | Simplify the field-type-specific TLV adding, as well as the mandatory field checkings.
* qmi-codegen: allow specifying files with common typesAleksander Morgado2012-07-031-3/+5
| | | | | | 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.
* codegen: new `qmi-codegen' build utilityAleksander Morgado2012-07-031-0/+180
It will try to generate message creator/parsers from a manually maintained JSON-encoded database.