Example #1
0
int main(int argc, char *argv[])
{
	DCL_THREADGBL_ACCESS;

	GTM_THREADGBL_INIT;
	set_blocksig();
	gtm_imagetype_init(DSE_IMAGE);
	gtm_wcswidth_fnptr = gtm_wcswidth;
	gtm_env_init();	/* read in all environment variables */
	licensed = TRUE;
	TREF(transform) = TRUE;
	op_open_ptr = op_open;
	patch_curr_blk = get_dir_root();
	err_init(util_base_ch);
	GTM_ICU_INIT_IF_NEEDED;	/* Note: should be invoked after err_init (since it may error out) and before CLI parsing */
	sig_init(generic_signal_handler, dse_ctrlc_handler, suspsigs_handler);
	atexit(util_exit_handler);
	SET_LATCH_GLOBAL(&defer_latch, LOCK_AVAILABLE);
	get_page_size();
	stp_init(STP_INITSIZE);
	rts_stringpool = stringpool;
	getjobname();
	INVOKE_INIT_SECSHR_ADDRS;
	getzdir();
	prealloc_gt_timers();
	initialize_pattern_table();
	gvinit();
	region_init(FALSE);
	INIT_GBL_ROOT(); /* Needed for GVT initialization */
	getjobnum();
	util_out_print("!/File  !_!AD", TRUE, DB_LEN_STR(gv_cur_region));
	util_out_print("Region!_!AD!/", TRUE, REG_LEN_STR(gv_cur_region));
	cli_lex_setup(argc, argv);
	CREATE_DUMMY_GBLDIR(gd_header, original_header, gv_cur_region, gd_map, gd_map_top);
	gtm_chk_dist(argv[0]);
#	ifdef DEBUG
	if ((gtm_white_box_test_case_enabled && (WBTEST_SEMTOOLONG_STACK_TRACE == gtm_white_box_test_case_number) ))
	{
		sgmnt_addrs     * csa;
		node_local_ptr_t cnl;
		csa = &FILE_INFO(gv_cur_region)->s_addrs;
		cnl = csa->nl;
		cnl->wbox_test_seq_num  = 1; /*Signal the first step and wait here*/
		while (2 != cnl->wbox_test_seq_num) /*Wait for another process to get hold of the semaphore and signal next step*/
			LONG_SLEEP(10);
	}
#	endif
	if (argc < 2)
                display_prompt();
	io_init(TRUE);
	while (1)
	{
		if (!dse_process(argc))
			break;
		display_prompt();
	}
	dse_exit();
	REVERT;
}
Example #2
0
int main (int argc, char **argv)
{
	int		res;
	DCL_THREADGBL_ACCESS;

	GTM_THREADGBL_INIT;
	set_blocksig();
	gtm_imagetype_init(MUPIP_IMAGE);
	invocation_mode = MUMPS_UTILTRIGR;
	gtm_wcswidth_fnptr = gtm_wcswidth;
	gtm_env_init();	/* read in all environment variables */
	err_init(util_base_ch);
	UNICODE_ONLY(gtm_strToTitle_ptr = &gtm_strToTitle);
	GTM_ICU_INIT_IF_NEEDED;	/* Note: should be invoked after err_init (since it may error out) and before CLI parsing */
	sig_init(generic_signal_handler, NULL, suspsigs_handler, continue_handler);	/* Note: no ^C handler is defined (yet) */
	atexit(mupip_exit_handler);
	licensed = TRUE;
	in_backup = FALSE;
	op_open_ptr = mu_op_open;
	mu_get_term_characterstics();
	cli_lex_setup(argc,argv);
	if (argc < 2)			/* Interactive mode */
		display_prompt();
	/*      this call should be after cli_lex_setup() due to S390 A/E conversion    */
	gtm_chk_dist(argv[0]);
	INIT_GBL_ROOT(); /* Needed for GVT initialization */
	init_gtm();
	while (TRUE)
	{	func = 0;
		if ((res = parse_cmd()) == EOF)
			break;
		else if (res)
		{
			if (1 < argc)
				rts_error(VARLSTCNT(4) res, 2, LEN_AND_STR(cli_err_str));
			else
				gtm_putmsg(VARLSTCNT(4) res, 2, LEN_AND_STR(cli_err_str));
		}
		if (func)
			func();
		if (argc > 1)		/* Non-interactive mode, exit after command */
			break;
		display_prompt();
	}
	mupip_exit(SS_NORMAL);
}
Example #3
0
File: lke.c Project: indera/fis-gtm
int main (int argc, char *argv[])
{
    DCL_THREADGBL_ACCESS;

    GTM_THREADGBL_INIT;
    set_blocksig();
    gtm_imagetype_init(LKE_IMAGE);
    gtm_wcswidth_fnptr = gtm_wcswidth;
    gtm_env_init();	/* read in all environment variables */
    licensed = TRUE;
    err_init(util_base_ch);
    GTM_ICU_INIT_IF_NEEDED;	/* Note: should be invoked after err_init (since it may error out) and before CLI parsing */
    sig_init(generic_signal_handler, lke_ctrlc_handler, suspsigs_handler);
    atexit(util_exit_handler);
    SET_LATCH_GLOBAL(&defer_latch, LOCK_AVAILABLE);
    get_page_size();
    stp_init(STP_INITSIZE);
    rts_stringpool = stringpool;
    getjobname();
    INVOKE_INIT_SECSHR_ADDRS;
    getzdir();
    prealloc_gt_timers();
    initialize_pattern_table();
    gvinit();
    region_init(TRUE);
    getjobnum();

    cli_lex_setup(argc, argv);
    /*      this should be after cli_lex_setup() due to S390 A/E conversion    */
    gtm_chk_dist(argv[0]);

    while (1)
    {
        if (!lke_process(argc) || 2 <= argc)
            break;
    }
    lke_exit();
}
Example #4
0
/* On OSF/1 (Digital Unix), pointers are 64 bits wide; the only exception to this is C programs for which one may
 * specify compiler and link editor options in order to use (and allocate) 32-bit pointers.  However, since C is
 * the only exception and, in particular because the operating system does not support such an exception, the argv
 * array passed to the main program is an array of 64-bit pointers.  Thus the C program needs to declare argv[]
 * as an array of 64-bit pointers and needs to do the same for any pointer it sets to an element of argv[].
 */
