Beispiel #1
0
Datei: log.c Projekt: saper/em400
// -----------------------------------------------------------------------
int log_enable()
{
	if (log_is_enabled()) {
		return E_OK;
	}

	// Open log file
	log_f = fopen(log_file, "a");
	if (!log_f) {
		return E_FILE_OPEN;
	}

	log_log_timestamp(L_EM4H, 0, "Opened log");

	// start up flusher thread
	log_flusher_stop = 0;
	if (pthread_create(&log_flusher_th, NULL, log_flusher, NULL) != 0) {
		fclose(log_f);
		return E_THREAD;
	}

	atom_store_release(&log_enabled, 1);

	return E_OK;
}
Beispiel #2
0
Datei: log.c Projekt: saper/em400
// -----------------------------------------------------------------------
int log_set_level(unsigned component, unsigned level)
{
	if ((component > L_ALL) || (level > LOG_LEVEL_MAX)) {
		return -1;
	}

	// set level for specified component
	if (component != L_ALL) {
		atom_store_release(&log_components[component].thr, level);
	// set level for all components
	} else {
		for (int i=0 ; i<L_ALL; i++) {
			atom_store_release(&log_components[i].thr, level);
		}
	}

	return 0;
}
Beispiel #3
0
Datei: log.c Projekt: saper/em400
// -----------------------------------------------------------------------
void log_shutdown()
{
	int i;

	if (!log_initialized) return;

	emdas_destroy(emd);

	for (i=0 ; i<L_ALL; i++) {
		atom_store_release(&log_components[i].thr, 0);
	}

	log_disable();
	log_crk_shutdown();
	free(log_file);
}
Beispiel #4
0
Datei: log.c Projekt: saper/em400
// -----------------------------------------------------------------------
void log_disable()
{
	if (!log_is_enabled()) {
		return;
	}

	log_log_timestamp(L_EM4H, 0, "Closing log");

	atom_store_release(&log_enabled, 0);

	// stop flusher thread
	pthread_mutex_lock(&log_mutex);
	log_flusher_stop = 1;
	pthread_mutex_unlock(&log_mutex);
	pthread_join(log_flusher_th, NULL);

	if (log_f) {
		fclose(log_f);
	}
}
Beispiel #5
0
// -----------------------------------------------------------------------
void iob_quit()
{
	atom_store_release(&quit, 1);
}
Beispiel #6
0
// -----------------------------------------------------------------------
void timer_on()
{
	LOG(L_CPU, 1, "Starting timer");
	atom_store_release(&timer_enabled, 1);
}
Beispiel #7
0
// -----------------------------------------------------------------------
void timer_set_int(int interrupt)
{
	atom_store_release(&timer_int, interrupt);
}
Beispiel #8
0
// -----------------------------------------------------------------------
void timer_off()
{
	LOG(L_CPU, 1, "Stopping timer");
	atom_store_release(&timer_enabled, 0);
}