32 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_HA 153 .
ml_name =
"HA_DISPATCHER_LEVEL_TLIST",
158 .ml_name =
"HA_DISPATCHER_LEVEL_NOTE_HANDLER_ALLOC",
163 .ml_name =
"HA_DISPATCHER_LEVEL_NOTE_HANDLER_INIT",
168 .ml_name =
"HA_DISPATCHER_LEVEL_FVEC_HANDLER_ALLOC",
173 .ml_name =
"HA_DISPATCHER_LEVEL_FVEC_HANDLER_INIT",
178 .ml_name =
"HA_DISPATCHER_LEVEL_KEEPALIVE_HANDLER_ALLOC",
183 .ml_name =
"HA_DISPATCHER_LEVEL_KEEPALIVE_HANDLER_INIT",
188 .ml_name =
"HA_DISPATCHER_LEVEL_READY",
222 ha_dispatcher_handlers_tlink_init_at_tail(hh, &hd->
hds_handlers);
228 ha_dispatcher_handlers_tlink_del_fini(hh);
244 #undef M0_TRACE_SUBSYSTEM struct m0_tl hds_handlers
static int ha_dispatcher_level_enter(struct m0_module *module)
static uint64_t tag(uint8_t code, uint64_t id)
enum m0_trace_level level
void(* hh_msg_received_cb)(struct m0_ha_handler *hh, struct m0_ha *ha, struct m0_ha_link *hl, struct m0_ha_msg *msg, uint64_t tag, void *data)
M0_INTERNAL void m0_ha_note_handler_fini(struct m0_ha_note_handler *hnh)
M0_INTERNAL int m0_ha_keepalive_handler_init(struct m0_ha_keepalive_handler *ka, struct m0_ha_dispatcher *hd)
M0_INTERNAL struct m0 * m0_get(void)
#define container_of(ptr, type, member)
M0_TL_DESCR_DEFINE(ha_dispatcher_handlers, "m0_ha_dispatcher::hds_handlers", static, struct m0_ha_handler, hh_link, hh_magic, 21, 22)
M0_INTERNAL void m0_ha_dispatcher_handle(struct m0_ha_dispatcher *hd, struct m0_ha *ha, struct m0_ha_link *hl, struct m0_ha_msg *msg, uint64_t tag)
M0_INTERNAL int m0_ha_note_handler_init(struct m0_ha_note_handler *hnh, struct m0_ha_dispatcher *hd)
return M0_ERR(-EOPNOTSUPP)
struct m0_ha_keepalive_handler * hds_keepalive_handler
struct m0_module hds_module
M0_INTERNAL void m0_module_setup(struct m0_module *module, const char *name, const struct m0_modlev *level, int level_nr, struct m0 *instance)
struct m0_ha_dispatcher_cfg hds_cfg
M0_INTERNAL void m0_ha_dispatcher_fini(struct m0_ha_dispatcher *hd)
M0_INTERNAL void m0_ha_dispatcher_attach(struct m0_ha_dispatcher *hd, struct m0_ha_handler *hh)
static void ha_dispatcher_level_leave(struct m0_module *module)
M0_INTERNAL int m0_ha_dispatcher_init(struct m0_ha_dispatcher *hd, struct m0_ha_dispatcher_cfg *hd_cfg)
bool hdc_enable_keepalive
static const struct m0_modlev ha_dispatcher_levels[]
M0_INTERNAL void m0_ha_dispatcher_detach(struct m0_ha_dispatcher *hd, struct m0_ha_handler *hh)
#define M0_ALLOC_PTR(ptr)
M0_TL_DEFINE(ha_dispatcher_handlers, static, struct m0_ha_handler)
struct m0_ha_fvec_handler * hds_fvec_handler
M0_INTERNAL int m0_ha_fvec_handler_init(struct m0_ha_fvec_handler *hfh, struct m0_ha_dispatcher *hd)
#define m0_tl_for(name, head, obj)
struct m0_ha_note_handler * hds_note_handler
M0_INTERNAL void m0_ha_keepalive_handler_fini(struct m0_ha_keepalive_handler *ka)
M0_INTERNAL void m0_ha_fvec_handler_fini(struct m0_ha_fvec_handler *hfh)
M0_INTERNAL void m0_module_fini(struct m0_module *module, int level)
M0_INTERNAL int m0_module_init(struct m0_module *module, int level)
#define M0_IMPOSSIBLE(fmt,...)