fis-gtm/sr_port/zro_init.c

58 lines
1.6 KiB
C

/****************************************************************
* *
* Copyright 2001, 2011 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 "gtm_string.h"
#include "iosp.h"
#include "io.h"
#include "zroutines.h"
#include "trans_log_name.h"
#include "gtm_logicals.h"
error_def(ERR_LOGTOOLONG);
#define MAX_NUMBER_FILENAMES 256*MAX_TRANS_NAME_LEN
void zro_init (void)
{
int4 status;
mstr val, tn;
char buf1[MAX_NUMBER_FILENAMES]; /* buffer to hold translated name */
DCL_THREADGBL_ACCESS;
SETUP_THREADGBL_ACCESS;
if ((TREF(dollar_zroutines)).addr)
free((TREF(dollar_zroutines)).addr);
val.addr = GTM_ZROUTINES;
val.len = SIZEOF(GTM_ZROUTINES) - 1;
status = TRANS_LOG_NAME(&val, &tn, buf1, SIZEOF(buf1), dont_sendmsg_on_log2long);
if ((SS_NORMAL != status) && (SS_NOLOGNAM != status))
{
# ifdef UNIX
if (SS_LOG2LONG == status)
rts_error(VARLSTCNT(5) ERR_LOGTOOLONG, 3, val.len, val.addr, SIZEOF(buf1) - 1);
else
# endif
rts_error(VARLSTCNT(1) status);
}
if (status == SS_NOLOGNAM)
(TREF(dollar_zroutines)).len = 0;
else
{
(TREF(dollar_zroutines)).len = tn.len;
(TREF(dollar_zroutines)).addr = (char *)malloc (tn.len);
memcpy ((TREF(dollar_zroutines)).addr, buf1, tn.len);
}
zro_load(TADR(dollar_zroutines));
}