Commit Graph

39 Commits

Author SHA1 Message Date
Denis Kenzior 66bc5b3fd4 mbim: Don't copy too much
_mbim_message_build doesn't really care about the fragmentation header
contents, so just don't copy those unnecessarily.
2019-11-13 17:01:15 -06:00
Denis Kenzior 5ee73d9101 mbim: Fix warning
CC       drivers/mbimmodem/mbim-message.o
	 drivers/mbimmodem/mbim-message.c: In function ‘_iter_copy_string’:
	 drivers/mbimmodem/mbim-message.c:199:18: error: cast increases required
	 alignment of target type [-Werror=cast-align]
2019-06-21 12:47:18 -05:00
Marcel Holtmann 2a5c9cf0f2 mbimmodem: Convert back to using __builtin_bswap16 with proper indexing 2018-10-31 21:03:49 +01:00
Marcel Holtmann 2df69194ac mbimmodem: Fix conversion of strings into UTF16-LE on big endian 2018-10-31 21:00:38 +01:00
Marcel Holtmann 63ed2c2080 mbimmodem: Fix endian issue with UTF16-LE to UTF16-CPU conversion 2018-10-31 20:42:14 +01:00
Marcel Holtmann 8452a7f349 build: Add support for internal and external Embedded Linux library 2018-10-31 19:58:10 +01:00
Denis Kenzior f43341af2f mbim: Add IPv4/v6 Element & Address extractors
The IP Configuration data structure does not match any of the existing
data structure serialization conventions in the rest of the MBIM
specification.  So add IPv4 / v6 specific extractors for IPV4 address
and IPV4 Element structures.
2017-11-13 21:24:37 -06:00
Denis Kenzior f7bd6900c3 mbim: Properly write values in little endian format 2017-11-13 21:24:37 -06:00
Denis Kenzior cc196e6503 mbim: Add support for 64-bit integers 2017-11-13 21:24:37 -06:00
Denis Kenzior 47b562b91c mbim: Silence unused variable warning 2017-11-09 11:39:07 -06:00
Denis Kenzior bd0ba8bf3b mbim: Support variable struct signatures in arrays
DEVICE_SUBSCRIBE_LIST uses an array of structures.  The structure
contains the UUID of the service and then a variable number of CIDs that
are enabled.
2017-11-08 21:41:34 -06:00
Denis Kenzior 529d522a00 mbim: Support embedded databuffers
SMS_SEND uses an embedded databuffer inside MBIM_SET_SMS_SEND which
wants to use a local offset (local to the databuffer structure) as
opposed to the offset from the start of the static buffer.
2017-11-08 21:41:31 -06:00
Denis Kenzior 5ef333b363 mbim: Fix incorrectly generating arrays 2017-11-08 21:02:22 -06:00
Denis Kenzior bae2843eac mbim: Add additional sanity checking
For zero element arrays we might inadvertently run past the end of the
iov buffer.  Fix this by adding additional checks that n_elem > 0 and
don't call _iter_get_data unless needed.
2017-11-08 21:02:22 -06:00
Denis Kenzior dc8574ba55 mbim: Support appending byte arrays 2017-11-08 21:02:22 -06:00
Denis Kenzior 79ebe4beb9 mbim: Fix iterator advance logic 2017-11-08 21:02:22 -06:00
Denis Kenzior f0c1bdcf88 mbim: Support all types in _mbim_message_build 2017-10-05 11:08:38 -05:00
Denis Kenzior 1d16d4ac4e mbim: Add header & body accessors for mbim-message 2017-10-05 11:08:38 -05:00
Denis Kenzior 684be2760c mbim: Add mbim_message_get_uuid 2017-10-05 11:08:38 -05:00
Denis Kenzior a12f3c73ac mbim: Add mbim_message_get_cid 2017-10-05 11:08:38 -05:00
Denis Kenzior d9b0bbf69b mbim: Rework mbim_message_new 2017-10-05 11:08:38 -05:00
Denis Kenzior 8c0caf5715 mbim: Add mbim_message_get_error 2017-10-05 11:08:38 -05:00
Denis Kenzior 5f6a0147ba unit: Add phonebook read build test 2017-10-05 11:08:38 -05:00
Denis Kenzior 75993d8edc mbim: Add mbim_message_set_arguments 2017-10-05 11:08:38 -05:00
Denis Kenzior 1ed919c368 mbim: Support for building variable-sized structs 2017-10-05 11:08:38 -05:00
Denis Kenzior 54ff05956c mbim: Add support for building arrays 2017-10-05 11:08:38 -05:00
Denis Kenzior 9ed20413cc mbim: Add _mbim_message_to_bytearray 2017-10-05 11:08:38 -05:00
Denis Kenzior 76c97996f5 mbim: Add _mbim_message_set_tid 2017-10-05 11:08:38 -05:00
Denis Kenzior f66c2fe982 mbim: Add _mbim_message_new_command_done
This is for unit testing purposes
2017-10-05 11:08:38 -05:00
Denis Kenzior 76811bb326 mbim: Add basic message builder support 2017-10-05 11:08:38 -05:00
Denis Kenzior 99501a7d1d mbim: Support parsing structures 2017-10-05 11:08:38 -05:00
Denis Kenzior db1a61cd27 mbim: Add support for arrays of fixed-size elements
Variable-sized arrays are handled by using an Element Count followed by
OL_PAIR_LIST.  For fixed size arrays, an Offset followed by Length is
used.
2017-10-05 11:08:38 -05:00
Denis Kenzior 506e77053b mbim: Don't assume 4-byte alignment
This change would make it possible to read individual bytes from ay type
structures.
2017-10-05 11:08:38 -05:00
Denis Kenzior a64b5453e8 mbim: Parse variable sized item arrays 2017-10-05 11:08:38 -05:00
Denis Kenzior b9de1d999f mbim: Add mbim_message_get_arguments 2017-10-05 11:08:38 -05:00
Denis Kenzior 3ee2343803 mbim: Handle extraction of strings 2017-10-05 11:08:38 -05:00
Denis Kenzior 60c9225169 mbim: add _mbim_information_buffer_length_offset 2017-10-05 11:08:38 -05:00
Denis Kenzior f854c8d193 mbim: Add basic message payload parser 2017-10-05 11:08:38 -05:00
Denis Kenzior 3ddbdda745 mbim: Add skeleton mbim-message class 2017-10-05 11:08:38 -05:00