dbus: Dict helpers for fetching integers of any type

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2024-09-15 11:59:24 +03:00 committed by Jouni Malinen
parent fd1a149d91
commit d2408e3032
2 changed files with 38 additions and 0 deletions

View file

@ -1159,3 +1159,38 @@ void wpa_dbus_dict_entry_clear(struct wpa_dbus_dict_entry *entry)
os_memset(entry, 0, sizeof(struct wpa_dbus_dict_entry));
}
dbus_bool_t wpa_dbus_dict_entry_is_int(const struct wpa_dbus_dict_entry *entry)
{
return entry->type == DBUS_TYPE_BYTE ||
entry->type == DBUS_TYPE_INT16 ||
entry->type == DBUS_TYPE_UINT16 ||
entry->type == DBUS_TYPE_INT32 ||
entry->type == DBUS_TYPE_UINT32 ||
entry->type == DBUS_TYPE_INT64 ||
entry->type == DBUS_TYPE_UINT64;
}
int wpa_dbus_dict_entry_get_int(const struct wpa_dbus_dict_entry *entry)
{
switch (entry->type) {
case DBUS_TYPE_BYTE:
return entry->byte_value;
case DBUS_TYPE_INT16:
return entry->int16_value;
case DBUS_TYPE_UINT16:
return entry->uint16_value;
case DBUS_TYPE_INT32:
return entry->int32_value;
case DBUS_TYPE_UINT32:
return entry->uint32_value;
case DBUS_TYPE_INT64:
return entry->int64_value;
case DBUS_TYPE_UINT64:
return entry->uint64_value;
}
return -1;
}

View file

@ -158,4 +158,7 @@ dbus_bool_t wpa_dbus_dict_has_dict_entry(DBusMessageIter *iter_dict);
void wpa_dbus_dict_entry_clear(struct wpa_dbus_dict_entry *entry);
dbus_bool_t wpa_dbus_dict_entry_is_int(const struct wpa_dbus_dict_entry *entry);
int wpa_dbus_dict_entry_get_int(const struct wpa_dbus_dict_entry *entry);
#endif /* DBUS_DICT_HELPERS_H */