Motr  M0
ufid.c File Reference
#include "lib/trace.h"
#include "ut/ut.h"
#include "lib/finject.h"
#include "lib/tlist.h"
#include "lib/hash.h"
#include "lib/memory.h"
#include "motr/client.h"
#include "motr/client_internal.h"
#include "helpers/ufid.h"
#include "helpers/ufid.c"
Include dependency graph for ufid.c:

Go to the source code of this file.

Data Structures

struct  ut_ufid
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_CLIENT
 
#define EXPECT_EQ(a, b)   M0_UT_ASSERT(a == b)
 
#define EXPECT_NE(a, b)   M0_UT_ASSERT(a != b)
 
#define UFID_RESERVED_TEST   (60818UL)
 
#define UFID_RESERVED_TEST_HI   (UFID_RESERVED_TEST << (64 - M0_UFID_RESERVED_BITS))
 
#define UFID_VALIDATE(id)   EXPECT_EQ(ufid_validate(id), 0)
 

Enumerations

enum  {
  UFID_ERR_RESERVED = 1, UFID_ERR_PROC_ID, UFID_ERR_SALT, UFID_ERR_GEN_ID,
  UFID_ERR_SEQ_ID
}
 

Functions

static void id128_to_ufid (struct m0_uint128 *id128, struct m0_ufid *ufid)
 
static int ufid_validate (struct m0_uint128 *id128)
 
static uint64_t ufid_hash (const struct m0_htable *htable, const struct m0_uint128 *id128)
 
static int ufid_hash_eq (const struct m0_uint128 *id1, const struct m0_uint128 *id2)
 
 M0_HT_DESCR_DEFINE (ufid, "Hash of UFIDs", static, struct ut_ufid, u_link, u_magic, 0x43, 0x67, u_id128, ufid_hash, ufid_hash_eq)
 
 M0_HT_DEFINE (ufid, static, struct ut_ufid, struct m0_uint128)
 
static void ut_ufid_seq_id_refresh (void)
 
static void ut_ufid_salt_refresh (void)
 
static void ut_ufid_proc_id_refresh (void)
 
static void ut_ufid_generation_id_refresh (void)
 
static void ut_m0_ufid_next (void)
 
static void ut_m0_ufid_new (void)
 
M0_INTERNAL int ut_ufid_init (void)
 
M0_INTERNAL int ut_ufid_fini (void)
 

Variables

struct m0_ut_suite ut_suite_ufid
 
static struct m0_client dummy_m0c
 
static struct m0_ufid_generator dummy_ufid_gr
 
static struct m0_htable ufid_tracker
 

Macro Definition Documentation

◆ EXPECT_EQ

#define EXPECT_EQ (   a,
 
)    M0_UT_ASSERT(a == b)

Definition at line 51 of file ufid.c.

◆ EXPECT_NE

#define EXPECT_NE (   a,
 
)    M0_UT_ASSERT(a != b)

Definition at line 52 of file ufid.c.

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_CLIENT

Definition at line 23 of file ufid.c.

◆ UFID_RESERVED_TEST

#define UFID_RESERVED_TEST   (60818UL)

Definition at line 54 of file ufid.c.

◆ UFID_RESERVED_TEST_HI

#define UFID_RESERVED_TEST_HI   (UFID_RESERVED_TEST << (64 - M0_UFID_RESERVED_BITS))

Definition at line 55 of file ufid.c.

◆ UFID_VALIDATE

#define UFID_VALIDATE (   id)    EXPECT_EQ(ufid_validate(id), 0)

Definition at line 124 of file ufid.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UFID_ERR_RESERVED 
UFID_ERR_PROC_ID 
UFID_ERR_SALT 
UFID_ERR_GEN_ID 
UFID_ERR_SEQ_ID 

Definition at line 43 of file ufid.c.

Function Documentation

◆ id128_to_ufid()

static void id128_to_ufid ( struct m0_uint128 id128,
struct m0_ufid ufid 
)
static

Definition at line 58 of file ufid.c.

Here is the caller graph for this function:

◆ M0_HT_DEFINE()

