|
static int | conf_glob_step (struct m0_conf_glob *glob, const struct m0_conf_obj **target) |
|
static int | conf_glob_err (struct m0_conf_glob *glob, int errcode, const struct m0_conf_obj *obj, const struct m0_fid *path) |
|
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) |
|
M0_INTERNAL int | m0_conf_glob (struct m0_conf_glob *glob, uint32_t nr, const struct m0_conf_obj **objv) |
|
M0_INTERNAL char * | m0_conf_glob_error (const struct m0_conf_glob *glob, char *buf, size_t buflen) |
|
static void | conf_glob_turn (struct m0_conf_glob *glob) |
|
static int | conf_glob_down (struct m0_conf_glob *glob, const struct m0_conf_obj **target) |
|
static int | conf_glob_up (struct m0_conf_glob *glob) |
|
m0_conf_glob() traverses a DAG of M0_CS_READY configuration objects and stores addresses of target objects, which given path leads to, in a preallocated array.
Example:
static int
{
M0_CONF_ROOT_NODES_FID, M0_CONF_ANY_FID,
M0_CONF_NODE_PROCESSES_FID, M0_CONF_ANY_FID,
M0_CONF_PROCESS_SERVICES_FID, M0_CONF_ANY_FID);
}
}
◆ conf_glob_step_post
#define conf_glob_step_post |
( |
|
... | ) |
|
◆ conf_glob_step_pre
#define conf_glob_step_pre |
( |
|
... | ) |
|
◆ m0_conf_glob_init
Value:
int const char const void size_t int flags
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)
static int errfunc(int errcode, const struct m0_conf_obj *obj, const struct m0_fid *path)
Initialises ‘glob’.
If ‘origin’ is NULL, the root object (m0_conf_root) is implied. If ‘cache’ is NULL, origin->co_cache is used.
- Precondition
- cache != NULL || origin != NULL
-
ergo(origin != NULL && cache != NULL, origin->co_cache == cache)
-
m0_conf_cache_is_locked(cache ?: origin->co_cache)
Definition at line 142 of file glob.h.
◆ M0_TRACE_SUBSYSTEM
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF |
◆ m0_conf_glob_errfunc_t
typedef int(* m0_conf_glob_errfunc_t) (int errcode, const struct m0_conf_obj *obj, const struct m0_fid *path) |
◆ anonymous enum
Bits set in the ‘flags’ argument to m0_conf_glob_init().
Enumerator |
---|
M0_CONF_GLOB_ERR | Return on conf DAG traversal errors.
|
Definition at line 67 of file glob.h.
◆ conf_glob_res
◆ conf_glob_down()
◆ conf_glob_err()
◆ conf_glob_step()
◆ conf_glob_turn()
◆ conf_glob_up()
◆ m0_conf__glob_init()
◆ m0_conf_glob()
Finds configuration objects that a path leads to.
m0_conf_glob() traverses a DAG of M0_CS_READY conf objects and stores addresses of path target objects in ‘objv’ array.
- Parameters
-
glob | Conf DAG traversal context. |
nr | Output array capacity. |
objv | Output array. |
- Returns
- +N The number of target objects stored in ‘objv’. 0 DAG traversal has completed. -EPERM Conf object is not ready. -ENOENT Unreachable path.
- Precondition
- m0_conf_cache_is_locked(glob->cg_cache)
- Postcondition
- ergo(retval > 0, retval <= nr)
- See also
- m0_conf_glob_error()
Definition at line 92 of file glob.c.
◆ m0_conf_glob_error()
M0_INTERNAL char * m0_conf_glob_error |
( |
const struct m0_conf_glob * |
glob, |
|
|
char * |
buf, |
|
|
size_t |
buflen |
|
) |
| |
Returns string describing the most recent m0_conf_glob() error. Puts error description into ‘buf’.
- Precondition
- glob->cg_errcode < 0
-
buf != NULL && buflen > 0
Definition at line 115 of file glob.c.
◆ M0_XCA_DOMAIN