Motr  M0
source_dock.c File Reference
#include "lib/trace.h"
#include <unistd.h>
#include "lib/memory.h"
#include "fdmi/fdmi.h"
#include "fdmi/source_dock.h"
#include "fdmi/source_dock_internal.h"
#include "fdmi/service.h"
Include dependency graph for source_dock.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FDMI
 

Functions

 M0_TL_DESCR_DEFINE (fdmi_src_dock_src_list, "fdmi src list", M0_INTERNAL, struct m0_fdmi_src_ctx, fsc_linkage, fsc_magic, M0_FDMI_SRC_DOCK_SRC_CTX_MAGIC, M0_FDMI_SRC_DOCK_SRC_CTX_HEAD_MAGIC)
 
 M0_TL_DEFINE (fdmi_src_dock_src_list, M0_INTERNAL, struct m0_fdmi_src_ctx)
 
 M0_TL_DESCR_DEFINE (fdmi_record_list, "fdmi rec list", M0_INTERNAL, struct m0_fdmi_src_rec, fsr_linkage, fsr_magic, M0_FDMI_SRC_DOCK_REC_MAGIC, M0_FDMI_SRC_DOCK_REC_HEAD_MAGIC)
 
 M0_TL_DEFINE (fdmi_record_list, M0_INTERNAL, struct m0_fdmi_src_rec)
 
 M0_TL_DESCR_DEFINE (fdmi_record_inflight, "fdmi rec inflight", M0_INTERNAL, struct m0_fdmi_src_rec, fsr_linkage, fsr_magic, M0_FDMI_SRC_DOCK_REC_MAGIC, M0_FDMI_SRC_DOCK_REC_HEAD_MAGIC)
 
 M0_TL_DEFINE (fdmi_record_inflight, M0_INTERNAL, struct m0_fdmi_src_rec)
 
 M0_TL_DESCR_DEFINE (fdmi_matched_filter_list, "fdmi matched filter list", M0_INTERNAL, struct m0_conf_fdmi_filter, ff_linkage, ff_magic, M0_FDMI_SRC_DOCK_MATCHED_FILTER_MAGIC, M0_FDMI_SRC_DOCK_MATCHED_FILTER_HEAD_MAGIC)
 
 M0_TL_DEFINE (fdmi_matched_filter_list, M0_INTERNAL, struct m0_conf_fdmi_filter)
 
M0_INTERNAL void m0_fdmi_source_dock_init (struct m0_fdmi_src_dock *src_dock)
 
M0_INTERNAL void m0_fdmi_source_dock_fini (struct m0_fdmi_src_dock *src_dock)
 
M0_INTERNAL bool m0_fdmi__record_is_valid (struct m0_fdmi_src_rec *src_rec)
 
static void src_rec_free (struct m0_ref *ref)
 
M0_INTERNAL void m0_fdmi__record_init (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__record_deinit (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__rec_id_gen (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__enqueue_locked (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__enqueue (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__record_post (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL int m0_fdmi_source_alloc (enum m0_fdmi_rec_type_id type_id, struct m0_fdmi_src **src)
 
M0_INTERNAL void m0_fdmi_source_free (struct m0_fdmi_src *src)
 
M0_INTERNAL int m0_fdmi_source_register (struct m0_fdmi_src *src)
 
M0_INTERNAL void m0_fdmi_source_deregister (struct m0_fdmi_src *src)
 
M0_INTERNAL struct m0_fdmi_src_ctxm0_fdmi__src_ctx_get (enum m0_fdmi_rec_type_id src_type_id)
 
M0_INTERNAL void m0_fdmi__fs_get (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__fs_put (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__fs_begin (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__fs_end (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL enum m0_fdmi_rec_type_id m0_fdmi__sd_rec_type_id_get (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL int m0_fdmi__handle_release (struct m0_uint128 *fdmi_rec_id)
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FDMI

Definition at line 23 of file source_dock.c.

Function Documentation

◆ M0_TL_DEFINE() [1/4]

M0_TL_DEFINE ( fdmi_src_dock_src_list  ,
M0_INTERNAL  ,
struct m0_fdmi_src_ctx   
)

◆ M0_TL_DEFINE() [2/4]

M0_TL_DEFINE ( fdmi_record_list  ,
M0_INTERNAL  ,
struct m0_fdmi_src_rec   
)

◆ M0_TL_DEFINE() [3/4]

M0_TL_DEFINE ( fdmi_record_inflight  ,
M0_INTERNAL  ,
struct m0_fdmi_src_rec   
)

◆ M0_TL_DEFINE() [4/4]

M0_TL_DEFINE ( fdmi_matched_filter_list  ,
M0_INTERNAL  ,
struct m0_conf_fdmi_filter   
)

◆ M0_TL_DESCR_DEFINE() [1/4]

M0_TL_DESCR_DEFINE ( fdmi_src_dock_src_list  ,
"fdmi src list ,
M0_INTERNAL  ,
struct m0_fdmi_src_ctx  ,
fsc_linkage  ,
fsc_magic  ,
M0_FDMI_SRC_DOCK_SRC_CTX_MAGIC  ,
M0_FDMI_SRC_DOCK_SRC_CTX_HEAD_MAGIC   
)

◆ M0_TL_DESCR_DEFINE() [2/4]

M0_TL_DESCR_DEFINE ( fdmi_record_list  ,
"fdmi rec list ,
M0_INTERNAL  ,
struct m0_fdmi_src_rec  ,
fsr_linkage  ,
fsr_magic  ,
M0_FDMI_SRC_DOCK_REC_MAGIC  ,
M0_FDMI_SRC_DOCK_REC_HEAD_MAGIC   
)

◆ M0_TL_DESCR_DEFINE() [3/4]

M0_TL_DESCR_DEFINE ( fdmi_record_inflight  ,
"fdmi rec inflight ,
M0_INTERNAL  ,
struct m0_fdmi_src_rec  ,
fsr_linkage  ,
fsr_magic  ,
M0_FDMI_SRC_DOCK_REC_MAGIC  ,
M0_FDMI_SRC_DOCK_REC_HEAD_MAGIC   
)

◆ M0_TL_DESCR_DEFINE() [4/4]

M0_TL_DESCR_DEFINE ( fdmi_matched_filter_list  ,
"fdmi matched filter list ,
M0_INTERNAL  ,
struct m0_conf_fdmi_filter  ,
ff_linkage  ,
ff_magic  ,
M0_FDMI_SRC_DOCK_MATCHED_FILTER_MAGIC  ,
M0_FDMI_SRC_DOCK_MATCHED_FILTER_HEAD_MAGIC   
)

◆ src_rec_free()

static void src_rec_free ( struct m0_ref ref)
static

Inform source that fdmi record is sent to all peers, call fs_end(). Note, that this will release src_rec itself (it lives in fol_record).

Nothing about should be done below this point.

Definition at line 129 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function: