25 #ifndef __MOTR_LAYOUT_LAYOUT_H__ 26 #define __MOTR_LAYOUT_LAYOUT_H__ 175 enum { M0_DEFAULT_LAYOUT_ID = 1 };
176 #elif defined (CONFIG_AARCH64) 182 enum { M0_DEFAULT_LAYOUT_ID = 5 };
184 #error "The platform is not supported" 328 uint32_t user_count);
952 const struct m0_fid *target);
M0_INTERNAL struct m0_layout * m0_layout_find(struct m0_layout_domain *dom, uint64_t lid)
int(* leto_register)(struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
M0_INTERNAL m0_bcount_t m0_layout_max_recsize(const struct m0_layout_domain *dom)
M0_INTERNAL struct m0_striped_layout * m0_layout_to_striped(const struct m0_layout *l)
int(* lo_decode)(struct m0_layout *l, struct m0_bufvec_cursor *cur, enum m0_layout_xcode_op op, struct m0_be_tx *tx, uint32_t user_count)
M0_INTERNAL void m0_layout_enum_type_unregister(struct m0_layout_domain *dom, struct m0_layout_enum_type *let)
struct m0_pool_version * l_pver
static struct buffer * cur(struct m0_addb2_mach *mach, m0_bcount_t space)
const struct m0_layout_enum_type_ops * let_ops
M0_INTERNAL int m0_layout_domain_init(struct m0_layout_domain *dom)
void(* leo_fini)(struct m0_layout_enum *e)
m0_bcount_t(* leto_max_recsize)(void)
M0_INTERNAL struct m0_layout_enum * m0_striped_layout_to_enum(const struct m0_striped_layout *stl)
M0_INTERNAL void m0_layout_domain_fini(struct m0_layout_domain *dom)
M0_INTERNAL void m0_layout_enum_fini(struct m0_layout_enum *le)
m0_bcount_t(* leo_recsize)(struct m0_layout_enum *e)
void(* lto_unregister)(struct m0_layout_domain *dom, const struct m0_layout_type *lt)
struct m0_layout_enum_type * le_type
int(* leo_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)
M0_INTERNAL int m0_layout_instance_build(struct m0_layout *l, const struct m0_fid *fid, struct m0_layout_instance **out)
M0_BASSERT(M0_IS_8ALIGNED(sizeof(struct m0_layout_rec)))
struct m0_layout_type * ld_type[M0_LAYOUT_TYPE_MAX]
struct m0_tl ld_layout_list
M0_INTERNAL void m0_layout_add(struct m0_layout_domain *dom, struct m0_layout *l)
int(* leo_encode)(const struct m0_layout_enum *le, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_bufvec_cursor *out)
M0_INTERNAL uint32_t m0_layout_enum_find(const struct m0_layout_enum *e, const struct m0_fid *gfid, const struct m0_fid *target)
int(* lto_allocate)(struct m0_layout_domain *dom, uint64_t lid, struct m0_layout **out)
int(* lo_encode)(struct m0_layout *l, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_bufvec_cursor *out)
m0_bcount_t(* lto_max_recsize)(struct m0_layout_domain *dom)
const struct m0_layout_enum_ops * le_ops
struct m0_layout_type * l_type
struct m0_layout_domain * le_dom
M0_INTERNAL int m0_layout_encode(struct m0_layout *l, enum m0_layout_xcode_op op, struct m0_be_tx *tx, struct m0_bufvec_cursor *out)
M0_INTERNAL int64_t m0_layout_find_by_objsz(struct m0_client *cli, struct m0_fid *pool, size_t sz)
struct m0_layout_enum * sl_enum
static struct m0_stob_domain * dom
M0_INTERNAL void m0_layout_enum_get(const struct m0_layout_enum *e, uint32_t idx, const struct m0_fid *gfid, struct m0_fid *out)
M0_INTERNAL uint32_t m0_layout_enum_nr(const struct m0_layout_enum *e)
M0_INTERNAL void m0_layout_user_count_dec(struct m0_layout *l)
int(* lo_instance_build)(struct m0_layout *l, const struct m0_fid *fid, struct m0_layout_instance **linst)
M0_INTERNAL int m0_layout_enum_type_register(struct m0_layout_domain *dom, struct m0_layout_enum_type *let)
m0_bcount_t(* lo_recsize)(const struct m0_layout *l)
M0_INTERNAL int m0_layout_standard_types_register(struct m0_layout_domain *dom)
M0_INTERNAL int m0_layout_decode(struct m0_layout *l, struct m0_bufvec_cursor *cur, enum m0_layout_xcode_op op, struct m0_be_tx *tx)
static struct m0_clink l[NR]
void(* leo_get)(const struct m0_layout_enum *e, uint32_t idx, const struct m0_fid *gfid, struct m0_fid *out)
struct m0_layout_enum_type * ld_enum[M0_LAYOUT_ENUM_TYPE_MAX]
static struct m0_pool pool
const struct m0_layout_type_ops * lt_ops
M0_INTERNAL int64_t m0_layout_find_by_buffsize(struct m0_layout_domain *dom, struct m0_fid *pver, size_t buffsize)
M0_INTERNAL void m0_layout_get(struct m0_layout *l)
M0_INTERNAL void m0_layout_user_count_inc(struct m0_layout *l)
const struct m0_layout_instance_ops * li_ops
M0_INTERNAL void m0_layout_domain_cleanup(struct m0_layout_domain *dom)
m0_bcount_t ld_max_recsize
int(* lto_register)(struct m0_layout_domain *dom, const struct m0_layout_type *lt)
M0_INTERNAL struct m0_layout_enum * m0_layout_instance_to_enum(const struct m0_layout_instance *li)
void(* lio_fini)(struct m0_layout_instance *li)
M0_INTERNAL void m0_layouts_fini(void)
M0_INTERNAL int m0_layout_type_register(struct m0_layout_domain *dom, struct m0_layout_type *lt)
struct m0_striped_layout * le_sl
M0_INTERNAL void m0_layout_standard_types_unregister(struct m0_layout_domain *dom)
struct m0_tlink l_list_linkage
M0_INTERNAL struct m0_layout_enum * m0_layout_to_enum(const struct m0_layout *l)
int(* leto_allocate)(struct m0_layout_domain *dom, struct m0_layout_enum **out)
M0_INTERNAL void m0_layout_type_unregister(struct m0_layout_domain *dom, struct m0_layout_type *lt)
void * ld_enum_data[M0_LAYOUT_ENUM_TYPE_MAX]
void * ld_type_data[M0_LAYOUT_TYPE_MAX]
M0_INTERNAL void m0_layout_instance_fini(struct m0_layout_instance *li)
void(* lo_delete)(struct m0_layout *l)
uint32_t(* leo_nr)(const struct m0_layout_enum *e)
M0_INTERNAL void m0_layout_put(struct m0_layout *l)
#define M0_IS_8ALIGNED(val)
void(* leto_unregister)(struct m0_layout_domain *dom, const struct m0_layout_enum_type *et)
struct m0_layout_domain * l_dom
M0_INTERNAL int m0_layouts_init(void)
void(* leo_delete)(struct m0_layout_enum *e)
void(* lo_fini)(struct m0_ref *ref)
const struct m0_layout_ops * l_ops