int tweak_poolparam(struct vsb *vsb, const struct parspec *par, const char *arg) { volatile struct poolparam *pp, px; char **av; int retval = 0; pp = par->priv; if (arg == NULL) { VSB_printf(vsb, "%u,%u,%g", pp->min_pool, pp->max_pool, pp->max_age); } else { av = VAV_Parse(arg, NULL, ARGV_COMMA); do { if (av[0] != NULL) { VSB_printf(vsb, "Parse error: %s", av[0]); retval = -1; break; } if (av[1] == NULL || av[2] == NULL || av[3] == NULL) { VSB_printf(vsb, "Three fields required:" " min_pool, max_pool and max_age\n"); retval = -1; break; } px = *pp; retval = tweak_generic_uint(vsb, &px.min_pool, av[1], par->min, par->max); if (retval) break; retval = tweak_generic_uint(vsb, &px.max_pool, av[2], par->min, par->max); if (retval) break; retval = tweak_generic_double(vsb, &px.max_age, av[3], "0", "1e6", "%.0f"); if (retval) break; if (px.min_pool > px.max_pool) { VSB_printf(vsb, "min_pool cannot be larger" " than max_pool\n"); retval = -1; break; } *pp = px; } while(0); VAV_Free(av); } return (retval); }
int tweak_uint(struct vsb *vsb, const struct parspec *par, const char *arg) { volatile unsigned *dest; dest = par->priv; return (tweak_generic_uint(vsb, dest, arg, par->min, par->max)); }
void tweak_uint(struct cli *cli, const struct parspec *par, const char *arg) { volatile unsigned *dest; dest = par->priv; tweak_generic_uint(cli, dest, arg, (uint)par->min, (uint)par->max); }
static void tweak_thread_pool_min(struct cli *cli, const struct parspec *par, const char *arg) { (void)tweak_generic_uint(cli, &mgt_param.wthread_min, arg, (unsigned)par->min, mgt_param.wthread_max); }
static void tweak_thread_pool_max(struct cli *cli, const struct parspec *par, const char *arg) { (void)par; (void)tweak_generic_uint(cli, &mgt_param.wthread_max, arg, mgt_param.wthread_min, UINT_MAX); }
static int tweak_thread_pool_max(struct vsb *vsb, const struct parspec *par, const char *arg) { if (tweak_generic_uint(vsb, par->priv, arg, par->min, par->max)) return (-1); MCF_ParamConf(MCF_MAXIMUM, "thread_pool_min", "%u", mgt_param.wthread_max); return (0); }
static void tweak_stack_size(struct cli *cli, const struct parspec *par, const char *arg) { unsigned low, u; char buf[12]; low = sysconf(_SC_THREAD_STACK_MIN); if (arg != NULL && !strcmp(arg, "32bit")) { u = 65536; if (u < low) u = low; sprintf(buf, "%u", u); arg = buf; } (void)tweak_generic_uint(cli, &mgt_param.wthread_stacksize, arg, low, (uint)par->max); }