Home | History | Annotate | Download | only in libufdt

Lines Matching refs:dict

43     const struct ufdt_prop_dict *dict, const char *name) {
46 int size = dict->mem_size;
50 const struct fdt_property **prop_ptr = &dict->props[idx];
54 const char *prop_name = fdt_string(dict->fdtp, fdt32_to_cpu(prop->nameoff));
63 struct ufdt_prop_dict *dict, const struct fdt_property *prop) {
64 const char *name = fdt_string(dict->fdtp, fdt32_to_cpu(prop->nameoff));
66 return _ufdt_prop_dict_find_index_by_name(dict, name);
69 int _ufdt_prop_dict_construct_int(struct ufdt_prop_dict *dict, void *fdtp,
77 dict->mem_size = size;
78 dict->num_used = 0;
79 dict->fdtp = fdtp;
80 dict->props = props;
85 int ufdt_prop_dict_construct(struct ufdt_prop_dict *dict, void *fdtp) {
86 return _ufdt_prop_dict_construct_int(dict, fdtp, UFDT_PROP_DICT_INIT_SZ);
89 void ufdt_prop_dict_destruct(struct ufdt_prop_dict *dict) {
90 if (dict == NULL) return;
92 dto_free(dict->props);
95 static int _ufdt_prop_dict_enlarge_if_needed(struct ufdt_prop_dict *dict) {
96 if (dict == NULL) return -1;
99 if (dict->num_used * DICT_LIMIT_DEN <= dict->mem_size * DICT_LIMIT_NUM) {
103 int new_size = dict->mem_size * 2;
105 _ufdt_prop_dict_construct_int(&temp_dict, dict->fdtp, new_size);
107 for (int i = 0; i < dict->mem_size; i++) {
108 const struct fdt_property *prop = dict->props[i];
120 dto_free(dict->props);
122 dict->mem_size = new_size;
123 dict->props = temp_dict.props;
128 int ufdt_prop_dict_add(struct ufdt_prop_dict *dict,
130 const struct fdt_property **prop_ptr = _ufdt_prop_dict_find_index(dict, prop);
136 if (*prop_ptr == NULL) dict->num_used++;
139 return _ufdt_prop_dict_enlarge_if_needed(dict);
142 const struct fdt_property *ufdt_prop_dict_find(const struct ufdt_prop_dict *dict,
145 _ufdt_prop_dict_find_index_by_name(dict, name);