int runlevel_register_attrs (runlevel_t *r, attr_t *attrs) { const char *val; if (attr_add_active (attrs, "init.run-level", FLUX_ATTRFLAG_READONLY, runlevel_attr_get, NULL, r) < 0) return -1; if (attr_get (attrs, "init.mode", &val, NULL) == 0) { if (runlevel_set_mode (r, val) < 0 || attr_delete (attrs, "init.mode", true) < 0) return -1; } if (attr_add_active (attrs, "init.mode", 0, runlevel_attr_get, runlevel_attr_set, r) < 0) return -1; if (attr_get (attrs, "init.rc2_timeout", &val, NULL) == 0) { if ((fsd_parse_duration (val, &r->rc[2].timeout) < 0) || attr_delete (attrs, "init.rc2_timeout", true) < 0) return -1; } if (attr_add_active (attrs, "init.rc2_timeout", 0, runlevel_attr_get, runlevel_attr_set, r) < 0) return -1; return 0; }
int runlevel_register_attrs (runlevel_t *r, attr_t *attrs) { const char *val; if (attr_add_active (attrs, "init.run-level", FLUX_ATTRFLAG_READONLY, runlevel_attr_get, NULL, r) < 0) return -1; if (attr_get (attrs, "init.mode", &val, NULL) == 0) { if (runlevel_set_mode (r, val) < 0 || attr_delete (attrs, "init.mode", true) < 0) return -1; } if (attr_add_active (attrs, "init.mode", 0, runlevel_attr_get, runlevel_attr_set, r) < 0) return -1; return 0; }
int attr_add_active_uint32 (attr_t *attrs, const char *name, uint32_t *val, int flags) { return attr_add_active (attrs, name, flags, get_uint32, set_uint32, val); }
int attr_add_active_int (attr_t *attrs, const char *name, int *val, int flags) { return attr_add_active (attrs, name, flags, get_int, set_int, val); }