Motr  M0
ag.h File Reference
#include "lib/atomic.h"
#include "lib/types.h"
#include "lib/types_xc.h"
#include "lib/tlist.h"
#include "lib/mutex.h"
#include "lib/refs.h"
#include "sm/sm.h"
Include dependency graph for ag.h:

Go to the source code of this file.

Data Structures

struct  m0_cm_ag_id
 
struct  m0_cm_aggr_group
 
struct  m0_cm_aggr_group_ops
 

Macros

#define __MOTR_CM_AG_H__
 
#define M0_AG_F   U128X_F "::" U128X_F
 
#define M0_AG_P(ag)   U128_P(&((ag)->ai_hi)), U128_P(&((ag)->ai_lo))
 
#define ID_LOG(prefix, id)   M0_LOG(M0_DEBUG, prefix "=["M0_AG_F"]", M0_AG_P(id))
 
#define ID_INCOMING_LOG(prefix, id, has_incoming)
 
#define GRP_END_MARK_ID
 

Functions

struct m0_cm_ag_id M0_XCA_DOMAIN (rpc)
 
M0_INTERNAL void m0_cm_aggr_group_init (struct m0_cm_aggr_group *ag, struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming, const struct m0_cm_aggr_group_ops *ag_ops)
 
M0_INTERNAL void m0_cm_aggr_group_fini (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_cm_aggr_group_fini_and_progress (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL int m0_cm_ag_id_cmp (const struct m0_cm_ag_id *id0, const struct m0_cm_ag_id *id1)
 
M0_INTERNAL void m0_cm_ag_id_copy (struct m0_cm_ag_id *dst, const struct m0_cm_ag_id *src)
 
M0_INTERNAL bool m0_cm_ag_id_is_set (const struct m0_cm_ag_id *id)
 
M0_INTERNAL struct m0_cm_aggr_groupm0_cm_aggr_group_locate (struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming)
 
M0_INTERNAL int m0_cm_aggr_group_alloc (struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming, struct m0_cm_aggr_group **out)
 
M0_INTERNAL void m0_cm_aggr_group_add (struct m0_cm *cm, struct m0_cm_aggr_group *ag, bool has_incoming)
 
M0_INTERNAL struct m0_cm_aggr_groupm0_cm_ag_in_hi (const struct m0_cm *cm)
 
M0_INTERNAL struct m0_cm_aggr_groupm0_cm_ag_in_lo (const struct m0_cm *cm)
 
M0_INTERNAL struct m0_cm_aggr_groupm0_cm_ag_out_hi (const struct m0_cm *cm)
 
M0_INTERNAL struct m0_cm_aggr_groupm0_cm_ag_out_lo (const struct m0_cm *cm)
 
M0_INTERNAL void m0_cm_ag_in_interval (const struct m0_cm *cm, struct m0_cm_sw *in_interval)
 
M0_INTERNAL void m0_cm_ag_out_interval (const struct m0_cm *cm, struct m0_cm_sw *out_interval)
 
M0_INTERNAL int m0_cm_ag_advance (struct m0_cm *cm)
 
M0_INTERNAL bool m0_cm_aggr_group_tlists_are_empty (struct m0_cm *cm)
 
M0_INTERNAL void m0_cm_ag_lock (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_cm_ag_unlock (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL bool m0_cm_ag_is_locked (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_cm_ag_get (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_cm_ag_put (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_cm_ag_cp_add_locked (struct m0_cm_aggr_group *ag, struct m0_cm_cp *cp)
 
M0_INTERNAL void m0_cm_ag_cp_add (struct m0_cm_aggr_group *ag, struct m0_cm_cp *cp)
 
M0_INTERNAL void m0_cm_ag_cp_del (struct m0_cm_aggr_group *ag, struct m0_cm_cp *cp)
 
M0_INTERNAL bool m0_cm_ag_has_pending_cps (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_cm_ag_fini_post (struct m0_cm_aggr_group *ag)
 
M0_INTERNAL bool m0_cm_ag_can_fini (struct m0_cm_aggr_group *ag)
 
 M0_TL_DESCR_DECLARE (aggr_grps_in, M0_EXTERN)
 
 M0_TL_DECLARE (aggr_grps_in, M0_INTERNAL, struct m0_cm_aggr_group)
 
 M0_TL_DESCR_DECLARE (aggr_grps_out, M0_EXTERN)
 
 M0_TL_DECLARE (aggr_grps_out, M0_INTERNAL, struct m0_cm_aggr_group)
 

Variables

struct m0_uint128 ai_hi
 
struct m0_uint128 ai_lo
 
struct m0_cm_aggr_group M0_XCA_DOMAIN
 
struct m0_bob_type aggr_grps_bob
 

Macro Definition Documentation

◆ __MOTR_CM_AG_H__

#define __MOTR_CM_AG_H__

Definition at line 26 of file ag.h.

Variable Documentation

◆ ai_hi

struct m0_uint128 ai_hi

Definition at line 539 of file ag.h.

◆ ai_lo

struct m0_uint128 ai_lo

Definition at line 540 of file ag.h.