Lines Matching defs:set

18 	/* lookup index for each unique string in strings set */
41 struct strset *set = calloc(1, sizeof(*set));
45 if (!set)
48 hash = hashmap__new(strset_hash_fn, strset_equal_fn, set);
52 set->strs_data_max_len = max_data_sz;
53 set->strs_hash = hash;
58 set->strs_data = malloc(init_data_sz);
59 if (!set->strs_data)
62 memcpy(set->strs_data, init_data, init_data_sz);
63 set->strs_data_len = init_data_sz;
64 set->strs_data_cap = init_data_sz;
66 for (off = 0; off < set->strs_data_len; off += strlen(set->strs_data + off) + 1) {
78 return set;
80 strset__free(set);
84 void strset__free(struct strset *set)
86 if (IS_ERR_OR_NULL(set))
89 hashmap__free(set->strs_hash);
90 free(set->strs_data);
91 free(set);
94 size_t strset__data_size(const struct strset *set)
96 return set->strs_data_len;
99 const char *strset__data(const struct strset *set)
101 return set->strs_data;
104 static void *strset_add_str_mem(struct strset *set, size_t add_sz)
106 return libbpf_add_mem(&set->strs_data, &set->strs_data_cap, 1,
107 set->strs_data_len, set->strs_data_max_len, add_sz);
116 int strset__find_str(struct strset *set, const char *s)
123 p = strset_add_str_mem(set, len);
127 new_off = set->strs_data_len;
130 if (hashmap__find(set->strs_hash, new_off, &old_off))
142 int strset__add_str(struct strset *set, const char *s)
148 /* Hashmap keys are always offsets within set->strs_data, so to even
151 * until set->strs_data_len is incremented, that string is just a piece
154 * ready to be used, only a simple set->strs_data_len increment away.
157 p = strset_add_str_mem(set, len);
161 new_off = set->strs_data_len;
168 err = hashmap__insert(set->strs_hash, new_off, new_off,
175 set->strs_data_len += len; /* new unique string, adjust data length */