Example #1
0
int __rtai_shm_init (void)
{
#if USE_UDEV_CLASS
	if ((shm_class = class_create(THIS_MODULE, "rtai_shm")) == NULL) {
		printk("RTAI-SHM: cannot create class.\n");
		return -EBUSY;
	}
	if (CLASS_DEVICE_CREATE(shm_class, MKDEV(MISC_MAJOR, RTAI_SHM_MISC_MINOR), NULL, "rtai_shm") == NULL) {
		printk("RTAI-SHM: cannot attach class.\n");
		class_destroy(shm_class);
		return -EBUSY;
	}
#endif

	if (misc_register(&rtai_shm_dev) < 0) {
		printk("***** UNABLE TO REGISTER THE SHARED MEMORY DEVICE (miscdev minor: %d) *****\n", RTAI_SHM_MISC_MINOR);
		return -EBUSY;
	}
#ifdef CONFIG_RTAI_MALLOC
#ifdef CONFIG_RTAI_MALLOC_VMALLOC
	rt_register(GLOBAL_HEAP_ID, rtai_global_heap_adr, rtai_global_heap_size, 0);
	rt_smp_linux_task->heap[GLOBAL].heap = &rtai_global_heap;
	rt_smp_linux_task->heap[GLOBAL].kadr =
	rt_smp_linux_task->heap[GLOBAL].uadr = rtai_global_heap_adr;
#else
	printk("***** WARNING: GLOBAL HEAP NEITHER SHARABLE NOR USABLE FROM USER SPACE (use the vmalloc option for RTAI malloc) *****\n");
#endif
#endif
	return set_rt_fun_entries(rt_shm_entries);
}
Example #2
0
File: mbx.c Project: ArcEye/RTAI
int __rtai_mbx_init (void)
{
	rt_poll_ofstfun[RT_POLL_MBX_RECV].topoll = recv_blocks;
	rt_poll_ofstfun[RT_POLL_MBX_SEND].topoll = send_blocks;
	return set_rt_fun_entries(rt_mbx_entries);
}
Example #3
0
int __rtai_bits_init(void)
{
	return set_rt_fun_entries(rt_bits_entries);
}
Example #4
0
int __rtai_msg_queue_init(void)
{
	printk(KERN_INFO "RTAI[rtai_msgq]: loaded.\n");
	return set_rt_fun_entries(rt_msg_queue_entries);
}