Motr  M0
session.c File Reference
#include "lib/trace.h"
#include "lib/errno.h"
#include "lib/memory.h"
#include "lib/misc.h"
#include "lib/bitstring.h"
#include "lib/uuid.h"
#include "motr/magic.h"
#include "fop/fop.h"
#include "lib/arith.h"
#include "lib/finject.h"
#include "rpc/rpc_internal.h"
Include dependency graph for session.c:

Go to the source code of this file.

Data Structures

struct  fop_session_establish_ctx
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_RPC
 
#define S_CASE(x)   case x: return #x
 

Functions

static void __session_fini (struct m0_rpc_session *session)
 
static void session_failed (struct m0_rpc_session *session, int32_t error)
 
static void session_idle_x_busy (struct m0_rpc_session *session)
 
static void session_establish_fop_release (struct m0_ref *ref)
 
 M0_TL_DESCR_DEFINE (rpc_session, "rpc-sessions", M0_INTERNAL, struct m0_rpc_session, s_link, s_magic, M0_RPC_SESSION_MAGIC, M0_RPC_SESSION_HEAD_MAGIC)
 
 M0_TL_DEFINE (rpc_session, M0_INTERNAL, struct m0_rpc_session)
 
M0_INTERNAL void session_state_set (struct m0_rpc_session *session, int state)
 
M0_INTERNAL int session_state (const struct m0_rpc_session *session)
 
M0_INTERNAL struct m0_rpc_machinesession_machine (const struct m0_rpc_session *s)
 
M0_INTERNAL bool m0_rpc_session_invariant (const struct m0_rpc_session *session)
 
M0_INTERNAL bool m0_rpc_session_is_idle (const struct m0_rpc_session *session)
 
M0_INTERNAL int m0_rpc_session_init (struct m0_rpc_session *session, struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_session_init_locked (struct m0_rpc_session *session, struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_session_reset (struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_fini (struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_fini_locked (struct m0_rpc_session *session)
 
M0_INTERNAL int m0_rpc_session_timedwait (struct m0_rpc_session *session, uint64_t states, const m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_session_create (struct m0_rpc_session *session, struct m0_rpc_conn *conn, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_session_establish_sync (struct m0_rpc_session *session, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_session_establish (struct m0_rpc_session *session, m0_time_t abs_timeout)
 
M0_INTERNAL void m0_rpc_session_establish_reply_received (struct m0_rpc_item *item)
 
int m0_rpc_session_destroy (struct m0_rpc_session *session, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_session_validate (struct m0_rpc_session *session)
 
M0_INTERNAL int m0_rpc_session_terminate_sync (struct m0_rpc_session *session, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_session_terminate (struct m0_rpc_session *session, m0_time_t abs_timeout)
 
M0_INTERNAL void m0_rpc_session_terminate_reply_received (struct m0_rpc_item *item)
 
M0_INTERNAL m0_bcount_t m0_rpc_session_get_max_item_size (const struct m0_rpc_session *session)
 
M0_INTERNAL m0_bcount_t m0_rpc_session_get_max_item_payload_size (const struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_hold_busy (struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_release (struct m0_rpc_session *session)
 
M0_INTERNAL int m0_rpc_rcv_session_terminate (struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_quiesce (struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_cancel (struct m0_rpc_session *session)
 
M0_INTERNAL bool m0_rpc_session_is_cancelled (struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_session_item_failed (struct m0_rpc_item *item)
 
M0_INTERNAL const char * m0_rpc_session_state_to_str (enum m0_rpc_session_state state)
 

Variables

static const struct m0_rpc_item_ops session_establish_item_ops
 
static const struct m0_rpc_item_ops session_terminate_item_ops
 
static struct m0_sm_state_descr session_states []
 
static const struct m0_sm_conf session_conf
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_RPC

Definition at line 24 of file session.c.

◆ S_CASE

#define S_CASE (   x)    case x: return #x