예제 #1
0
파일: log.c 프로젝트: dnstap/knot
int log_init()
{
	/* Initialize globals. */
	LOG_FCL = 0;
	LOG_FCL_SIZE = 0;
	LOG_FDS = 0;
	LOG_FDS_OPEN = 0;

	/* Setup initial state. */
	int ret = KNOT_EOK;
	int emask = LOG_MASK(LOG_WARNING)|LOG_MASK(LOG_ERR)|LOG_MASK(LOG_FATAL);
	int imask = LOG_MASK(LOG_INFO)|LOG_MASK(LOG_NOTICE);

	/* Add debug messages. */
	emask |= LOG_MASK(LOG_DEBUG);

	ret = log_setup(0);
	log_levels_set(LOGT_SYSLOG, LOG_ANY, emask);
	log_levels_set(LOGT_STDERR, LOG_ANY, emask);
	log_levels_set(LOGT_STDOUT, LOG_ANY, imask);

	setlogmask(LOG_UPTO(LOG_DEBUG));
	openlog(PACKAGE_NAME, LOG_PID, LOG_DAEMON);
	return ret;
}
예제 #2
0
파일: main.c 프로젝트: viettd56/SA
void init(char *name, char *pass, int port)
{
    signal_setup();
    memset(&config, 0, sizeof(config));

    // set defaults
    config.buffer_start_fill = 220;
    config.port = port;
    config.password = pass;
    config.apname = name;
    if (config.daemonise)
    {
        daemon_init();
    }

    log_setup();
    config.output = audio_get_output(config.output_name);
    config.output->init();

    uint8_t ap_md5[16];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, config.apname, strlen(config.apname));
    MD5_Final(ap_md5, &ctx);
    memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));
    if (config.meta_dir)
        metadata_open();

    rtsp_listen_loop();
}
예제 #3
0
static int
Turbine_Init_Cmd(ClientData cdata, Tcl_Interp *interp,
                 int objc, Tcl_Obj *const objv[])
{
  TCL_ARGS(4);
  int amserver, rank, size;

  get_tcl_version();

  int rc;
  rc = Tcl_GetIntFromObj(interp, objv[1], &amserver);
  TCL_CHECK(rc);
  rc = Tcl_GetIntFromObj(interp, objv[2], &rank);
  TCL_CHECK(rc);
  rc = Tcl_GetIntFromObj(interp, objv[3], &size);
  TCL_CHECK(rc);

  turbine_code code = turbine_init(amserver, rank, size);
  if (code != TURBINE_SUCCESS)
  {
    Tcl_AddErrorInfo(interp, " Could not initialize Turbine!\n");
    return TCL_ERROR;
  }

  log_setup(rank);

  return TCL_OK;
}
예제 #4
0
void setup() {
#if ENABLE_LOGGER
	log_setup();
#endif

	storage = new Storage();

	Serial.begin(SERIAL_SPEED);
	while (!Serial) {
	}
}
예제 #5
0
파일: main.cpp 프로젝트: lvalerom/LOG
int main(int argc, char* argv[])
{
    log_setup(0,"cids.conf","clog.conf","qwerty.log",true);
    log_trace("canal") << "traza";
    log_debug("canal") << "debug";
    log_info("canal") << "info " << 12 << " " << 2.9;
    log_warning("canal") << "warning";
    log_error("canal") << "error";
    log_fatal("canal") << "fatal";
    log_error("asdf") << "asdf traza";
    log_debug("net") << "net traza";
    return 0;
}
예제 #6
0
파일: nltool.c 프로젝트: dinkc64/mame
    void read_netlist(const char *buffer, pstring name)
    {
        // read the netlist ...

        m_setup->register_source(palloc(netlist::netlist_source_mem_t, buffer));
        m_setup->include(name);
        log_setup();

        // start devices
        m_setup->start_devices();
        m_setup->resolve_inputs();
        // reset
        this->reset();
    }
예제 #7
0
파일: nltool.cpp 프로젝트: dinoue/mame
	void read_netlist(const pstring &filename, const pstring &name)
	{
		// read the netlist ...

		m_setup->register_source(std::make_shared<netlist::source_file_t>(filename));
		m_setup->include(name);
		log_setup();

		// start devices
		m_setup->start_devices();
		m_setup->resolve_inputs();
		// reset
		this->reset();
	}
