34 #include "graph/graph_xc.h" 149 vtype(vertice)->vt_arc[
i])));
190 return arc_try(vertice, atype);
M0_INTERNAL void * m0_xcode_addr(const struct m0_xcode_obj *obj, int fileno, uint64_t elno)
const struct m0_xcode_type * xf_type
void m0_gvertice_fini(struct m0_graph *g, struct m0_gvertice *vertice)
static bool has_arc(const struct m0_gvertice *vertice, const struct m0_garc_type *atype)
struct m0_xcode_field xct_child[0]
static struct m0_garc * arc_get(const struct m0_gvertice *src, const struct m0_garc_type *atype)
#define m0_exists(var, nr,...)
M0_INTERNAL void m0_graph_mod_fini(void)
void m0_gvertice_type_register(struct m0_gvertice_type *vt)
static void graph_del(struct m0_graph *g, struct m0_gvertice *vertice)
static struct m0_xcode_type ** xt[]
M0_INTERNAL bool m0_fid_is_set(const struct m0_fid *fid)
const struct m0_garc_type * vt_arc[M0_GRAPH_ARC_PER_NODE_MAX]
static struct m0_garc_type GRAPH_PREV
bool m0_gvertice_is_set(const struct m0_gvertice *vertice, const struct m0_garc_type *atype)
bool m0_gvertice_type_invariant(const struct m0_gvertice_type *vt)
M0_INTERNAL int m0_graph_mod_init(void)
void m0_gvertice_init(struct m0_graph *g, struct m0_gvertice *vertice, const struct m0_gvertice_type *vt, const struct m0_fid *fid)
static struct m0_garc_type GRAPH_NEXT
bool m0_garc_type_invariant(const struct m0_gvertice_type *vt, const struct m0_garc_type *atype)
#define m0_cookie_of(cookie, type, field)
const struct m0_xcode_type * vt_xt
M0_INTERNAL void m0_cookie_init(struct m0_cookie *cookie, const uint64_t *obj)
void m0_gvertice_unlink(struct m0_gvertice *src, struct m0_gvertice *dst, const struct m0_garc_type *atype)
bool m0_gvertice_linked(const struct m0_gvertice *src, const struct m0_gvertice *dst, const struct m0_garc_type *atype)
static const struct m0_gvertice_type * vtype(const struct m0_gvertice *src)
void m0_garc_type_register(const struct m0_garc_type *atype)
struct m0_gvertice * m0_garc_try(const struct m0_gvertice *vertice, const struct m0_garc_type *atype)
struct m0_cookie as_local
static void vertice_init(struct m0_gvertice *vertice, const struct m0_gvertice_type *vt, const struct m0_fid *fid)
void m0_gvertice_link(struct m0_gvertice *src, struct m0_gvertice *dst, const struct m0_garc_type *atype)
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
#define m0_forall(var, nr,...)
enum m0_xcode_aggr xct_aggr
void m0_garc_type_pair_register(struct m0_garc_type *direct, struct m0_garc_type *reverse)
const struct m0_garc_type * at_reverse
void m0_garc_type_add(struct m0_gvertice_type *vt, const struct m0_garc_type *atype)
M0_INTERNAL void m0_cookie_new(uint64_t *gen)
#define IS_IN_ARRAY(idx, array)
#define M0_XCODE_OBJ(type, ptr)
static void graph_add(struct m0_graph *g, struct m0_gvertice *vertice)
bool m0_gvertice_invariant(const struct m0_gvertice *vertice)
static const struct m0_gvertice_type * vtypes[VTYPE_MAX]
static struct m0_gvertice * arc_try(const struct m0_gvertice *vertice, const struct m0_garc_type *atype)
static struct gen g[MAX_GEN]
struct m0_pdclust_src_addr src
bool m0_graph_invariant(const struct m0_graph *graph)
int m0_garc_follow(const struct m0_gvertice *vertice, const struct m0_garc_type *atype,...)
static int tail(struct m0_sm *mach)
#define M0_IMPOSSIBLE(fmt,...)