Motr  M0
list_enum.c File Reference
#include "lib/errno.h"
#include "lib/vec.h"
#include "lib/memory.h"
#include "lib/misc.h"
#include "lib/bob.h"
#include "lib/finject.h"
#include "lib/trace.h"
#include "motr/magic.h"
#include "fid/fid.h"
#include "layout/layout_internal.h"
#include "layout/list_enum.h"
Include dependency graph for list_enum.c:

Go to the source code of this file.

Data Structures

struct  list_schema_data
 
struct  cob_lists_key
 
struct  cob_lists_rec
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_LAYOUT
 

Functions

 M0_BOB_DEFINE (static, &list_bob, m0_layout_list_enum)
 
static int lcl_key_cmp (struct m0_table *table, const void *key0, const void *key1)
 
static bool list_allocated_invariant (const struct m0_layout_list_enum *le)
 
static bool list_invariant (const struct m0_layout_list_enum *le)
 
static int list_allocate (struct m0_layout_domain *dom, struct m0_layout_enum **out)
 
static void list_delete (struct m0_layout_enum *e)
 
static int list_populate (struct m0_layout_list_enum *list_enum, struct m0_fid *cob_list, uint32_t nr)
 
M0_INTERNAL int m0_list_enum_build (struct m0_layout_domain *dom, struct m0_fid *cob_list, uint32_t nr, struct m0_layout_list_enum **out)
 
static struct m0_layout_list_enumenum_to_list_enum (const struct m0_layout_enum *e)
 
static void list_fini (struct m0_layout_enum *e)
 
static int list_register (struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
 
static void list_unregister (struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
 
static m0_bcount_t list_max_recsize (void)
 
static int noninline_read (struct m0_fid *cob_list, struct m0_striped_layout *stl, struct m0_db_tx *tx, uint32_t idx_start, uint32_t idx_end)
 
static int list_decode (struct m0_layout_enum *e, struct m0_bufvec_cursor *cur, enum m0_layout_xcode_op op, struct m0_db_tx *tx, struct m0_striped_layout *stl)
 
static int noninline_write (const struct m0_layout_enum *e, struct m0_db_tx *tx, enum m0_layout_xcode_op op, uint32_t idx_start)
 
static int list_encode (const struct m0_layout_enum *e, enum m0_layout_xcode_op op, struct m0_db_tx *tx, struct m0_bufvec_cursor *out)
 
static uint32_t list_nr (const struct m0_layout_enum *e)
 
static void list_get (const struct m0_layout_enum *e, uint32_t idx, const struct m0_fid *gfid, struct m0_fid *out)
 
static m0_bcount_t list_recsize (struct m0_layout_enum *e)
 

Variables

static const struct m0_bob_type list_bob
 
static const struct m0_table_ops cob_lists_table_ops
 
static const struct m0_layout_enum_ops list_enum_ops
 
static const struct m0_layout_enum_type_ops list_type_ops
 
struct m0_layout_enum_type m0_list_enum_type