Beispiel #1
0
void cleanup_module(void)
{
	rt_free_timer();
	rt_reset_irq_to_sym_mode(TIMER_8254_IRQ);
	rt_free_global_irq(TIMER_8254_IRQ);
	rt_umount_rtai();
}
Beispiel #2
0
void cleanup_module(void)
{
	rt_free_timer();
	rtf_destroy(CMDF);
	rt_umount_rtai();
	return;
}
Beispiel #3
0
void cleanup_module(void)
{
	rt_free_timer();
	rt_mbx_delete(&mbx);
	rt_task_delete(&sup_task);
	rt_printk("HANDLER INTERRUPT MODULE REMOVED, OVERUNS %d\n", overuns);
}
Beispiel #4
0
void _rtapi_module_timer_stop(void) {
    stop_rt_timer();
#if RTAI_VERSION <= 400
    rt_free_timer();
#else
    rt_free_timers();
#endif
}
void cleanup_module(void)
{
	int cpuid;
	rt_reset_irq_to_sym_mode(0);
	CLEAR_8254_TSC_EMULATION;
	rt_free_timer();
	rtf_destroy(CMDF);
	if (Mode) {
		rt_sem_delete(&sem);
	}
	rt_task_delete(&thread);
	printk("\n\nCPU USE SUMMARY\n");
	for (cpuid = 0; cpuid < NR_RT_CPUS; cpuid++) {
		printk("# %d -> %d\n", cpuid, cpu_used[cpuid]);
	}
	printk("# ints -> %d\n",  cpu_used[NR_RT_CPUS]);
	printk("END OF CPU USE SUMMARY\n\n");
}
Beispiel #6
0
void cleanup_module(void)
{
	rt_free_timer();
}
static long long user_srq(unsigned long whatever)
{
	extern int calibrate_8254(void);
	unsigned long args[MAXARGS];
	int ret;

	ret = copy_from_user(args, (unsigned long *)whatever, MAXARGS*sizeof(unsigned long));
	switch (args[0]) {
		case CAL_8254: {
			return calibrate_8254();
			break;
		}

		case KTHREADS:
		case KLATENCY: {
			rt_set_oneshot_mode();
			period = start_rt_timer(nano2count(args[1]));
			if (args[0] == KLATENCY) {
				rt_task_init_cpuid(&rtask, spv, args[2], STACKSIZE, 0, 0, 0, hard_cpu_id());
			} else {
//				rt_kthread_init_cpuid(&rtask, spv, args[2], STACKSIZE, 0, 0, 0, hard_cpu_id());	
			}
			expected = rt_get_time() + 100*period;
			rt_task_make_periodic(&rtask, expected, period);
			break;
		}

		case END_KLATENCY: {
			stop_rt_timer();
			rt_task_delete(&rtask);
			break;
		}

		case FREQ_CAL: {
			times.intrs = -1;
			reset_count = args[1]*HZ;
			count = 0;
			rt_assign_irq_to_cpu(TIMER_8254_IRQ, 1 << hard_cpu_id());
			rt_request_timer(just_ret, COUNT, 1);
			rt_request_global_irq(TIMER_8254_IRQ, calibrate);
			break;
		}

		case END_FREQ_CAL: {
		        rt_free_timer();
		        rt_reset_irq_to_sym_mode(TIMER_8254_IRQ);
		        rt_free_global_irq(TIMER_8254_IRQ);
			break;
		}

		case BUS_CHECK: {
			loops = maxj = 0;
			bus_period = imuldiv(args[1], CPU_FREQ, 1000000000);
			bus_threshold = imuldiv(args[2], CPU_FREQ, 1000000000);
			use_parport = args[3];
			rt_assign_irq_to_cpu(TIMER_8254_IRQ, 1 << hard_cpu_id());
			rt_request_timer((void *)rt_timer_tick_ext, imuldiv(args[1], FREQ_8254, 1000000000), 0);
			rt_set_global_irq_ext(TIMER_8254_IRQ, 1, 0);
			break;
		}

		case END_BUS_CHECK: {
		        rt_free_timer();
		        rt_reset_irq_to_sym_mode(TIMER_8254_IRQ);
			break;
		}
		case GET_PARAMS: {
			rtf_put(0, &params, sizeof(params));
			break;
		}
	} 
	return 0;
}
Beispiel #8
0
Datei: hal.c Projekt: ArcEye/RTAI
void rt_free_apic_timers(void) { rt_free_timer(); }
Beispiel #9
0
void _rtapi_module_timer_stop(void) {
    stop_rt_timer();
    rt_free_timer();
}