Пример #1
0
RTAI_SYSCALL_MODE int rt_named_bits_delete(BITS *bits)
{
	if (!rt_bits_delete(bits)) {
		rt_free(bits);
	}
	return rt_drg_on_adr(bits);
}
Пример #2
0
RTAI_SYSCALL_MODE int rt_bits_delete_u(BITS *bits)
{
	if (rt_bits_delete(bits)) {
		return -EFAULT;
	}
	rt_free(bits);
	return rt_drg_on_adr(bits);
}
Пример #3
0
void cleanup_module(void)
{
	while (atomic_read(&cleanup) < 3) {
		current->state = TASK_INTERRUPTIBLE;
		schedule_timeout(HZ/10);
	}
	stop_rt_timer();
	rt_bits_delete(&bits);
	rt_task_delete(&task0);
	rt_task_delete(&task1);
	rt_task_delete(&task);
}
Пример #4
0
int __rt_bits_delete(BITS *bits){
	int result;
	
	if(bits == 0)
		return -1;

	result =  rt_bits_delete(bits);

	rt_free(bits);

	return result;
}
Пример #5
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;
}