28 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 51 const struct m0_fid *path);
70 " consider increasing M0_CONF_PATH_MAX");
78 "Conf object is not ready: "FID_F,
88 glob->cg_debug_print =
false;
100 while (filled <
nr) {
105 return M0_RC(filled);
111 return M0_RC(filled);
163 if (m0_conf_dir_tlist_is_empty(&
dir->cd_items)) {
170 m0_conf_dir_tlist_head(&
dir->cd_items);
177 rc =
obj->co_ops->coo_lookup(
obj, elem, &
x);
198 const struct m0_fid *elem;
209 if (elem->
f_container != M0_CONF_ANY_FID.f_container)
226 if (!
m0_fid_eq(elem, &M0_CONF_ANY_FID)) {
251 if (glob->cg_debug_print) {
272 if (glob->cg_debug_print) {
283 # define conf_glob_step_pre(...) 284 # define conf_glob_step_post(...) 301 const struct m0_fid *path)
317 #undef M0_TRACE_SUBSYSTEM
const struct m0_conf_obj * cg_trace[M0_CONF_PATH_MAX+1]
int const char const void size_t int flags
const struct m0_conf_obj * cg_origin
M0_INTERNAL struct m0_conf_obj * m0_conf_cache_lookup(const struct m0_conf_cache *cache, const struct m0_fid *id)
#define M0_LOG(level,...)
const struct m0_conf_cache * cg_cache
m0_conf_glob_errfunc_t cg_errfunc
M0_INTERNAL void m0_conf__glob_init(struct m0_conf_glob *glob, int flags, m0_conf_glob_errfunc_t errfunc, const struct m0_conf_cache *cache, const struct m0_conf_obj *origin, const struct m0_fid *path)
struct m0_conf_cache * co_cache
M0_INTERNAL bool m0_fid_is_set(const struct m0_fid *fid)
static int conf_glob_step(struct m0_conf_glob *glob, const struct m0_conf_obj **target)
int(* m0_conf_glob_errfunc_t)(int errcode, const struct m0_conf_obj *obj, const struct m0_fid *path)
#define conf_glob_step_post(...)
return M0_ERR(-EOPNOTSUPP)
#define conf_glob_step_pre(...)
M0_INTERNAL char * m0_conf_glob_error(const struct m0_conf_glob *glob, char *buf, size_t buflen)
static int errfunc(int errcode, const struct m0_conf_obj *obj, const struct m0_fid *path)
M0_INTERNAL bool m0_conf_cache_is_locked(const struct m0_conf_cache *cache)
static void conf_glob_turn(struct m0_conf_glob *glob)
#define M0_CONF_CAST(ptr, type)
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
const struct m0_conf_obj * cg_errobj
static int conf_glob_err(struct m0_conf_glob *glob, int errcode, const struct m0_conf_obj *obj, const struct m0_fid *path)
const struct m0_fid M0_CONF_ROOT_FID
#define IS_IN_ARRAY(idx, array)
enum m0_conf_status co_status
M0_INTERNAL int m0_conf_glob(struct m0_conf_glob *glob, uint32_t nr, const struct m0_conf_obj **objv)
#define M0_ASSERT_INFO(cond, fmt,...)
static int conf_glob_down(struct m0_conf_glob *glob, const struct m0_conf_obj **target)
struct m0_fid cg_path[M0_CONF_PATH_MAX+1]
const struct m0_fid * cg_errpath
static int conf_glob_up(struct m0_conf_glob *glob)
M0_INTERNAL char * m0_vsnprintf(char *buf, size_t buflen, const char *format,...)