M0_HT_DEFINE ( ufid  ,
static  ,
struct ut_ufid  ,
struct m0_uint128   
)

◆ M0_HT_DESCR_DEFINE()

M0_HT_DESCR_DEFINE ( ufid  ,
"Hash of UFIDs"  ,
static  ,
struct ut_ufid  ,
u_link  ,
u_magic  ,
0x43  ,
0x67  ,
u_id128  ,
ufid_hash  ,
ufid_hash_eq   
)

◆ ufid_hash()

static uint64_t ufid_hash ( const struct m0_htable htable,
const struct m0_uint128 id128 
)
static

Definition at line 133 of file ufid.c.

◆ ufid_hash_eq()

static int ufid_hash_eq ( const struct m0_uint128 id1,
const struct m0_uint128 id2 
)
static

Definition at line 140 of file ufid.c.

Here is the call graph for this function:

◆ ufid_validate()

static int ufid_validate ( struct m0_uint128 id128)
static

Definition at line 92 of file ufid.c.

Here is the call graph for this function:

◆ ut_m0_ufid_new()

static void ut_m0_ufid_new ( void  )
static

Definition at line 288 of file ufid.c.

Here is the call graph for this function:

◆ ut_m0_ufid_next()

static void ut_m0_ufid_next ( void  )
static

Definition at line 254 of file ufid.c.

Here is the call graph for this function:

◆ ut_ufid_fini()

M0_INTERNAL int ut_ufid_fini ( void  )

Definition at line 327 of file ufid.c.

Here is the call graph for this function:

◆ ut_ufid_generation_id_refresh()

static void ut_ufid_generation_id_refresh ( void  )
static

Definition at line 231 of file ufid.c.

Here is the call graph for this function:

◆ ut_ufid_init()

M0_INTERNAL int ut_ufid_init ( void  )

Definition at line 318 of file ufid.c.

Here is the call graph for this function:

◆ ut_ufid_proc_id_refresh()

static void ut_ufid_proc_id_refresh ( void  )
static

Definition at line 215 of file ufid.c.

Here is the call graph for this function:

◆ ut_ufid_salt_refresh()

static void ut_ufid_salt_refresh ( void  )
static

Definition at line 197 of file ufid.c.

Here is the call graph for this function:

◆ ut_ufid_seq_id_refresh()

static void ut_ufid_seq_id_refresh ( void  )
static

Definition at line 153 of file ufid.c.

Here is the call graph for this function:

Variable Documentation

◆ dummy_m0c

struct m0_client dummy_m0c
static

Definition at line 40 of file ufid.c.

◆ dummy_ufid_gr

struct m0_ufid_generator dummy_ufid_gr
static

Definition at line 41 of file ufid.c.

◆ ufid_tracker

struct m0_htable ufid_tracker
static

Definition at line 151 of file ufid.c.

◆ ut_suite_ufid

struct m0_ut_suite ut_suite_ufid
Initial value:
= {
.ts_name = "helpers-ufid-ut",
.ts_init = ut_ufid_init,
.ts_fini = ut_ufid_fini,
.ts_tests = {
{ "m0_ufid_new",
{ "m0_ufid_next",
{ "ufid_generation_id_refresh",
{ "ufid_proc_id_refresh",
{ "ufid_salt_refresh",
{ "ufid_seq_id_refresh",
{ NULL, NULL },
}
}
M0_INTERNAL int ut_ufid_init(void)
Definition: ufid.c:318
#define NULL
Definition: misc.h:38
M0_INTERNAL int ut_ufid_fini(void)
Definition: ufid.c:327
static void ut_ufid_seq_id_refresh(void)
Definition: ufid.c:153
static void ut_ufid_salt_refresh(void)
Definition: ufid.c:197
static void ut_ufid_generation_id_refresh(void)
Definition: ufid.c:231
static void ut_ufid_proc_id_refresh(void)
Definition: ufid.c:215
static void ut_m0_ufid_new(void)
Definition: ufid.c:288
static void ut_m0_ufid_next(void)
Definition: ufid.c:254

Definition at line 39 of file ufid.c.