Motr  M0
epoch.c File Reference
#include "lib/misc.h"
#include "lib/trace.h"
#include "lib/errno.h"
#include "lib/memory.h"
#include "module/instance.h"
#include "motr/magic.h"
#include "rpc/rpc_machine.h"
#include "rpc/item.h"
#include "reqh/reqh.h"
#include "ha/epoch.h"
Include dependency graph for epoch.c:

Go to the source code of this file.

Data Structures

struct  ha_client
 
struct  ha_global
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_OTHER
 

Functions

 M0_TL_DESCR_DEFINE (hg_client, "ha global clients list", static, struct ha_client, hc_link, hc_magic, M0_HA_CLIENT_MAGIC, M0_HA_CLIENT_HEAD_MAGIC)
 
 M0_TL_DEFINE (hg_client, static, struct ha_client)
 
 M0_TL_DESCR_DEFINE (ham, "ha epoch monitor", static, struct m0_ha_epoch_monitor, hem_linkage, hem_magix, M0_HA_EPOCH_MONITOR_MAGIC, M0_HA_DOMAIN_MAGIC)
 
 M0_TL_DEFINE (ham, static, struct m0_ha_epoch_monitor)
 
static int default_mon_future (struct m0_ha_epoch_monitor *self, uint64_t epoch, const struct m0_rpc_item *item)
 
M0_INTERNAL void m0_ha_domain_init (struct m0_ha_domain *dom, uint64_t epoch)
 
M0_INTERNAL void m0_ha_domain_fini (struct m0_ha_domain *dom)
 
M0_INTERNAL void m0_ha_domain_monitor_add (struct m0_ha_domain *dom, struct m0_ha_epoch_monitor *mon)
 
M0_INTERNAL void m0_ha_domain_monitor_del (struct m0_ha_domain *dom, struct m0_ha_epoch_monitor *mon)
 
M0_INTERNAL uint64_t m0_ha_domain_get_read (struct m0_ha_domain *dom)
 
M0_INTERNAL void m0_ha_domain_put_read (struct m0_ha_domain *dom)
 
M0_INTERNAL uint64_t m0_ha_domain_get_write (struct m0_ha_domain *dom)
 
M0_INTERNAL void m0_ha_domain_put_write (struct m0_ha_domain *dom, uint64_t epoch)
 
M0_INTERNAL int m0_ha_global_init (void)
 
M0_INTERNAL void m0_ha_global_fini (void)
 
static void ha_global_lock (struct ha_global *hg)
 
static void ha_global_unlock (struct ha_global *hg)
 
static void ha_client_release (struct m0_ref *ref)
 
M0_INTERNAL int m0_ha_client_add (struct m0_confc *confc)
 
M0_INTERNAL int m0_ha_client_del (struct m0_confc *confc)
 
M0_INTERNAL void m0_ha_clients_iterate (m0_ha_client_cb_t iter, const void *data, uint64_t data2)
 
M0_INTERNAL int m0_ha_epoch_check (const struct m0_rpc_item *item)
 

Variables

M0_INTERNAL const uint64_t M0_HA_EPOCH_NONE = 0ULL