Lines Matching refs:fi
35 if (!strcmp(pv->fi.name, name))
54 switch (pv->fi.type) {
59 pv->fi.times++;
60 if (pv->fi.times >= pv->fi.pre)
61 if (pv->fi.times < pv->fi.pre + pv->fi.count)
66 if (lws_xos_percent((lws_xos_t *)&fic->xos, (int)pv->fi.pre))
72 n = (int)((pv->fi.times++) % pv->fi.count);
73 if (pv->fi.pattern[n >> 3] & (1 << (n & 7)))
86 fic->name ? fic->name : "unk", pv->fi.name);
102 if (pv->fi.type != LWSFI_RANGE) {
108 d = pv->fi.count - pv->fi.pre;
110 *result = pv->fi.pre + (lws_xos((lws_xos_t *)&fic->xos) % d);
144 lws_fi_add(lws_fi_ctx_t *fic, const lws_fi_t *fi)
147 size_t n = strlen(fi->name);
155 memcpy(&pv->fi, fi, sizeof(*fi));
156 pv->fi.name = (const char *)&pv[1];
157 memcpy(&pv[1], fi->name, n + 1);
196 lws_fi_t fi = *pfi;
198 fi.name += trim;
201 pfi->name, fi.name);
203 if (fi.type == LWSFI_PATTERN_ALLOC) {
204 fi.pattern = lws_malloc((size_t)((fi.count >> 3) + 1), __func__);
205 if (!fi.pattern)
207 memcpy((uint8_t *)fi.pattern, pfi->pattern,
208 (size_t)((fi.count >> 3) + 1));
211 lws_fi_add(fic_dest, &fi);
229 size_t nl = strlen(pv->fi.name);
232 do_inherit(fic_dest, &pv->fi, 0);
235 !strncmp(pv->fi.name, scope, sl) &&
236 pv->fi.name[sl] == '/')
237 do_inherit(fic_dest, &pv->fi, sl + 1);
240 pv->fi.name[sl] == '=' &&
241 !strncmp(pv->fi.name + sl + 1, value, vl) &&
242 pv->fi.name[sl + 1 + vl] == '/')
243 do_inherit(fic_dest, &pv->fi, sl + vl + 2);
256 if (pv->fi.type == LWSFI_PATTERN_ALLOC && pv->fi.pattern) {
257 lws_free((void *)pv->fi.pattern);
258 pv->fi.pattern = NULL;
289 lws_fi_t fi;
319 memset(&fi, 0, sizeof(fi));
323 fi.name = nm;
324 fi.type = LWSFI_ALWAYS;
345 fi.type = LWSFI_PATTERN_ALLOC;
350 fi.pattern = pat;
351 fi.count = (uint64_t)ts.token_len;
366 fi.pre = (uint64_t)atoll(ts.token);
380 fi.count = (uint64_t)atoll(
382 fi.type = LWSFI_RANGE;
385 if (fi.pre >= fi.count) {
393 (unsigned long long)fi.pre,
394 (unsigned long long)fi.count);
399 (int)fi.pre);
400 fi.type = LWSFI_PROBABILISTIC;
408 lws_fi_add(fic, &fi);
440 lws_fi_add(fic, &fi);