Motr  M0
fop.c File Reference
#include "lib/trace.h"
#include "lib/memory.h"
#include "lib/misc.h"
#include "lib/errno.h"
#include "motr/magic.h"
#include "rpc/rpc_machine.h"
#include "rpc/addb2.h"
#include "fop/fop.h"
#include "fop/fop_xc.h"
#include "fop/fom.h"
#include "fop/fom_generic.h"
#include "fop/fom_generic_xc.h"
#include "fop/fom_long_lock.h"
#include "addb2/identifier.h"
#include "reqh/reqh.h"
Include dependency graph for fop.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FOP
 

Functions

 M0_TL_DESCR_DEFINE (ft, "fop types", static, struct m0_fop_type, ft_linkage, ft_magix, M0_FOP_TYPE_MAGIC, M0_FOP_TYPE_HEAD_MAGIC)
 
 M0_TL_DEFINE (ft, static, struct m0_fop_type)
 
M0_INTERNAL const char * m0_fop_name (const struct m0_fop *fop)
 
static size_t fop_data_size (const struct m0_fop *fop)
 
M0_INTERNAL bool m0_fop_rpc_is_locked (struct m0_fop *fop)
 
M0_INTERNAL int m0_fop_data_alloc (struct m0_fop *fop)
 
M0_INTERNAL void m0_fop_init (struct m0_fop *fop, struct m0_fop_type *fopt, void *data, void(*fop_release)(struct m0_ref *))
 
struct m0_fopm0_fop_alloc (struct m0_fop_type *fopt, void *data, struct m0_rpc_machine *mach)
 
struct m0_fopm0_fop_alloc_at (struct m0_rpc_session *sess, struct m0_fop_type *fopt)
 
struct m0_fopm0_fop_reply_alloc (struct m0_fop *req, struct m0_fop_type *rept)
 
M0_INTERNAL void m0_fop_fini (struct m0_fop *fop)
 
M0_INTERNAL void m0_fop_release (struct m0_ref *ref)
 
struct m0_fopm0_fop_get (struct m0_fop *fop)
 
void m0_fop_put (struct m0_fop *fop)
 
void m0_fop_put0 (struct m0_fop *fop)
 
void m0_fop_put_lock (struct m0_fop *fop)
 
void m0_fop_put0_lock (struct m0_fop *fop)
 
void * m0_fop_data (const struct m0_fop *fop)
 
uint32_t m0_fop_opcode (const struct m0_fop *fop)
 
void m0_fop_type_fini (struct m0_fop_type *fopt)
 
void m0_fop_type_init (struct m0_fop_type *ft, const struct __m0_fop_type_init_args *args)
 
M0_INTERNAL void m0_fop_type_init_nr (const struct m0_fop_type_batch *batch)
 
M0_INTERNAL void m0_fop_type_fini_nr (const struct m0_fop_type_batch *batch)
 
M0_INTERNAL struct m0_fop_typem0_fop_type_next (struct m0_fop_type *ftype)
 
 M0_FOL_FRAG_TYPE_DECLARE (m0_fop_fol_frag,, NULL, NULL, NULL, NULL)
 
M0_INTERNAL int m0_fops_init (void)
 
M0_INTERNAL void m0_fops_fini (void)
 
struct m0_rpc_itemm0_fop_to_rpc_item (const struct m0_fop *fop)
 
struct m0_fopm0_rpc_item_to_fop (const struct m0_rpc_item *item)
 
void m0_fop_rpc_machine_set (struct m0_fop *fop, struct m0_rpc_machine *mach)
 
struct m0_rpc_machinem0_fop_rpc_machine (const struct m0_fop *fop)
 
M0_INTERNAL struct m0_fop_typem0_item_type_to_fop_type (const struct m0_rpc_item_type *item_type)
 
M0_INTERNAL int m0_fop_encdec (struct m0_fop *fop, struct m0_bufvec_cursor *cur, enum m0_xcode_what what)
 
M0_INTERNAL struct m0_fop_typem0_fop_type_find (uint32_t opcode)
 
static int fop_xc_type (uint32_t opcode, const struct m0_xcode_type **out)
 
M0_INTERNAL int m0_fop_xc_type (const struct m0_xcode_obj *par, const struct m0_xcode_type **out)
 
M0_INTERNAL int m0_fop_rep_xc_type (const struct m0_xcode_obj *par, const struct m0_xcode_type **out)
 
M0_INTERNAL int m0_fop_fol_add (struct m0_fop *fop, struct m0_fop *rep, struct m0_dtx *dtx)
 
struct m0_rpc_machinem0_fop_session_machine (const struct m0_rpc_session *s)
 
int m0_fop_type_addb2_instrument (struct m0_fop_type *type)
 
struct m0_net_transfer_mcm0_fop_tm_get (const struct m0_fop *fop)
 
struct m0_net_domainm0_fop_domain_get (const struct m0_fop *fop)
 
void m0_fop_type_addb2_deinstrument (struct m0_fop_type *type)
 

Variables

static struct m0_mutex fop_types_lock
 
static struct m0_tl fop_types_list
 
M0_EXTERN struct m0_sm_conf fom_states_conf
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FOP

Definition at line 23 of file fop.c.