Motr  M0
formation2.c File Reference
#include "lib/trace.h"
#include "lib/misc.h"
#include "lib/memory.h"
#include "lib/tlist.h"
#include "motr/magic.h"
#include "lib/finject.h"
#include "reqh/reqh.h"
#include "rpc/rpc_internal.h"
Include dependency graph for formation2.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FORMATION
 
#define frm_first_itemq(frm)   (&(frm)->f_itemq[0])
 
#define frm_end_itemq(frm)   (&(frm)->f_itemq[ARRAY_SIZE((frm)->f_itemq)])
 
#define for_each_itemq_in_frm(itemq, frm)
 

Functions

static bool itemq_invariant (const struct m0_tl *q)
 
static m0_bcount_t itemq_nr_bytes_acc (const struct m0_tl *q)
 
static enum m0_rpc_frm_itemq_type frm_which_qtype (struct m0_rpc_frm *frm, const struct m0_rpc_item *item)
 
static bool frm_is_idle (const struct m0_rpc_frm *frm)
 
static void frm_insert (struct m0_rpc_frm *frm, struct m0_rpc_item *item)
 
static void frm_remove (struct m0_rpc_frm *frm, struct m0_rpc_item *item)
 
static void __itemq_insert (struct m0_tl *q, struct m0_rpc_item *new_item)
 
static void __itemq_remove (struct m0_rpc_item *item)
 
static void frm_balance (struct m0_rpc_frm *frm)
 
static bool frm_is_ready (const struct m0_rpc_frm *frm)
 
static void frm_fill_packet (struct m0_rpc_frm *frm, struct m0_rpc_packet *p)
 
static void frm_fill_packet_from_item_sources (struct m0_rpc_frm *frm, struct m0_rpc_packet *p)
 
static int frm_packet_ready (struct m0_rpc_frm *frm, struct m0_rpc_packet *p)
 
static void frm_try_merging_item (struct m0_rpc_frm *frm, struct m0_rpc_item *item, m0_bcount_t limit)
 
static bool item_less_or_equal (const struct m0_rpc_item *i0, const struct m0_rpc_item *i1)
 
static void item_move_to_urgent_queue (struct m0_rpc_frm *frm, struct m0_rpc_item *item)
 
static m0_bcount_t available_space_in_packet (const struct m0_rpc_packet *p, const struct m0_rpc_frm *frm)
 
static bool item_will_exceed_packet_size (struct m0_rpc_item *item, const struct m0_rpc_packet *p, const struct m0_rpc_frm *frm)
 
static bool item_supports_merging (const struct m0_rpc_item *item)
 
static void drop_all_items (struct m0_rpc_frm *frm)
 
static bool constraints_are_valid (const struct m0_rpc_frm_constraints *constraints)
 
 M0_BASSERT (ARRAY_SIZE(str_qtype)==FRMQ_NR_QUEUES)
 
 M0_TL_DESCR_DEFINE (itemq, "rpc_itemq", M0_INTERNAL, struct m0_rpc_item, ri_iq_link, ri_magic, M0_RPC_ITEM_MAGIC, M0_RPC_ITEMQ_HEAD_MAGIC)
 
 M0_TL_DEFINE (itemq, M0_INTERNAL, struct m0_rpc_item)
 
static bool frm_invariant (const struct m0_rpc_frm *frm)
 
M0_INTERNAL struct m0_rpc_chanfrm_rchan (const struct m0_rpc_frm *frm)
 
M0_INTERNAL struct m0_rpc_machinefrm_rmachine (const struct m0_rpc_frm *frm)
 
static bool frm_rmachine_is_locked (const struct m0_rpc_frm *frm)
 
M0_INTERNAL void m0_rpc_frm_constraints_get_defaults (struct m0_rpc_frm_constraints *c)
 
M0_INTERNAL void m0_rpc_frm_init (struct m0_rpc_frm *frm, struct m0_rpc_frm_constraints *constraints, const struct m0_rpc_frm_ops *ops)
 
M0_INTERNAL void m0_rpc_frm_fini (struct m0_rpc_frm *frm)
 
M0_INTERNAL void m0_rpc_frm_enq_item (struct m0_rpc_frm *frm, struct m0_rpc_item *item)
 
M0_INTERNAL bool item_is_in_waiting_queue (const struct m0_rpc_item *item, const struct m0_rpc_frm *frm)
 
M0_INTERNAL void m0_rpc_frm_item_deadline_passed (struct m0_rpc_frm *frm, struct m0_rpc_item *item)
 
M0_INTERNAL void m0_rpc_frm_remove_item (struct m0_rpc_frm *frm, struct m0_rpc_item *item)
 
M0_INTERNAL void m0_rpc_frm_run_formation (struct m0_rpc_frm *frm)
 
M0_INTERNAL void m0_rpc_frm_packet_done (struct m0_rpc_packet *p)
 
M0_INTERNAL struct m0_rpc_frmsession_frm (const struct m0_rpc_session *s)
 

Variables

static const char * str_qtype []
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FORMATION

Definition at line 23 of file formation2.c.