⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cg12.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic  char sccsid[] = "@(#)cg12.c 1.1 92/07/30 Copyr 1990 Sun Micro";#endif/* * Copyright (c) 1990 by Sun Microsystems, Inc. *//**********************************************************************//* Include files *//**********************************************************************/#include <stdio.h>#include <strings.h>#include <sdrtns.h>     /* sdrtns.h should always be included */#include <libonline.h>  /* online library include */#include <esd.h>#include <cg12.h>/**********************************************************************//* External variables *//**********************************************************************/externchar			*timestamp();externchar			*timestamp(),			*sprintf(),			*func_namer,			*device_name,			*test_name;externstruct test		sb_testlist[];externchar			*routine_msg,			*routine_msg1,			*test_usage_msg;/**********************************************************************//*  Global variables *//**********************************************************************/char			*program_name;int			chksum_gen = 0;	/* flag for test images					generation or verification */int			chksum_dump = 0;	/* flag for to dump					screen *//**********************************************************************//* Static variables *//**********************************************************************/staticint			errcnt;staticchar			textbuf[512];staticint			sub = -1,			sl = 1,			bl = 1;/**********************************************************************/main (argc, argv)/**********************************************************************/int argc;char **argv;{    extern int process_test_args();    extern int routine_usage();    program_name = argv[0];    test_name = argv[0];    device_name = FRAME_BUFFER_DEVICE_NAME;    func_name = "main";    TRACE_IN    /* Start with test_init to enter sundiag environment */    (void)test_init(argc, argv, process_test_args, routine_usage,							test_usage_msg);    (void)run_tests(sub, sl, bl);    /* make cg12 device is closed normally */    (void)close_gp();    if (errcnt > 0) {	TRACE_OUT	exit(1);    } else {	TRACE_OUT	(void)test_end();    }}/**********************************************************************/pmessage(inftext)/**********************************************************************/char *inftext;{    extern int verbose;    func_name = "pmessage";    TRACE_IN    if (verbose) {	(void)fb_send_message(SKIP_ERROR, VERBOSE, inftext);    }    TRACE_OUT}/**********************************************************************/tmessage(text)/**********************************************************************/char *text;{    func_name = "tmessage";    TRACE_IN    pmessage(timestamp(text));    TRACE_OUT}/**********************************************************************/error_report(errtxt)/**********************************************************************/char *errtxt;{    func_name = "error_report";    TRACE_IN    (void)fb_send_message(SKIP_ERROR, ERROR, errtxt);    errcnt++;     if (errcnt > ERROR_LIMIT) {	(void)fb_send_message(EGRET_FATAL_ERROR, FATAL, "Too many errors.");    }    TRACE_OUT}/**********************************************************************/fatal_error_exit(errtxt)/**********************************************************************/char *errtxt;{    func_name = "fatal_error_exit";    TRACE_IN    (void)clean_up();    (void)fb_send_message(EGRET_FATAL_ERROR, FATAL, errtxt);    TRACE_OUT}/**********************************************************************/clean_up()/**********************************************************************/{    func_name = "clean_up";    TRACE_IN    (void)close_gp();    (void)unlock_desktop();    TRACE_OUT}/**********************************************************************/process_test_args(argv, arrcount)/**********************************************************************/char    *argv[];int     arrcount;{    func_name = "process_test_args";    TRACE_IN    if (strncmp(argv[arrcount], "D=", 2) == 0) {	device_name = argv[arrcount]+2;	TRACE_OUT	return TRUE;    } else if (strncmp(argv[arrcount], "S=", 2) == 0) {	sub = atoi(argv[arrcount]+2);	TRACE_OUT	return TRUE;    } else if (strncmp(argv[arrcount], "F=", 2) == 0) {	sl = atoi(argv[arrcount]+2);	TRACE_OUT	return TRUE;    } else if (strncmp(argv[arrcount], "B=", 2) == 0) {	bl = atoi(argv[arrcount]+2);	TRACE_OUT	return TRUE;    } else if (strncmp(argv[arrcount], "write", 5) == 0) {	chksum_gen = 1;	TRACE_OUT	return TRUE;    } else if (strncmp(argv[arrcount], "dump", 4) == 0) {	chksum_dump = 1;	TRACE_OUT	return TRUE;    } else {	TRACE_OUT	return FALSE;    }}/**********************************************************************/routine_usage()/**********************************************************************/{        func_name = "routine_usage";    TRACE_IN    (void)send_message(SKIP_ERROR, CONSOLE, routine_msg, test_name);    (void)send_message(SKIP_ERROR, CONSOLE, routine_msg1);    TRACE_OUT}/**********************************************************************/run_tests(tconfig, flc, blc)/**********************************************************************/int tconfig;int flc;int blc;{    extern int quick_test;    struct test *tl;    int it;    int sc;    int bc;    char *errmsg;    func_name = "run_tests";    TRACE_IN    (void)lock_desktop(device_name);    if (quick_test) {	tconfig = 1;	flc = 1;	blc = 1;    }    for(bc = blc ; bc ; bc--) {	for (tl = sb_testlist, it = 1; tl ; tl = tl->nexttest, it *=2) {	    if (it & tconfig) {		for(sc = flc ; sc ; sc--) {		    errmsg = (tl->proc)();		    (void)sprintf(textbuf, "%s: ", tl->testname);		    (void)strcpy(textbuf, textbuf);		    if (errmsg) {			(void)strcat(textbuf, "*** ");			(void)strcat(textbuf, errmsg);			error_report(textbuf);		    } else {			(void)strcat(textbuf, "ok.\n");			pmessage(textbuf);		    }		}	    }	}    }    (void)unlock_desktop();    TRACE_OUT}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -