Esempio n. 1
0
int init_module(void)
{
	rt_bits_init(&bits, 0xFFFF0000);
	rt_task_init(&task0, fun0, 0, STACK_SIZE, 0, 0, 0);
	rt_task_init(&task1, fun1, 0, STACK_SIZE, 0, 0, 0);
	rt_task_init(&task, fun, 0, STACK_SIZE, 0, 0, 0);
	rt_set_oneshot_mode();
	start_rt_timer(nano2count(SLEEP_TIME));
	rt_task_resume(&task0);
	rt_task_resume(&task1);
	rt_task_resume(&task);
	return 0;
}
Esempio n. 2
0
BITS* __rt_bits_init(unsigned long mask){
	BITS * bits;
	
	bits = rt_malloc(sizeof(BITS));
	
	if(bits == 0)
		return 0;
		

	memset(bits,0,sizeof(BITS));

	rt_bits_init(bits,mask);

	return bits;
}
Esempio n. 3
0
RTAI_SYSCALL_MODE void *rt_bits_init_u(unsigned long name, unsigned long mask)
{
	BITS *bits;
	if (rt_get_adr(name)) {
		return NULL;
	}
	if ((bits = rt_malloc(sizeof(BITS)))) {
		rt_bits_init(bits, mask);
		if (rt_register(name, bits, IS_BIT, current)) {
			return bits;
		} else {
			rt_free(bits);
		}
	}
	return NULL;
}
Esempio n. 4
0
RTAI_SYSCALL_MODE BITS *rt_named_bits_init(const char *bits_name, unsigned long mask)
{
	BITS *bits;
	unsigned long name;

	if ((bits = rt_get_adr(name = nam2num(bits_name)))) {
		return bits;
	}
	if ((bits = rt_malloc(sizeof(SEM)))) {
		rt_bits_init(bits, mask);
		if (rt_register(name, bits, IS_BIT, 0)) {
			return bits;
		}
		rt_bits_delete(bits);
	}
	rt_free(bits);
	return NULL;
}