Motr  M0
tx.h File Reference
#include "lib/misc.h"
#include "lib/buf.h"
#include "sm/sm.h"
#include "be/tx_regmap.h"
Include dependency graph for tx.h:

Go to the source code of this file.

Data Structures

struct  m0_be_tx
 
struct  m0_be_tx_remid
 

Macros

#define __MOTR_BE_TX_H__
 
#define M0_BE_CREDIT_INC(n, cr_user, credit)
 
#define M0_BE_CREDIT_DEC(cr_user, tx)
 
#define M0_BE_TX_CAPTURE_PTR(seg, tx, ptr)   m0_be_tx_capture((tx), &M0_BE_REG((seg), sizeof *(ptr), (ptr)))
 
#define M0_BE_TX_CAPTURE_ARR(seg, tx, arr, nr)   m0_be_tx_capture((tx), &M0_BE_REG((seg), (nr) * sizeof((arr)[0]), (arr)))
 
#define M0_BE_TX_CAPTURE_BUF(seg, tx, buf)   m0_be_tx_capture((tx), &M0_BE_REG((seg), (buf)->b_nob, (buf)->b_addr))
 

Typedefs

typedef void(* m0_be_tx_cb_t) (const struct m0_be_tx *tx)
 

Enumerations

enum  m0_be_tx_state {
  M0_BTS_FAILED = 1, M0_BTS_PREPARE, M0_BTS_OPENING, M0_BTS_GROUPING,
  M0_BTS_ACTIVE, M0_BTS_CLOSED, M0_BTS_LOGGED, M0_BTS_PLACED,
  M0_BTS_DONE, M0_BTS_NR
}
 

Functions

struct m0_be_tx_remid M0_XCA_DOMAIN (be|rpc)
 
M0_INTERNAL bool m0_be_tx__invariant (const struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_init (struct m0_be_tx *tx, uint64_t tid, struct m0_be_domain *dom, struct m0_sm_group *sm_group, m0_be_tx_cb_t persistent, m0_be_tx_cb_t discarded, void(*filler)(struct m0_be_tx *tx, void *payload), void *datum)
 
M0_INTERNAL void m0_be_tx_fini (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_prep (struct m0_be_tx *tx, const struct m0_be_tx_credit *credit)
 
M0_INTERNAL void m0_be_tx_payload_prep (struct m0_be_tx *tx, m0_bcount_t size)
 
M0_INTERNAL void m0_be_tx_open (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_exclusive_open (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_capture (struct m0_be_tx *tx, const struct m0_be_reg *reg)
 
M0_INTERNAL void m0_be_tx_uncapture (struct m0_be_tx *tx, const struct m0_be_reg *reg)
 
M0_INTERNAL void m0_be_tx_close (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_get (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_put (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_force (struct m0_be_tx *tx)
 
M0_INTERNAL int m0_be_tx_timedwait (struct m0_be_tx *tx, uint64_t states, m0_time_t deadline)
 
M0_INTERNAL enum m0_be_tx_state m0_be_tx_state (const struct m0_be_tx *tx)
 
M0_INTERNAL const char * m0_be_tx_state_name (enum m0_be_tx_state state)
 
M0_INTERNAL int m0_be_tx_open_sync (struct m0_be_tx *tx)
 
M0_INTERNAL int m0_be_tx_exclusive_open_sync (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_close_sync (struct m0_be_tx *tx)
 
M0_INTERNAL bool m0_be_tx__is_fast (struct m0_be_tx *tx)
 
M0_INTERNAL int m0_be_tx_fol_add (struct m0_be_tx *tx, struct m0_fol_rec *rec)
 
M0_INTERNAL bool m0_be_tx__is_exclusive (const struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx__recovering_set (struct m0_be_tx *tx)
 
M0_INTERNAL bool m0_be_tx__is_recovering (struct m0_be_tx *tx)
 
M0_INTERNAL void m0_be_tx_deconstruct (struct m0_be_tx *tx, struct m0_be_fmt_tx *ftx)
 
M0_INTERNAL void m0_be_tx_reconstruct (struct m0_be_tx *tx, const struct m0_be_fmt_tx *ftx)
 
M0_INTERNAL void m0_be_tx__group_assign (struct m0_be_tx *tx, struct m0_be_tx_group *gr)
 
M0_INTERNAL bool m0_be_tx_should_break (struct m0_be_tx *tx, const struct m0_be_tx_credit *c)
 
M0_INTERNAL void m0_be_tx_gc_enable (struct m0_be_tx *tx, void(*gc_free)(struct m0_be_tx *, void *param), void *param)
 
M0_INTERNAL bool m0_be_should_break (struct m0_be_engine *eng, const struct m0_be_tx_credit *accum, const struct m0_be_tx_credit *delta)
 
M0_INTERNAL bool m0_be_should_break_half (struct m0_be_engine *eng, const struct m0_be_tx_credit *accum, const struct m0_be_tx_credit *delta)
 
M0_INTERNAL void m0_be_tx_lsn_set (struct m0_be_tx *tx, m0_bindex_t lsn, m0_bindex_t lsn_discarded)
 
M0_INTERNAL void m0_be_tx_lsn_get (struct m0_be_tx *tx, m0_bindex_t *lsn, m0_bindex_t *lsn_discarded)
 

Variables

uint64_t tri_txid
 
uint64_t tri_locality
 

Macro Definition Documentation

◆ __MOTR_BE_TX_H__

#define __MOTR_BE_TX_H__

Definition at line 25 of file tx.h.

Variable Documentation

◆ tri_locality

uint64_t tri_locality

Definition at line 279 of file tx.h.

◆ tri_txid

uint64_t tri_txid

Definition at line 278 of file tx.h.