12 Commits

Author SHA1 Message Date
Alex Elder
ad480502eb parser: properly support 64-bit numbers
The language supports specifying 64-bit unsigned values, but the num
field of the token structure is not guaranteed to be 64 bits wide.
Change its type to be unsigned long long, and change the code that
parses numbers to use strtoull() so we can actually accept a 64-bit
value.

This is also true of the value field of the token type.  Change it
to unsigned long long as well (and format it as unsigned).

Check the return value of strtoull(), and if the result is out of
range, report an error.

Signed-off-by: Alex Elder <elder@linaro.org>
Message-Id: <20211001232338.769309-23-elder@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-10-04 12:29:38 -05:00
Alex Elder
c172d15f2b parser: use stronger typing in the symbol structure
Refine the definition of the symbol structure with an anonymous
union to make it a little clearer whether a token describes a
message or a type.

In symbol_add(), be more explicit about the type of additional
arguments expected to be seen.  Add a name to the enumerated type
representing the defined "type" type values (U8, STRUCT, etc.).
And change the type of the type field in the symbol structure to
have that enumerated type.

Specifically, if the symbol being added is a message, the argument
that follows should be one of the message types (request, response,
or indication).  And if the symbol being added is a type, the next
argument is expected to be one of the "type" types.  This makes it a
little easier to understand what the code is doing.

Signed-off-by: Alex Elder <elder@linaro.org>
Message-Id: <20211001232338.769309-20-elder@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-10-04 12:27:02 -05:00
Bjorn Andersson
8e5daab4a6 kernel: Introduce kernel-style generator
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-31 13:00:02 -08:00
Bjorn Andersson
06a2c5a19b accessor: Move accessor generators to one file
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 16:54:13 -08:00
Bjorn Andersson
6f19b29065 parser: Tidy up parser after move
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 16:18:13 -08:00
Bjorn Andersson
7e7d2a2a17 parser: Move struct parser to parser.c
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 16:13:06 -08:00
Bjorn Andersson
63f0bedbda parser: Move message parsing to parser.c
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 16:10:54 -08:00
Bjorn Andersson
a3aa10545b qmic: Move simple type array to common file
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 16:06:33 -08:00
Bjorn Andersson
4c693b7551 qmic: Adopt common list implementation
Use the list implementation from other projects instead of rolling
custom list operations throughout the codebase.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 15:55:49 -08:00
Bjorn Andersson
b4e899fffc qmi: Annotate yyerror noreturn
The yyerror() doesn't return, so let the compiler know this, in order to
silence warnings about potentially uninitialized variables.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2018-01-30 12:09:42 -08:00
Bjorn Andersson
9d4a317d4f qmic: Support specifying request, response or indication type
Allow specifying message type for the tlv support functions to verify
and create the right type of qmi header.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2016-02-07 21:24:02 -08:00
Bjorn Andersson
241fff829e qmic: Initial basic implementation
This initial implementation is capable of generating encoder and decoder
accessors for messages with basic integers, strings, arrays and structs.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2016-02-07 09:27:50 -08:00