mirror of git://git.sysmocom.de/ofono
mbim: Add mbim_message_get_arguments
This commit is contained in:
parent
3ee2343803
commit
b9de1d999f
|
@ -412,3 +412,35 @@ struct mbim_message *_mbim_message_build(const void *header,
|
||||||
|
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool mbim_message_get_arguments(struct mbim_message *message,
|
||||||
|
const char *signature, ...)
|
||||||
|
{
|
||||||
|
struct mbim_message_iter iter;
|
||||||
|
va_list args;
|
||||||
|
bool result;
|
||||||
|
struct mbim_message_header *hdr;
|
||||||
|
uint32_t type;
|
||||||
|
size_t begin;
|
||||||
|
|
||||||
|
if (unlikely(!message))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (unlikely(!message->sealed))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
hdr = (struct mbim_message_header *) message->header;
|
||||||
|
type = L_LE32_TO_CPU(hdr->type);
|
||||||
|
begin = _mbim_information_buffer_offset(type);
|
||||||
|
|
||||||
|
_iter_init_internal(&iter, CONTAINER_TYPE_STRUCT,
|
||||||
|
signature, NULL,
|
||||||
|
message->frags, message->n_frags,
|
||||||
|
message->info_buf_len, begin, 0, 0);
|
||||||
|
|
||||||
|
va_start(args, signature);
|
||||||
|
result = message_iter_next_entry_valist(&iter, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
|
@ -43,4 +43,7 @@ struct mbim_message *mbim_message_new(const uint8_t *uuid, uint32_t cid);
|
||||||
struct mbim_message *mbim_message_ref(struct mbim_message *msg);
|
struct mbim_message *mbim_message_ref(struct mbim_message *msg);
|
||||||
void mbim_message_unref(struct mbim_message *msg);
|
void mbim_message_unref(struct mbim_message *msg);
|
||||||
|
|
||||||
|
bool mbim_message_get_arguments(struct mbim_message *message,
|
||||||
|
const char *signature, ...);
|
||||||
|
|
||||||
bool mbim_message_iter_next_entry(struct mbim_message_iter *iter, ...);
|
bool mbim_message_iter_next_entry(struct mbim_message_iter *iter, ...);
|
||||||
|
|
Loading…
Reference in New Issue