102 lines
2.6 KiB
C
102 lines
2.6 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2005, 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_stdlib.h"
|
|
#ifdef VMS
|
|
#include <descrip.h>
|
|
#endif
|
|
|
|
#include "gdsroot.h"
|
|
#include "v15_gdsroot.h"
|
|
#include "gtm_facility.h"
|
|
#include "fileinfo.h"
|
|
#include "gdsbt.h"
|
|
#include "v15_gdsbt.h"
|
|
#include "gdsblk.h"
|
|
#include "gdsfhead.h"
|
|
#include "v15_gdsfhead.h"
|
|
#include "gdsblkops.h"
|
|
#include "error.h"
|
|
#include "gtmimagename.h"
|
|
#include "filestruct.h"
|
|
#include "v15_filestruct.h"
|
|
#include "dbcertify.h"
|
|
|
|
GBLREF boolean_t need_core;
|
|
GBLREF boolean_t created_core;
|
|
GBLREF boolean_t dont_want_core;
|
|
GBLREF int4 exi_condition;
|
|
GBLREF int4 error_condition;
|
|
GBLREF enum gtmImageTypes image_type;
|
|
|
|
error_def(ERR_ASSERT);
|
|
error_def(ERR_GTMASSERT);
|
|
error_def(ERR_GTMASSERT2);
|
|
error_def(ERR_GTMCHECK);
|
|
error_def(ERR_MEMORY);
|
|
error_def(ERR_OUTOFSPACE);
|
|
error_def(ERR_STACKOFLOW);
|
|
error_def(ERR_VMSMEMORY);
|
|
VMS_ONLY(error_def(ERR_DBCNOFINISH);)
|
|
|
|
CONDITION_HANDLER(dbcertify_base_ch)
|
|
{
|
|
VMS_ONLY(
|
|
unsigned short msglen;
|
|
uint4 status;
|
|
unsigned char msginfo[4];
|
|
unsigned char msg_buff[MAX_MSG_SIZE + 1];
|
|
$DESCRIPTOR(msgbuf, msg_buff);
|
|
)
|
|
|
|
START_CH;
|
|
PRN_ERROR;
|
|
if (SUCCESS == SEVERITY || INFO == SEVERITY)
|
|
{
|
|
CONTINUE;
|
|
} else
|
|
{
|
|
UNIX_ONLY(
|
|
if ((DUMPABLE) && !SUPPRESS_DUMP)
|
|
{
|
|
need_core = TRUE;
|
|
gtm_fork_n_core();
|
|
}
|
|
/* rts_error sets error_condition, and dbcertify_base_ch is called only if
|
|
* exiting thru rts_error. Setup exi_condition to reflect error
|
|
* exit status. Note, if the last eight bits (the only relevant bits
|
|
* for Unix exit status) of error_condition is non-zero in case of
|
|
* errors, we make sure that an error exit status (non-zero value -1)
|
|
* is setup. This is a hack.
|
|
*/
|
|
if (0 == exi_condition)
|
|
exi_condition = (((error_condition & UNIX_EXIT_STATUS_MASK) != 0) ? error_condition : -1);
|
|
)
|
|
VMS_ONLY(
|
|
if ((DUMPABLE) && !SUPPRESS_DUMP)
|
|
{
|
|
gtm_dump();
|
|
TERMINATE;
|
|
}
|
|
exi_condition = SIGNAL;
|
|
/* following is a hack to avoid FAO directives getting printed without expanding
|
|
* in the error message during EXIT()
|
|
*/
|
|
if (IS_GTM_ERROR(SIGNAL))
|
|
exi_condition = ERR_DBCNOFINISH;
|
|
)
|
|
UNSUPPORTED_PLATFORM_CHECK;
|
|
EXIT(exi_condition);
|
|
}
|
|
}
|