fis-gtm/sr_port/db_common_init.c

53 lines
1.8 KiB
C

/****************************************************************
* *
* Copyright 2001, 2009 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. *
* *
****************************************************************/
/* This is the routine used by both db_init() and mu_rndwn_file() for initializing appropriate structures. */
#include "mdef.h"
#include "gtm_string.h"
#include "gdsroot.h"
#include "gtm_facility.h"
#include "fileinfo.h"
#include "gdsbt.h"
#include "gdsfhead.h"
#include "filestruct.h"
#include "iosp.h"
#include "jnl.h"
GBLREF jnl_process_vector *prc_vec;
void db_common_init(gd_region *reg, sgmnt_addrs *csa, sgmnt_data_ptr_t csd)
{
csa->bmm = MM_ADDR(csd);
csa->reorg_last_dest = 0; /* For mupip reorg swap operation */
csa->region = reg; /* initialize the back-link */
reg->max_rec_size = csd->max_rec_size;
reg->max_key_size = csd->max_key_size;
reg->null_subs = csd->null_subs;
reg->std_null_coll = csd->std_null_coll;
reg->jnl_state = csd->jnl_state;
reg->jnl_file_len = csd->jnl_file_len; /* journal file name length */
memcpy(reg->jnl_file_name, csd->jnl_file_name, reg->jnl_file_len); /* journal file name */
reg->jnl_alq = csd->jnl_alq;
reg->jnl_deq = csd->jnl_deq;
reg->jnl_buffer_size = csd->jnl_buffer_size;
reg->jnl_before_image = csd->jnl_before_image;
bt_init(csa);
/* Initialization of prc_vec is done even for no journaling. gtcm uses this always. Others might need it too. */
if (NULL == prc_vec)
{
prc_vec = (jnl_process_vector *)malloc(SIZEOF(jnl_process_vector));
jnl_prc_vector(prc_vec);
}
}