fis-gtm/sr_port/gvcst_jrt_null.c

73 lines
2.1 KiB
C

/****************************************************************
* *
* Copyright 2012 Fidelity Information Services, Inc *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#include "mdef.h"
#include "gdsroot.h"
#include "gdsblk.h"
#include "gtm_facility.h"
#include "fileinfo.h"
#include "gdsbt.h"
#include "gdsfhead.h"
#include "filestruct.h" /* needed for jnl.h */
#include "gdscc.h" /* needed for jnl.h */
#include "jnl.h"
#include "t_end.h" /* prototypes */
#include "t_retry.h"
#include "t_begin.h"
#include "gvcst_jrt_null.h" /* for gvcst_jrt_null prototype */
#include "jnl_get_checksum.h"
GBLREF jnl_format_buffer *non_tp_jfb_ptr;
GBLREF jnl_gbls_t jgbl;
#ifdef DEBUG
GBLREF uint4 dollar_tlevel;
GBLREF gd_region *gv_cur_region;
GBLREF sgmnt_addrs *cs_addrs;
GBLREF unsigned int t_tries;
#endif
error_def(ERR_JRTNULLFAIL);
void gvcst_jrt_null()
{
enum cdb_sc status;
struct_jrec_null *rec;
assert(NULL != gv_cur_region);
assert(NULL != cs_addrs);
assert(cs_addrs == &FILE_INFO(gv_cur_region)->s_addrs);
t_begin(ERR_JRTNULLFAIL, UPDTRNS_DB_UPDATED_MASK);
assert(!dollar_tlevel);
assert(t_tries < CDB_STAGNATE || cs_addrs->now_crit); /* we better hold crit in the final retry */
non_tp_jfb_ptr->rectype = JRT_NULL;
non_tp_jfb_ptr->record_size = NULL_RECLEN;
non_tp_jfb_ptr->checksum = INIT_CHECKSUM_SEED;
rec = (struct_jrec_null *)non_tp_jfb_ptr->buff;
rec->prefix.jrec_type = JRT_NULL;
rec->prefix.forwptr = NULL_RECLEN;
rec->prefix.checksum = INIT_CHECKSUM_SEED;
rec->suffix.backptr = NULL_RECLEN;
rec->suffix.suffix_code = JNL_REC_SUFFIX_CODE;
rec->filler = 0;
jgbl.cumul_jnl_rec_len = NULL_RECLEN;
/* The rest of the initialization is taken care of by jnl_write_logical (invoked in t_end below) */
DEBUG_ONLY(jgbl.cumul_index = 1;)
for (;;)
{
DEBUG_ONLY(jgbl.cu_jnl_index = 0;)
if ((trans_num)0 == t_end(NULL, NULL, TN_NOT_SPECIFIED))
continue;
return;
}
}