29 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CLIENT 62 uint32_t new_gen_id = 0;
71 while (--retry_count) {
93 "Large clock skew Detected: old=0x%X new=0x%X.",
99 if (new_gen_id <= gr->ufg_ufid_cur.uf_gen_id) {
101 "Clock reset/skew detected: old=0x%X new=0x%X." 112 if (retry_count == 0)
150 return M0_ERR(-EOVERFLOW);
198 "Failed to refresh generation ID, rc=%d",
rc);
214 uint64_t id_hi_reserved;
236 id_hi |= id_hi_reserved;
299 uint32_t nr_ids, uint32_t nr_skip_ids,
345 #undef M0_TRACE_SUBSYSTEM
#define M0_UFID_HI_RESERVED
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
static void ufid_salt_refresh(struct m0_ufid_generator *gr)
#define M0_LOG(level,...)
int m0_ufid_init(struct m0_client *m0c, struct m0_ufid_generator *gr)
void m0_process_fid(const struct m0_client *m0c, struct m0_fid *proc_fid)
#define M0_UFID_PROCID_MAX
static struct m0_clovis * m0c
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
m0_time_t m0_time(uint64_t secs, long ns)
void m0_ufid_fini(struct m0_ufid_generator *gr)
#define M0_UFID_GENID_MASK
#define M0_UFID_GENID_HI_MASK
struct m0_ufid ufg_ufid_cur
return M0_ERR(-EOPNOTSUPP)
#define M0_UFID_GENID_LO_MASK
m0_time_t m0_time_now(void)
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
int m0_ufid_next(struct m0_ufid_generator *gr, uint32_t nr_ids, struct m0_uint128 *id128)
#define M0_UFID_SEQID_MASK
uint64_t m0_time_seconds(const m0_time_t time)
#define M0_UFID_SALT_MASK
static void ufid_to_id128(struct m0_ufid *ufid, struct m0_uint128 *id128)
M0_INTERNAL uint64_t m0_rnd64(uint64_t *seed)
#define M0_FI_ENABLED(tag)
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
static bool ufid_invariant(struct m0_ufid *ufid)
#define M0_UFID_SEQID_MAX
struct m0_client * ufg_m0c
#define M0_UFID_PROCID_MASK
int m0_ufid_new(struct m0_ufid_generator *gr, uint32_t nr_ids, uint32_t nr_skip_ids, struct m0_uint128 *id128)
static int ufid_generation_id_refresh(struct m0_ufid_generator *gr)
static int ufid_proc_id_refresh(struct m0_ufid_generator *gr)
static int ufid_seq_id_refresh(struct m0_ufid_generator *gr, uint32_t nr_seqs)
int m0_nanosleep(const m0_time_t req, m0_time_t *rem)