40 M0_INTERNAL
struct m0_xcode_cursor_frame *
44 return &
it->xcu_stack[
it->xcu_depth];
50 if (
it->xcu_depth > 0) {
51 const struct m0_xcode_cursor_frame *pre =
53 return &pre->s_obj.xo_type->xct_child[pre->s_fieldno];
61 struct m0_xcode_cursor_frame *
top;
62 struct m0_xcode_cursor_frame *
next;
69 xt =
top->s_obj.xo_type;
74 switch (
top->s_flag) {
85 if (
top->s_fieldno == 0) {
98 if (
top->s_fieldno != 0) {
102 while (++
top->s_fieldno <
nr &&
114 if (
top->s_fieldno <
nr) {
136 if (--
it->xcu_depth < 0)
M0_INTERNAL struct m0_xcode_cursor_frame * m0_xcode_cursor_top(struct m0_xcode_cursor *it)
M0_INTERNAL int m0_xcode_subobj(struct m0_xcode_obj *subobj, const struct m0_xcode_obj *obj, int fieldno, uint64_t elno)
static struct m0_be_emap_cursor it
struct m0_xcode_field xct_child[0]
static struct m0_xcode_type ** xt[]
M0_INTERNAL uint64_t m0_xcode_tag(const struct m0_xcode_obj *obj)
M0_INTERNAL int m0_xcode_next(struct m0_xcode_cursor *it)
bool m0_xcode_type_invariant(const struct m0_xcode_type *xt)
#define M0_ASSERT_INFO_EX(cond, fmt,...)
M0_INTERNAL void m0_xcode_cursor_init(struct m0_xcode_cursor *it, const struct m0_xcode_obj *obj)
enum m0_xcode_aggr xct_aggr
#define IS_IN_ARRAY(idx, array)
M0_INTERNAL void m0_xcode_skip(struct m0_xcode_cursor *it)
M0_INTERNAL const struct m0_xcode_field * m0_xcode_cursor_field(const struct m0_xcode_cursor *it)
#define M0_IMPOSSIBLE(fmt,...)