int main(int argc, char_ptr_t argv[])
{
    omi_conn	 *cptr, conn;
    int		  i;
    char	  buff[OMI_BUFSIZ];
    DCL_THREADGBL_ACCESS;

    GTM_THREADGBL_INIT;
    set_blocksig();
    gtm_env_init(); /* read in all environment variables before calling any function particularly malloc (from err_init below)*/
/*  Open the packet log file for playback */
    if (argc == 1)
	conn.fd = fileno(stdin);
    else if (argc == 2) {
	if (INV_FD_P((conn.fd = open(argv[argc - 1], O_RDONLY))))
	{
	    PRINTF("%s: open(\"%s\"): %s\n", argv[0], argv[argc - 1],
		   STRERROR(errno));
	    exit(-1);
	}
    }
    else {
	PRINTF("%s: bad command line arguments\n\t%s [ filename ]\n",
	       argv[0], argv[0]);
	exit(-1);
    }

/*  Initialize everything but the network */
    err_init(gtcm_exit_ch);
    omi_errno = OMI_ER_NO_ERROR;
    ESTABLISH_RET(omi_dbms_ch, -1);	/* any return value to signify error return */
    gtcm_init(argc, argv);
#ifdef GTCM_RC
    rc_create_cpt();
#endif
    REVERT;
    if (omi_errno != OMI_ER_NO_ERROR)
	exit(omi_errno);
/*  Initialize the connection structure */
    conn.next   = (omi_conn *)0;
    conn.bsiz   = OMI_BUFSIZ;
    conn.bptr   = conn.buff   = buff;
    conn.xptr   = (char *)0;
    conn.blen   = 0;
    conn.exts   = 0;
    conn.state  = OMI_ST_DISC;
    conn.ga     = (ga_struct *)0;	/* struct gd_addr_struct */
    conn.of     = (oof_struct *)0;	/* struct rc_oflow */
    conn.pklog  = FD_INVALID;
/*  Initialize the statistics */
    conn.stats.bytes_recv = 0;
    conn.stats.bytes_send = 0;
    conn.stats.start      = time((time_t *)0);
    for (i = 0; i < OMI_OP_MAX; i++)
	conn.stats.xact[i] = 0;
    for (i = 0; i < OMI_ER_MAX; i++)
	conn.stats.errs[i] = 0;

    for (;;)
	if (omi_srvc_xact(&conn) < 0)
	    break;

    PRINTF("%ld seconds connect time\n", time((time_t)0) - conn.stats.start);
    PRINTF("%d OMI transactions\n", omi_nxact);
    PRINTF("%d OMI errors\n", omi_nerrs);
#ifdef GTCM_RC
    PRINTF("%d RC transactions\n", rc_nxact);
    PRINTF("%d RC errors\n", rc_nerrs);
#endif /* defined(GTCM_RC) */
    PRINTF("%d bytes recv'd\n", conn.stats.bytes_recv);
    PRINTF("%d bytes sent\n", conn.stats.bytes_send);

    gtcm_exit();

    return 0;

}