예제 #8
0
int main(){
	output_stream_t os = os_new_capture(4096);
	//output_stream_t os = os_new(stderr);
	log_setup(LOG_INFO, &os);
	
	info("test info: %d", 123);
	test(strcmp(os.buffer_ptr, "[info in logger_test.c:13 main()]: test info: 123\n") == 0, "expected the first log message but got %s", os.buffer_ptr);
	warn("test warning: %d, %s", 123, "hello");
	test(strcmp(os.buffer_ptr, "[info in logger_test.c:13 main()]: test info: 123\n[warn in logger_test.c:15 main()]: test warning: 123, hello\n") == 0, "expected the first two log messages but got %s", os.buffer_ptr);
	error("test error: %s", "world");
	test(strcmp(os.buffer_ptr, "[info in logger_test.c:13 main()]: test info: 123\n[warn in logger_test.c:15 main()]: test warning: 123, hello\n[ERROR in logger_test.c:17 main()]: test error: world\n") == 0, "expected the first tree log messages but got '%s'", os.buffer_ptr);
	
	os_destroy(&os);
	return show_test_report();
}
예제 #9
0
파일: nltool.c 프로젝트: ef1105/mameplus
	void read_netlist(const char *buffer)
	{
		// read the netlist ...

		netlist_sources_t sources;

		sources.add(netlist_source_t(buffer));
		sources.parse(*m_setup,"");
		//m_setup->parse(buffer);
		log_setup();

		// start devices
		m_setup->start_devices();
		m_setup->resolve_inputs();
		// reset
		this->reset();
	}
예제 #10
0
int main(int argc, char **argv) {
    signal_setup();
    memset(&config, 0, sizeof(config));

    // set defaults
    config.buffer_start_fill = 220;
    config.port = 5002;
    char hostname[100];
    gethostname(hostname, 100);
    config.apname = malloc(20 + 100);
    snprintf(config.apname, 20 + 100, "Shairport on %s", hostname);

    // parse arguments into config
    int audio_arg = parse_options(argc, argv);

    // mDNS supports maximum of 63-character names (we append 13).
    if (strlen(config.apname) > 50)
        die("Supplied name too long (max 50 characters)");

    if (config.daemonise) {
        daemon_init();
    }

    log_setup();

    config.output = audio_get_output(config.output_name);
    if (!config.output) {
        audio_ls_outputs();
        die("Invalid audio output specified!");
    }
    config.output->init(argc-audio_arg, argv+audio_arg);

    uint8_t ap_md5[16];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, config.apname, strlen(config.apname));
    MD5_Final(ap_md5, &ctx);
    memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));


    rtsp_listen_loop();

    // should not.
    shairport_shutdown(1);
    return 1;
}
예제 #11
0
void setup() {
	delay(3000);
	dutil_setup();

#if ENABLE_LOGGER
	log_setup();
#endif
	serialAPI = new SerialAPI();

	ss = setupSelectSlaveLines();
	disp = new Display(8, 3, ss);
	disp->setup();
	disp->clear();
	tempSensor = new TempSensor();
	dateTimeDisplay = new DateTimeDisplay(disp, serialAPI, tempSensor);
	weatherDisplay = new WeatherDisplay(disp, serialAPI);
	brightness = new Brightness(disp);
	tempSensorDriver = new TempSensorDriver(&weatherDisplay->weatherTextArea, tempSensor);

	weatherDisplay->init();
}
예제 #12
0
파일: logger.c 프로젝트: hajuuk/R7000
/*
 * If filename == NULL its for syslog logging, otherwise its for file-logging.
 * "unsetuplog" calls with loglevel == NULL.
 * loglevel == NULL means:
 *    if logtype == default
 *       disable logging
 *    else
 *       set to default logging
 */
static void setuplog_internal(const char *loglevel, const char *logtype, const char *filename)
{
    unsigned int typenum, levelnum;

    /* Parse logtype */
    for( typenum=0; typenum < num_logtype_strings; typenum++) {
        if (strcasecmp(logtype, arr_logtype_strings[typenum]) == 0)
            break;
    }
    if (typenum >= num_logtype_strings) {
        return;
    }

    /* Parse loglevel */
    if (loglevel == NULL) {
        levelnum = 0;
    } else {
        for(levelnum=1; levelnum < num_loglevel_strings; levelnum++) {
            if (strcasecmp(loglevel, arr_loglevel_strings[levelnum]) == 0)
                break;
        }
        if (levelnum >= num_loglevel_strings) {
            return;
        }
    }

    /* is this a syslog setup or a filelog setup ? */
    if (filename == NULL) {
        /* must be syslog */
        syslog_setup(levelnum,
                     typenum,
                     logoption_ndelay | logoption_pid,
                     logfacility_daemon);
    } else {
        /* this must be a filelog */
        log_setup(filename, levelnum, typenum);
    }

    return;
}
예제 #13
0
파일: nltool.cpp 프로젝트: Tauwasser/mame
	void read_netlist(const pstring &filename, const pstring &name,
			const std::vector<pstring> &logs,
			const std::vector<pstring> &defines,
			const std::vector<pstring> &roms)
	{
		// read the netlist ...

		for (auto & d : defines)
			setup().register_define(d);

		for (auto & r : roms)
			setup().register_source(plib::make_unique_base<netlist::source_t, netlist_data_folder_t>(setup(), r));

		setup().register_source(plib::make_unique_base<netlist::source_t,
				netlist::source_file_t>(setup(), filename));
		setup().include(name);
		log_setup(logs);

		// start devices
		this->start();
		// reset
		this->reset();
	}
예제 #14
0
int main(int argc, char **argv) {
    
/*
	struct mpd_connection *conn = NULL;
    conn = mpd_connection_new(NULL, 0, 3000);
	if (conn == NULL) {printf("%s", "Out of memory");	return -1;}
    mpd_run_stop(conn);
	mpd_connection_free(conn);
*/

    signal_setup();
    memset(&config, 0, sizeof(config));

    // set defaults
    config.buffer_start_fill = 220;
    config.port = 5002;
    char hostname[100];
    gethostname(hostname, 100);
    config.apname = malloc(20 + 100);
    snprintf(config.apname, 20 + 100, "%s", hostname);

    // parse arguments into config
    int audio_arg = parse_options(argc, argv);

    // mDNS supports maximum of 63-character names (we append 13).
    if (strlen(config.apname) > 50)
        die("Supplied name too long (max 50 characters)");

    if (config.daemonise) {
        daemon_init();
    }
    	if(ggshutdown)
	{
		if (kill(0, SIGTERM)) {
        	printf("kill(0, SIGTERM))");
    		}
		die("shairport shutted down...!");
	}
	
	printf("stop mpc:\n");
	system("mpc stop");
	printf("mpc stopped\n");
	printf("Starting Shairport %s\n", version);
    log_setup();

    config.output = audio_get_output(config.output_name);
    if (!config.output) {
        audio_ls_outputs();
        die("Invalid audio output specified!");
    }
    config.output->init(argc-audio_arg, argv+audio_arg);

    uint8_t ap_md5[16];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, config.apname, strlen(config.apname));
    MD5_Final(ap_md5, &ctx);
    memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));

    if (config.meta_dir)
        metadata_open();

    rtsp_listen_loop();

    // should not.
    shairport_shutdown(1);
    return 1;
}
예제 #15
0
파일: main.c 프로젝트: viettd56/SA
static void sig_logrotate(int foo, siginfo_t *bar, void *baz)
{
    log_setup();
}
예제 #16
0
파일: main.c 프로젝트: skeezix/zikzak
int main(void) {

  system_cm3_setup();

  log_setup();
  queue_setup();

  init_usart1 ( 38400 ); // initialize USART1 @ 9600 baud
  init_usart2 ( 38400 );
  //USART_puts ( USART1, "Init usart1 complete! Hello World!\r\n" );
  USART_puts ( USART2, "Init usart2 complete! Hello World!\r\n" );

  fb_setup();

#ifdef VGA_DMA
  vga_setup ( VGA_USE_DMA );
#else
  vga_setup ( VGA_NO_DMA );
#endif

  fb_test_pattern ( fb_active, fbt_offset_squares );
  //fb_test_pattern ( fb_active, fbt_vlines );
  //fb_test_pattern ( fb_active, fbt_v1lines );
  //fb_test_pattern ( fb_active, fbt_onoff1 );

  while ( 1 ) {
    // weeeeee!

    // any work for us to do?
#if 1
    if ( vblank ) {

      if ( queueready() ) {
        command_queue_run();
      }

    }
#endif

    // update framebuffers
#if 0
    if ( vblank ) {
      unsigned char i = 0;
      fb_clone ( fb_2, fb_active );
      while ( vblank ) {
        __asm__("nop");
      }
      fb_test_pattern ( fb_2, i & 0x03 );
      i++;
    }
#endif

    // handle queued logs
#if 1
    if ( logready() ) {
      char *log;
      while ( ( log = logpull() ) ) {
        USART_puts ( USART2, log );
      }
    }
#endif

    __asm__("nop");
  }

} // main
예제 #17
0
파일: main.c 프로젝트: skeezix/zikzak
int main(void) {

  system_cm3_setup();

  log_setup();
  queue_setup();

  init_usart1 ( 38400 ); // initialize USART1 @ 9600 baud
  init_usart2 ( 38400 );
  //USART_puts ( USART1, "Init usart1 complete! Hello World!\r\n" );
  USART_puts ( USART2, "Init usart2 complete! Hello World!\r\n" );

  fb_setup();

#ifdef VGA_DMA
  vga_setup ( VGA_USE_DMA );
#else
  vga_setup ( VGA_NO_DMA );
#endif

#ifdef BUS_FRAMEBUFFER
  bus_setup();
#endif

  //fb_test_pattern ( fb_active, fbt_topbottom );
  fb_test_pattern ( fb_active, fbt_offset_squares );
  //fb_test_pattern ( fb_active, fbt_vlines );
  //fb_test_pattern ( fb_active, fbt_v1lines );
  //fb_test_pattern ( fb_active, fbt_onoff1 );
  //fb_test_pattern ( fb_active, fbt_spriteram );

  while ( 1 ) {
    // weeeeee!

    // any work for us to do?
#ifdef RUNMODE_COMMAND_SERIAL
    if ( vblank ) {

      if ( queueready() ) {
        command_queue_run();
      }

    }
#endif

#ifdef RUNMODE_FRAMEBUFFER_FOREVER
    if ( vblank ) {
      queueit ( "BD" );
      command_queue_run();
    }
#endif

    // update framebuffers
#if 0
    if ( vblank ) {
      unsigned char i = 0;
      fb_clone ( fb_2, fb_active );
      while ( vblank ) {
        __asm__("nop");
      }
      fb_test_pattern ( fb_2, i & 0x03 );
      i++;
    }
#endif

    // check for external RAM updates?
#ifdef zzBUS_FRAMEBUFFER
    static uint16_t _done = 0;
    _done++;
    if ( vblank && _done > 30 && _done < 40  ) {

      bus_grab_and_wait();

      uint32_t addr = 0x1C0000;
      uint8_t v;
      uint8_t i;
      char b [ 2 ];

      USART_puts_optional ( USART2, "+REM cart dump: " );

      for ( i = 0; i < 20; i++ ) {
        v = bus_perform_read ( addr );

        b [ 0 ] = v;
        b [ 1 ] = '\0';
        USART_puts_optional ( USART2, b );

        addr++;
      }

      USART_puts_optional ( USART2, "+++\n" );

      bus_release();

    }
#endif

    // handle queued logs
#if 0
    if ( logready() ) {
      char *log;
      while ( ( log = logpull() ) ) {
        USART_puts ( USART2, log );
      }
    }
#endif

    __asm__("nop");
  }

} // main
예제 #18
0
파일: main.c 프로젝트: huayl/pelikan
static void
setup(void)
{
    char *fname = NULL;
    uint64_t intvl;

    if (atexit(teardown) != 0) {
        log_stderr("cannot register teardown procedure with atexit()");
        exit(EX_OSERR); /* only failure comes from NOMEM */
    }

    /* Setup logging first */
    log_setup(&stats.log);
    if (debug_setup(&setting.debug) != CC_OK) {
        log_stderr("debug log setup failed");
        exit(EX_CONFIG);
    }

    /* setup top-level application options */
    if (option_bool(&setting.ds.daemonize)) {
        daemonize();
    }
    fname = option_str(&setting.ds.pid_filename);
    if (fname != NULL) {
        /* to get the correct pid, call create_pidfile after daemonize */
        create_pidfile(fname);
    }

    /* setup library modules */
    buf_setup(&setting.buf, &stats.buf);
    dbuf_setup(&setting.dbuf, &stats.dbuf);
    event_setup(&stats.event);
    sockio_setup(&setting.sockio, &stats.sockio);
    tcp_setup(&setting.tcp, &stats.tcp);
    timing_wheel_setup(&stats.timing_wheel);

    /* setup pelikan modules */
    time_setup(&setting.time);
    procinfo_setup(&stats.procinfo);
    request_setup(&setting.request, &stats.request);
    response_setup(&setting.response, &stats.response);
    parse_setup(&stats.parse_req, NULL);
    compose_setup(NULL, &stats.compose_rsp);
    slab_setup(&setting.slab, &stats.slab);
    process_setup(&setting.process, &stats.process);
    admin_process_setup();
    core_admin_setup(&setting.admin);
    core_server_setup(&setting.server, &stats.server);
    core_worker_setup(&setting.worker, &stats.worker);

    /* adding recurring events to maintenance/admin thread */
    intvl = option_uint(&setting.ds.dlog_intvl);
    if (core_admin_register(intvl, debug_log_flush, NULL) == NULL) {
        log_stderr("Could not register timed event to flush debug log");
        goto error;
    }

    return;

error:
    if (fname != NULL) {
        remove_pidfile(fname);
    }

    /* since we registered teardown with atexit, it'll be called upon exit */
    exit(EX_CONFIG);
}