/\ can be used for FFDC. \/
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
#pragma exception_handler (UNEXPECTED_HDLR, ffdc_info, ð, _C2_MH_ESCAPE)
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
/\ Set the pointer to null, then try to increment. This will \/
/\ generate an MCH36ð1 error that will be trapped by the \/
/\ unexpected handler. \/
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
nulptr = NULL;
nulptr++;
#pragma disable_handler
} /\ main \/
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
/\ FUNCTION NAME: UNEXPECTED_HDLR \/
/\ \/
/\ FUNCTION: Handle unexpected exception. This exception \/
/\ handler is used to log the software error via \/
/\ FFDC. \/
/\ \/
/\ INPUT: Interrupt handler information \/
/\ \/
/\ OUTPUT: NONE \/
/\ \/
/\ EXCEPTIONS: CPFxxxx - All unexpected CPF exceptions \/
/\ MCHxxxx - All unexpected MCH exceptions \/
/\ \/
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
void UNEXPECTED_HDLR(_INTRPT_Hndlr_Parms_T \errmsg)
{
typedef struct {
char obj_name[];
char obj_lib[];
char obj_type[];
} obj_info_t;
typedef struct {
int data_offset;
int data_length;
} data_info_t;
char pgm_suspected[],
msg_id[12],
msg_key[4],
print_job_log,
data[2\(sizeof(char \))],
\data_item,
ile_mod_name[11];
int point_of_failure,
num_items,
num_objs;
data_info_t data_info[2];
obj_info_t obj_info[1];
6-4 System API Programming V4R1