• Home
  • Raw
  • Download

Lines Matching +full:- +full:fi

4  * Copyright (C) 2019 - 2021 Andy Green <andy@warmcat.com>
25 #include "private-lib-core.h"
32 lws_start_foreach_dll(struct lws_dll2 *, p, fic->fi_owner.head) { in lws_fi_lookup()
35 if (!strcmp(pv->fi.name, name)) in lws_fi_lookup()
54 switch (pv->fi.type) { in lws_fi()
59 pv->fi.times++; in lws_fi()
60 if (pv->fi.times >= pv->fi.pre) in lws_fi()
61 if (pv->fi.times < pv->fi.pre + pv->fi.count) in lws_fi()
66 if (lws_xos_percent((lws_xos_t *)&fic->xos, (int)pv->fi.pre)) in lws_fi()
72 n = (int)((pv->fi.times++) % pv->fi.count); in lws_fi()
73 if (pv->fi.pattern[n >> 3] & (1 << (n & 7))) in lws_fi()
85 lwsl_warn("%s: Injecting fault %s->%s\n", __func__, in lws_fi()
86 fic->name ? fic->name : "unk", pv->fi.name); in lws_fi()
102 if (pv->fi.type != LWSFI_RANGE) { in lws_fi_range()
108 d = pv->fi.count - pv->fi.pre; in lws_fi_range()
110 *result = pv->fi.pre + (lws_xos((lws_xos_t *)&fic->xos) % d); in lws_fi_range()
118 return lws_fi(&wsi->fic, name); in _lws_fi_user_wsi_fi()
124 return lws_fi(&ctx->fic, name); in _lws_fi_user_context_fi()
131 return lws_fi(&h->fic, name); in _lws_fi_user_ss_fi()
138 return lws_fi(&h->fic, name); in _lws_fi_user_sspc_fi()
144 lws_fi_add(lws_fi_ctx_t *fic, const lws_fi_t *fi) in lws_fi_add() argument
147 size_t n = strlen(fi->name); in lws_fi_add()
153 lws_dll2_clear(&pv->list); in lws_fi_add()
155 memcpy(&pv->fi, fi, sizeof(*fi)); in lws_fi_add()
156 pv->fi.name = (const char *)&pv[1]; in lws_fi_add()
157 memcpy(&pv[1], fi->name, n + 1); in lws_fi_add()
159 lws_dll2_add_tail(&pv->list, &fic->fi_owner); in lws_fi_add()
172 lws_dll2_remove(&pv->list); in lws_fi_remove()
181 lws_xos_init(&fic_dest->xos, lws_xos((lws_xos_t *)&fic_src->xos)); in lws_fi_import()
184 fic_src->fi_owner.head) { in lws_fi_import()
187 lws_dll2_remove(&pv->list); in lws_fi_import()
188 lws_dll2_add_tail(&pv->list, &fic_dest->fi_owner); in lws_fi_import()
196 lws_fi_t fi = *pfi; in do_inherit() local
198 fi.name += trim; in do_inherit()
200 lwsl_info("%s: %s: %s inherited as %s\n", __func__, fic_dest->name, in do_inherit()
201 pfi->name, fi.name); in do_inherit()
203 if (fi.type == LWSFI_PATTERN_ALLOC) { in do_inherit()
204 fi.pattern = lws_malloc((size_t)((fi.count >> 3) + 1), __func__); in do_inherit()
205 if (!fi.pattern) in do_inherit()
207 memcpy((uint8_t *)fi.pattern, pfi->pattern, in do_inherit()
208 (size_t)((fi.count >> 3) + 1)); in do_inherit()
211 lws_fi_add(fic_dest, &fi); in do_inherit()
227 fic_src->fi_owner.head) { in lws_fi_inherit_copy()
229 size_t nl = strlen(pv->fi.name); in lws_fi_inherit_copy()
232 do_inherit(fic_dest, &pv->fi, 0); in lws_fi_inherit_copy()
235 !strncmp(pv->fi.name, scope, sl) && in lws_fi_inherit_copy()
236 pv->fi.name[sl] == '/') in lws_fi_inherit_copy()
237 do_inherit(fic_dest, &pv->fi, sl + 1); in lws_fi_inherit_copy()
240 pv->fi.name[sl] == '=' && in lws_fi_inherit_copy()
241 !strncmp(pv->fi.name + sl + 1, value, vl) && in lws_fi_inherit_copy()
242 pv->fi.name[sl + 1 + vl] == '/') in lws_fi_inherit_copy()
243 do_inherit(fic_dest, &pv->fi, sl + vl + 2); in lws_fi_inherit_copy()
253 fic->fi_owner.head) { in lws_fi_destroy()
256 if (pv->fi.type == LWSFI_PATTERN_ALLOC && pv->fi.pattern) { in lws_fi_destroy()
257 lws_free((void *)pv->fi.pattern); in lws_fi_destroy()
258 pv->fi.pattern = NULL; in lws_fi_destroy()
261 lws_dll2_remove(&pv->list); in lws_fi_destroy()
289 lws_fi_t fi; in lws_fi_deserialize() local
293 * Go through the comma-separated list of faults in lws_fi_deserialize()
319 memset(&fi, 0, sizeof(fi)); in lws_fi_deserialize()
323 fi.name = nm; in lws_fi_deserialize()
324 fi.type = LWSFI_ALWAYS; in lws_fi_deserialize()
345 fi.type = LWSFI_PATTERN_ALLOC; in lws_fi_deserialize()
350 fi.pattern = pat; in lws_fi_deserialize()
351 fi.count = (uint64_t)ts.token_len; in lws_fi_deserialize()
366 fi.pre = (uint64_t)atoll(ts.token); in lws_fi_deserialize()
368 for (m = 0; m < (int)ts.token_len - 1; m++) in lws_fi_deserialize()
380 fi.count = (uint64_t)atoll( in lws_fi_deserialize()
382 fi.type = LWSFI_RANGE; in lws_fi_deserialize()
385 if (fi.pre >= fi.count) { in lws_fi_deserialize()
393 (unsigned long long)fi.pre, in lws_fi_deserialize()
394 (unsigned long long)fi.count); in lws_fi_deserialize()
399 (int)fi.pre); in lws_fi_deserialize()
400 fi.type = LWSFI_PROBABILISTIC; in lws_fi_deserialize()
408 lws_fi_add(fic, &fi); in lws_fi_deserialize()
440 lws_fi_add(fic, &fi); in lws_fi_deserialize()