Motr  M0
next_merge.c File Reference
#include "lib/trace.h"
#include "lib/arith.h"
#include "lib/memory.h"
#include "pool/pool.h"
#include "lib/errno.h"
#include "dix/client.h"
#include "dix/req.h"
#include "lib/finject.h"
Include dependency graph for next_merge.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_DIX
 
#define NOENT   (-ENOENT)
 
#define PROCESSING_IS_DONE   (-ENOKEY)
 

Functions

static void sc_result_add (struct m0_dix_next_sort_ctx *key_ctx, uint32_t cidx, struct m0_dix_next_resultset *rs, uint32_t key_id, struct m0_cas_next_reply *rep)
 
static int sc_rep_cmp (const struct m0_cas_next_reply *a, const struct m0_cas_next_reply *b)
 
static bool sc_rep_le (const struct m0_cas_next_reply *a, const struct m0_cas_next_reply *b)
 
static bool sc_rep_eq (const struct m0_cas_next_reply *a, const struct m0_cas_next_reply *b)
 
static void sc_next (struct m0_dix_next_sort_ctx *ctx)
 
static int sc_rep_get (struct m0_dix_next_sort_ctx *ctx, struct m0_cas_next_reply **rep)
 
static int sc_key_pos_set (struct m0_dix_next_sort_ctx *ctx, uint32_t key_idx, const uint32_t *recs_nr)
 
static bool sc_min_val_get (struct m0_dix_next_sort_ctx_arr *ctxarr, struct m0_cas_next_reply **rep, struct m0_dix_next_sort_ctx **ret_ctx, uint32_t *ret_idx)
 
static int dix_rs_vals_alloc (struct m0_dix_next_resultset *rs, uint32_t key_idx, uint32_t nr)
 
static int dix_data_load (struct m0_dix_req *req, struct m0_dix_next_resultset *rs)
 
M0_INTERNAL int m0_dix_next_result_prepare (struct m0_dix_req *req)
 
static int sc_init (struct m0_dix_next_sort_ctx_arr *ctx_arr, uint32_t nr)
 
static void sc_fini (struct m0_dix_next_sort_ctx_arr *ctx_arr)
 
M0_INTERNAL int m0_dix_rs_init (struct m0_dix_next_resultset *rs, uint32_t start_keys_nr, uint32_t sctx_nr)
 
M0_INTERNAL void m0_dix_rs_fini (struct m0_dix_next_resultset *rs)