diff options
author | Denis Kenzior <denkenz@gmail.com> | 2017-10-02 19:17:16 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2017-10-05 11:08:38 -0500 |
commit | 1d16d4ac4ee595eac86612c2183b540c338cbc18 (patch) | |
tree | 63833200245152ff661e86e0e60b127fc512035b /drivers/mbimmodem | |
parent | 0c8199dca5aa4eb2401322992bb7b03d10e2df52 (diff) | |
download | ofono-1d16d4ac4ee595eac86612c2183b540c338cbc18.tar.gz |
mbim: Add header & body accessors for mbim-message
Diffstat (limited to 'drivers/mbimmodem')
-rw-r--r-- | drivers/mbimmodem/mbim-message.c | 21 | ||||
-rw-r--r-- | drivers/mbimmodem/mbim-private.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/mbimmodem/mbim-message.c b/drivers/mbimmodem/mbim-message.c index 4db0324f..9d6b99de 100644 --- a/drivers/mbimmodem/mbim-message.c +++ b/drivers/mbimmodem/mbim-message.c @@ -1351,3 +1351,24 @@ bool mbim_message_set_arguments(struct mbim_message *message, return result; } + +void *_mbim_message_get_header(struct mbim_message *message, size_t *out_len) +{ + if (out_len) + *out_len = HEADER_SIZE; + + return message->header; +} + +struct iovec *_mbim_message_get_body(struct mbim_message *message, + size_t *out_n_iov, size_t *out_len) +{ + if (out_len) + *out_len = message->info_buf_len; + + if (out_n_iov) + *out_n_iov = message->info_buf_len ? message->n_frags : + message->n_frags - 1; + + return message->frags; +} diff --git a/drivers/mbimmodem/mbim-private.h b/drivers/mbimmodem/mbim-private.h index 72f7a879..e1592355 100644 --- a/drivers/mbimmodem/mbim-private.h +++ b/drivers/mbimmodem/mbim-private.h @@ -54,3 +54,6 @@ struct mbim_message *_mbim_message_new_command_done(const uint8_t *uuid, uint32_t _mbim_information_buffer_offset(uint32_t type); void _mbim_message_set_tid(struct mbim_message *message, uint32_t tid); void *_mbim_message_to_bytearray(struct mbim_message *message, size_t *out_len); +void *_mbim_message_get_header(struct mbim_message *message, size_t *out_len); +struct iovec *_mbim_message_get_body(struct mbim_message *message, + size_t *out_n_iov, size_t *out_len); |