|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
|
|
Packit Service |
54dbc3 |
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
|
|
Packit Service |
54dbc3 |
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* This software is available to you under a choice of one of two
|
|
Packit Service |
54dbc3 |
* licenses. You may choose to be licensed under the terms of the GNU
|
|
Packit Service |
54dbc3 |
* General Public License (GPL) Version 2, available from the file
|
|
Packit Service |
54dbc3 |
* COPYING in the main directory of this source tree, or the
|
|
Packit Service |
54dbc3 |
* OpenIB.org BSD license below:
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* Redistribution and use in source and binary forms, with or
|
|
Packit Service |
54dbc3 |
* without modification, are permitted provided that the following
|
|
Packit Service |
54dbc3 |
* conditions are met:
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* - Redistributions of source code must retain the above
|
|
Packit Service |
54dbc3 |
* copyright notice, this list of conditions and the following
|
|
Packit Service |
54dbc3 |
* disclaimer.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* - Redistributions in binary form must reproduce the above
|
|
Packit Service |
54dbc3 |
* copyright notice, this list of conditions and the following
|
|
Packit Service |
54dbc3 |
* disclaimer in the documentation and/or other materials
|
|
Packit Service |
54dbc3 |
* provided with the distribution.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
Packit Service |
54dbc3 |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
Packit Service |
54dbc3 |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
Packit Service |
54dbc3 |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
Packit Service |
54dbc3 |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
Packit Service |
54dbc3 |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
Packit Service |
54dbc3 |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
Packit Service |
54dbc3 |
* SOFTWARE.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#ifndef _OSMV_TXN_H_
|
|
Packit Service |
54dbc3 |
#define _OSMV_TXN_H_
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#include <sys/types.h>
|
|
Packit Service |
54dbc3 |
#include <unistd.h>
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#include <complib/cl_qmap.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_madw.h>
|
|
Packit Service |
54dbc3 |
#include <complib/cl_event_wheel.h>
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#include <vendor/osm_vendor_mlx_rmpp_ctx.h>
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#ifdef __cplusplus
|
|
Packit Service |
54dbc3 |
# define BEGIN_C_DECLS extern "C" {
|
|
Packit Service |
54dbc3 |
# define END_C_DECLS }
|
|
Packit Service |
54dbc3 |
#else /* !__cplusplus */
|
|
Packit Service |
54dbc3 |
# define BEGIN_C_DECLS
|
|
Packit Service |
54dbc3 |
# define END_C_DECLS
|
|
Packit Service |
54dbc3 |
#endif /* __cplusplus */
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
BEGIN_C_DECLS
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
typedef enum _osmv_txn_rmpp_state {
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
OSMV_TXN_RMPP_NONE = 0, /* Not part of RMPP transaction */
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
OSMV_TXN_RMPP_SENDER,
|
|
Packit Service |
54dbc3 |
OSMV_TXN_RMPP_RECEIVER
|
|
Packit Service |
54dbc3 |
} osmv_txn_rmpp_state_t;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
typedef struct _osmv_rmpp_txfr {
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
osmv_txn_rmpp_state_t rmpp_state;
|
|
Packit Service |
54dbc3 |
boolean_t is_rmpp_init_by_peer;
|
|
Packit Service |
54dbc3 |
osmv_rmpp_send_ctx_t *p_rmpp_send_ctx;
|
|
Packit Service |
54dbc3 |
osmv_rmpp_recv_ctx_t *p_rmpp_recv_ctx;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
} osmv_rmpp_txfr_t;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
typedef struct _osmv_txn_ctx {
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* The original Transaction ID */
|
|
Packit Service |
54dbc3 |
uint64_t tid;
|
|
Packit Service |
54dbc3 |
/* The key by which the Transaction is stored */
|
|
Packit Service |
54dbc3 |
uint64_t key;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* RMPP Send/Receive contexts, if applicable */
|
|
Packit Service |
54dbc3 |
osmv_rmpp_txfr_t rmpp_txfr;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* A MAD that was sent during the transaction (request or response) */
|
|
Packit Service |
54dbc3 |
osm_madw_t *p_madw;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* Reference to a log to enable tracing */
|
|
Packit Service |
54dbc3 |
osm_log_t *p_log;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
} osmv_txn_ctx_t;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
typedef struct _osmv_txn_mgr {
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* Container of all the transactions */
|
|
Packit Service |
54dbc3 |
cl_qmap_t *p_txn_map;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* The timeouts DB */
|
|
Packit Service |
54dbc3 |
cl_event_wheel_t *p_event_wheel;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* Reference to a log to enable tracing */
|
|
Packit Service |
54dbc3 |
osm_log_t *p_log;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
} osmv_txn_mgr_t;
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* * * * * * * osmv_txn_ctx_t functions * * * * * * * * */
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_init
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* allocs & inits the osmv_txn_ctx obj and insert it into the db
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t
|
|
Packit Service |
54dbc3 |
osmv_txn_init(IN osm_bind_handle_t h_bind,
|
|
Packit Service |
54dbc3 |
IN uint64_t tid, IN uint64_t key, OUT osmv_txn_ctx_t ** pp_txn);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_rmpp_txfr_init_sender
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* init the rmpp send ctx in the transaction
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t
|
|
Packit Service |
54dbc3 |
osmv_txn_init_rmpp_sender(IN osm_bind_handle_t h_bind,
|
|
Packit Service |
54dbc3 |
IN osmv_txn_ctx_t * p_txn, IN osm_madw_t * p_madw);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_rmpp_txfr_init_receiver
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* init the rmpp recv ctx in the transaction
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t
|
|
Packit Service |
54dbc3 |
osmv_txn_init_rmpp_receiver(IN osm_bind_handle_t h_bind,
|
|
Packit Service |
54dbc3 |
IN osmv_txn_ctx_t * p_txn,
|
|
Packit Service |
54dbc3 |
IN boolean_t is_init_by_peer);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_done
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* destroys txn object and removes it from the db
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void
|
|
Packit Service |
54dbc3 |
osmv_txn_done(IN osm_bind_handle_t h_bind,
|
|
Packit Service |
54dbc3 |
IN uint64_t key, IN boolean_t is_in_cb);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_get_tid
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns tid of the transaction
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline uint64_t osmv_txn_get_tid(IN osmv_txn_ctx_t * p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->tid;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_get_key
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns key of the transaction
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
static inline uint64_t osmv_txn_get_key(IN osmv_txn_ctx_t * p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->key;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_is_rmpp_init_by_peer
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns whether the rmpp txfr was init by the peer
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline boolean_t osmv_txn_is_rmpp_init_by_peer(IN osmv_txn_ctx_t * p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->rmpp_txfr.is_rmpp_init_by_peer;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_get_rmpp_send_ctx
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns osmv_rmpp_send_ctx obj
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline osmv_rmpp_send_ctx_t *osmv_txn_get_rmpp_send_ctx(IN osmv_txn_ctx_t
|
|
Packit Service |
54dbc3 |
* p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->rmpp_txfr.p_rmpp_send_ctx;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_get_rmpp_recv_ctx
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns osmv_rmpp_recv_ctx obj
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline osmv_rmpp_recv_ctx_t *osmv_txn_get_rmpp_recv_ctx(IN osmv_txn_ctx_t
|
|
Packit Service |
54dbc3 |
* p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->rmpp_txfr.p_rmpp_recv_ctx;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_get_rmpp_state
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns the rmpp role of the transactino ( send/ recv)
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline osmv_txn_rmpp_state_t
|
|
Packit Service |
54dbc3 |
osmv_txn_get_rmpp_state(IN osmv_txn_ctx_t * p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->rmpp_txfr.rmpp_state;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_set_rmpp_state
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* sets the rmpp role of the transaction (send/ recv)
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline void
|
|
Packit Service |
54dbc3 |
osmv_txn_set_rmpp_state(IN osmv_txn_ctx_t * p_txn,
|
|
Packit Service |
54dbc3 |
IN osmv_txn_rmpp_state_t state)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
p_txn->rmpp_txfr.rmpp_state = state;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_get_madw
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* returns the requester madw
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline osm_madw_t *osmv_txn_get_madw(IN osmv_txn_ctx_t * p_txn)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
return p_txn->p_madw;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_set_madw
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* sets the requester madw
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline void
|
|
Packit Service |
54dbc3 |
osmv_txn_set_madw(IN osmv_txn_ctx_t * p_txn, IN osm_madw_t * p_madw)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
CL_ASSERT(NULL != p_txn);
|
|
Packit Service |
54dbc3 |
p_txn->p_madw = p_madw;
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_set_timeout_ev
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t
|
|
Packit Service |
54dbc3 |
osmv_txn_set_timeout_ev(IN osm_bind_handle_t h_bind,
|
|
Packit Service |
54dbc3 |
IN uint64_t key, IN uint64_t msec);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_remove_timeout_ev
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osmv_txn_remove_timeout_ev(IN osm_bind_handle_t h_bind, IN uint64_t key);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txn_lookup
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* get a transaction by its key
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t
|
|
Packit Service |
54dbc3 |
osmv_txn_lookup(IN osm_bind_handle_t h_bind,
|
|
Packit Service |
54dbc3 |
IN uint64_t key, OUT osmv_txn_ctx_t ** pp_txn);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
void osmv_txn_abort_rmpp_txns(IN osm_bind_handle_t h_bind);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/* * * * * * * * * * * * */
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txnmgr_init
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* c'tor for txn mgr obj
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t
|
|
Packit Service |
54dbc3 |
osmv_txnmgr_init(IN osmv_txn_mgr_t * p_tx_mgr,
|
|
Packit Service |
54dbc3 |
IN osm_log_t * p_log, IN cl_spinlock_t * p_lock);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osmv_txnmgr_done
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* c'tor for txn mgr obj
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osmv_txnmgr_done(IN osm_bind_handle_t h_bind);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
void osmv_txn_lock(IN osm_bind_handle_t h_bind);
|
|
Packit Service |
54dbc3 |
void osmv_txn_unlock(IN osm_bind_handle_t h_bind);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
inline static uint64_t osmv_txn_uniq_key(IN uint64_t tid)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
uint64_t pid = getpid();
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
return ((pid << 32) | (tid & 0xFFFFFFFF));
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
END_C_DECLS
|
|
Packit Service |
54dbc3 |
#endif /* _OSMV_TXN_H_ */
|