|
| M0_TL_DESCR_DEFINE (clayer, "composite layout layers", static, struct m0_composite_layer, ccr_tlink, ccr_tlink_magic, M0_CLAYER_TL_MAGIC, M0_CLAYER_TL_MAGIC) |
|
| M0_TL_DEFINE (clayer, static, struct m0_composite_layer) |
|
| M0_TL_DESCR_DEFINE (cext, "composite layout extents", static, struct m0_composite_extent, ce_tlink, ce_tlink_magic, M0_CEXT_TL_MAGIC, M0_CEXT_TL_MAGIC) |
|
| M0_TL_DEFINE (cext, static, struct m0_composite_extent) |
|
static int | composite_layout_io_build (struct m0_io_args *args, struct m0_op **op) |
|
static int | composite_extents_scan_sync (struct m0_obj *obj, struct m0_client_composite_layout *clayout) |
|
static struct layout_dix_req * | layout_dix_req_alloc (struct m0_sm_group *grp, struct m0_dix_cli *cli, m0_chan_cb_t cb, struct m0_op_layout *ol) |
|
static void | layout_dix_req_fini (struct layout_dix_req *req) |
|
static void | layout_dix_req_free (struct layout_dix_req *req) |
|
static void | layout_op_completed (struct m0_op *op) |
|
static void | layout_op_failed (struct m0_op *op, int rc) |
|
static void | layout_dix_req_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
|
static bool | layout_dix_req_clink_cb (struct m0_clink *cl) |
|
static void | layout_dix_get_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
|
static void | layout_dix_put_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
|
static void | layout_dix_req_launch (struct layout_dix_req *req, void(*exec_fn)(struct m0_sm_group *grp, struct m0_sm_ast *ast)) |
|
M0_INTERNAL int | m0_layout_op_launch (struct m0_op_layout *ol) |
|
M0_INTERNAL int | m0__dix_layout_get_sync (struct m0_obj *obj, struct m0_dix_layout *dlayout) |
|
static int | composite_layout_copy_to_app (struct m0_client_layout *to, void *from) |
|
static int | composite_layout_copy_from_app (struct m0_client_layout *from, void *to) |
|
static int | composite_layout_get_sync (struct m0_obj *obj) |
|
static int | composite_layout_get (struct m0_client_layout *layout) |
|
static void | composite_layout_put (struct m0_client_layout *layout) |
|
static int | composite_layout_alloc (struct m0_client_layout **out) |
|
int | m0_composite_layer_add (struct m0_client_layout *layout, struct m0_obj *sub_obj, int priority) |
|
void | m0_composite_layer_del (struct m0_client_layout *layout, struct m0_uint128 subobj_id) |
|
| M0_TL_DESCR_DEFINE (sio_ext, "composite layout subobj extent list", static, struct composite_sub_io_ext, sie_tlink, sie_tlink_magic, M0_CIO_EXT_MAGIC, M0_CIO_EXT_MAGIC) |
|
| M0_TL_DEFINE (sio_ext, static, struct composite_sub_io_ext) |
|
| M0_BOB_DEFINE (static, &oci_bobtype, m0_op_composite_io) |
|
static bool | m0_op_composite_io_invariant (const struct m0_op_composite_io *oci) |
|
static void | composite_sub_io_destroy (struct composite_sub_io *sio_arr, int nr_subobjs) |
|
static m0_bindex_t | get_next_off (struct m0_composite_extent *cexts[], int n) |
|
static void | advance_layers_cursor (struct m0_tl *cext_tlists[], struct m0_composite_extent *cexts[], int n, m0_bindex_t off) |
|
static int | composite_io_divide (struct m0_client_composite_layout *clayout, enum m0_obj_opcode opcode, struct m0_indexvec *ext, struct m0_bufvec *data, struct composite_sub_io **out, int *out_nr_sios) |
|
static void | composite_io_op_done (struct m0_op_composite_io *oci) |
|
static void | composite_io_op_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
|
static int | composite_sub_io_op_build (struct m0_obj *cobj, struct m0_op *cop, struct composite_sub_io *sio, struct m0_op **out) |
|
static int | composite_sub_io_ops_build (struct m0_obj *cobj, struct m0_op *cop, struct composite_sub_io *sio_arr, int nr_subobjs) |
|
static void | composite_io_op_cb_fini (struct m0_op_common *oc) |
|
static void | composite_io_op_cb_free (struct m0_op_common *oc) |
|
static void | composite_io_op_cb_launch (struct m0_op_common *oc) |
|
static int | composite_io_op_init (struct m0_obj *obj, int opcode, struct m0_op *op) |
|
int | m0_composite_layer_idx_key_to_buf (struct m0_composite_layer_idx_key *key, void **out_kbuf, m0_bcount_t *out_klen) |
|
void | m0_composite_layer_idx_key_from_buf (struct m0_composite_layer_idx_key *key, void *kbuf) |
|
int | m0_composite_layer_idx_val_to_buf (struct m0_composite_layer_idx_val *val, void **out_vbuf, m0_bcount_t *out_vlen) |
|
void | m0_composite_layer_idx_val_from_buf (struct m0_composite_layer_idx_val *val, void *vbuf) |
|
int | m0_composite_layer_idx (struct m0_uint128 layer_id, bool write, struct m0_idx *idx) |
|
M0_INTERNAL int | m0__composite_container_init (struct m0_client *cinst) |
|
static int | composite_layer_idx_next_query (struct m0_idx *idx, struct m0_bufvec *keys, struct m0_bufvec *vals, int *rcs, uint32_t flags) |
|
static int | composite_layer_idx_extents_extract (struct m0_composite_layer *layer, struct m0_bufvec *keys, struct m0_bufvec *vals, int *rcs, struct m0_tl *ext_list, struct m0_composite_layer_idx_key *max_key) |
|
static int | composite_layer_idx_scan (struct m0_composite_layer *layer, bool is_wr_list) |
|
---------------------------------------------------------------------——*
Client Composite Layout Extent Index API and routines *
2 global extent indices are created for composite objects' extents: one is for read extents and another is for write extents. Client uses two reserved FIDs for these 2 global extent indices. The format for key/value pairs is defined as: key = {layer_id, extent offset} and value = extent length To ensure that the key/value pairs are stored in key's lexicographical, order (so that extents for a layer is stored in increasing offset order), client transforms the keys input by the application in big-endian format.
To create these internal extent indices, client also has to maintain an container for it.
Definition at line 1225 of file composite_layout.c.