|
| 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_enum * | enum_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) |
|
List Enumeration Type. A layout with list enumeration type lists all the COB identifiers as a part of the layout itself.
A layout with list enumeration type contains list of component object identifiers in itself.
◆ M0_TRACE_SUBSYSTEM
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_LAYOUT |
◆ enum_to_list_enum()
◆ lcl_key_cmp()
static int lcl_key_cmp |
( |
struct m0_table * |
table, |
|
|
const void * |
key0, |
|
|
const void * |
key1 |
|
) |
| |
|
static |
Compare cob_lists table keys. This is a 3WAY comparison.
Definition at line 84 of file list_enum.c.
◆ list_allocate()
Implementation of leto_allocate for LIST enumeration type.
Definition at line 129 of file list_enum.c.
◆ list_allocated_invariant()
◆ list_decode()
Implementation of leo_decode() for LIST enumeration type.
Definition at line 389 of file list_enum.c.
◆ list_delete()
Implementation of leo_delete for LIST enumeration type.
Definition at line 157 of file list_enum.c.
◆ list_encode()
Implementation of leo_encode() for LIST enumeration type.
Definition at line 573 of file list_enum.c.
◆ list_fini()
Implementation of leo_fini for LIST enumeration type.
Definition at line 240 of file list_enum.c.
◆ list_get()
Implementation of leo_get for LIST enumeration.
Definition at line 656 of file list_enum.c.
◆ list_invariant()
◆ list_max_recsize()
Implementation of leto_max_recsize() for LIST enumeration type.
Definition at line 314 of file list_enum.c.
◆ list_nr()
Implementation of leo_nr for LIST enumeration.
Definition at line 640 of file list_enum.c.
◆ list_populate()
◆ list_recsize()
Implementation of leo_recsize() for list enumeration type.
Definition at line 676 of file list_enum.c.
◆ list_register()
Implementation of leto_register for LIST enumeration type.
Definition at line 258 of file list_enum.c.
◆ list_unregister()
Implementation of leto_unregister for LIST enumeration type.
Definition at line 297 of file list_enum.c.
◆ M0_BOB_DEFINE()
◆ m0_list_enum_build()
Allocates and builds list enumeration object.
- Parameters
-
cob_list | List of cob identifiers, allocated and supplied by the user. User shall not free the memory allocated for this list but it will be internally freed as a part of the enum object finalisation that happens through layout finalisation. |
- Postcondition
- ergo(rc == 0, list_invariant_internal(lin_enum))
- Note
- Enum object is not to be finalised explicitly by the user. It is finalised internally through m0_layout__striped_fini().
Definition at line 191 of file list_enum.c.
◆ noninline_read()
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 |
◆ noninline_write()
◆ cob_lists_table_ops
const struct m0_table_ops cob_lists_table_ops |
|
static |
Initial value:= {
.to = {
[TO_KEY] = {
},
[TO_REC] = {
}
},
}
static int lcl_key_cmp(struct m0_table *table, const void *key0, const void *key1)
table_ops for cob_lists table.
Definition at line 95 of file list_enum.c.
◆ list_bob
Initial value:= {
.bt_name = "list_enum",
}
#define offsetof(typ, memb)
Definition at line 45 of file list_enum.c.
◆ list_enum_ops
Initial value:= {
}
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 void list_fini(struct m0_layout_enum *e)
static void list_delete(struct m0_layout_enum *e)
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 uint32_t list_nr(const struct m0_layout_enum *e)
static m0_bcount_t list_recsize(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)
Definition at line 126 of file list_enum.c.
◆ list_type_ops
Initial value:= {
}
static void list_unregister(struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
static int list_allocate(struct m0_layout_domain *dom, struct m0_layout_enum **out)
static int list_register(struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
static m0_bcount_t list_max_recsize(void)
Definition at line 699 of file list_enum.c.
◆ m0_list_enum_type [1/2]
◆ m0_list_enum_type [2/2]
Initial value:= {
.let_name = "list",
.let_id = 0,
.let_ref_count = 0,
}
static const struct m0_layout_enum_type_ops list_type_ops
Definition at line 706 of file list_enum.c.