|
| M0_BOB_DEFINE (static, &linear_bob, m0_layout_linear_enum) |
|
static bool | linear_allocated_invariant (const struct m0_layout_linear_enum *le) |
|
static bool | linear_invariant (const struct m0_layout_linear_enum *le) |
|
static int | linear_allocate (struct m0_layout_domain *dom, struct m0_layout_enum **out) |
|
static void | linear_delete (struct m0_layout_enum *e) |
|
static int | linear_populate (struct m0_layout_linear_enum *lin_enum, const struct m0_layout_linear_attr *attr) |
|
M0_INTERNAL int | m0_linear_enum_build (struct m0_layout_domain *dom, const struct m0_layout_linear_attr *attr, struct m0_layout_linear_enum **out) |
|
static struct m0_layout_linear_enum * | enum_to_linear_enum (const struct m0_layout_enum *e) |
|
static void | linear_fini (struct m0_layout_enum *e) |
|
static int | linear_register (struct m0_layout_domain *dom, const struct m0_layout_enum_type *et) |
|
static void | linear_unregister (struct m0_layout_domain *dom, const struct m0_layout_enum_type *et) |
|
static m0_bcount_t | linear_max_recsize (void) |
|
static int | linear_decode (struct m0_layout_enum *e, struct m0_bufvec_cursor *cur, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_striped_layout *stl) |
|
static int | linear_encode (const struct m0_layout_enum *e, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_bufvec_cursor *out) |
|
static uint32_t | linear_nr (const struct m0_layout_enum *e) |
|
static void | linear_get (const struct m0_layout_enum *e, uint32_t idx, const struct m0_fid *gfid, struct m0_fid *out) |
|
static m0_bcount_t | linear_recsize (struct m0_layout_enum *e) |
|
| M0_BASSERT (M0_IS_8ALIGNED(sizeof(struct m0_layout_linear_attr))) |
|
A layout with linear enumeration type stores a linear formula that is used to enumerate all the component object identifiers.
◆ M0_TRACE_SUBSYSTEM
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_LAYOUT |
◆ enum_to_linear_enum()
◆ linear_allocate()
Implementation of leto_allocate for LINEAR enumeration type.
Definition at line 79 of file linear_enum.c.
◆ linear_allocated_invariant()
◆ linear_decode()
Implementation of leo_decode() for linear enumeration type.
Definition at line 217 of file linear_enum.c.
◆ linear_delete()
◆ linear_encode()
Implementation of leo_encode() for linear enumeration type.
Definition at line 255 of file linear_enum.c.
◆ linear_fini()
Implementation of leo_fini for LINEAR enumeration type.
Definition at line 178 of file linear_enum.c.
◆ linear_get()
Implementation of leo_get for LINEAR enumeration.
Definition at line 298 of file linear_enum.c.
◆ linear_invariant()
linear_invariant() can not be invoked until an enumeration object is associated with some layout object. Hence this separation.
Definition at line 67 of file linear_enum.c.
◆ linear_max_recsize()
Implementation of leto_max_recsize() for linear enumeration type.
Definition at line 211 of file linear_enum.c.
◆ linear_nr()
Implementation of leo_nr for LINEAR enumeration.
Definition at line 282 of file linear_enum.c.
◆ linear_populate()
◆ linear_recsize()
Implementation of leo_recsize() for linear enumeration type.
Definition at line 320 of file linear_enum.c.
◆ linear_register()
Implementation of leto_register for LINEAR enumeration type. No table is required specifically for LINEAR enum type.
Definition at line 198 of file linear_enum.c.
◆ linear_unregister()
Implementation of leto_unregister for LINEAR enumeration type.
Definition at line 205 of file linear_enum.c.
◆ M0_BASSERT()
◆ M0_BOB_DEFINE()
◆ m0_linear_enum_build()
Allocates and builds linear enumeration object.
- Postcondition
- ergo(rc == 0, linear_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 138 of file linear_enum.c.
◆ linear_bob
Initial value:= {
.bt_name = "linear_enum",
}
#define offsetof(typ, memb)
Definition at line 46 of file linear_enum.c.
◆ linear_enum_ops
Initial value:= {
}
static m0_bcount_t linear_recsize(struct m0_layout_enum *e)
static void linear_get(const struct m0_layout_enum *e, uint32_t idx, const struct m0_fid *gfid, struct m0_fid *out)
static void linear_fini(struct m0_layout_enum *e)
static int linear_encode(const struct m0_layout_enum *e, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_bufvec_cursor *out)
static int linear_decode(struct m0_layout_enum *e, struct m0_bufvec_cursor *cur, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_striped_layout *stl)
static uint32_t linear_nr(const struct m0_layout_enum *e)
static void linear_delete(struct m0_layout_enum *e)
Definition at line 76 of file linear_enum.c.
◆ linear_type_ops
Initial value:= {
}
static int linear_register(struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
static int linear_allocate(struct m0_layout_domain *dom, struct m0_layout_enum **out)
static m0_bcount_t linear_max_recsize(void)
static void linear_unregister(struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
Definition at line 335 of file linear_enum.c.
◆ m0_linear_enum_type [1/2]
◆ m0_linear_enum_type [2/2]
Initial value:= {
.let_name = "linear",
.let_id = 1,
.let_ref_count = 0,
}
static const struct m0_layout_enum_type_ops linear_type_ops
Definition at line 342 of file linear_enum.c.