void cleanup_module (void) { stop_rt_timer(); rt_busy_sleep(10000000); rt_task_delete(&thread); rtai_kfree(nam2num(SHMNAM)); rtai_kfree(nam2num(SHMNAM)); rtai_kfree(nam2num(SHMNAM)); rtai_kfree(nam2num(SHMNAM)); rtai_kfree(nam2num(SHMNAM)); rtai_kfree(nam2num(SHMNAM)); }
void* shm_handler(unsigned int srq, unsigned long arg) { switch (srq) { case CMD_RTAI_KMALLOC: do { struct rtai_kmalloc_desc *mem = (struct rtai_kmalloc_desc*)arg; return rtai_kmalloc(mem->name,mem->size); } while(0); break; case CMD_RTAI_KFREE: do { struct rtai_kfree_desc *mem = (struct rtai_kfree_desc*)arg; rtai_kfree(mem->name); return 0; } while(0); break; default: break; }; return (void*)-EINVAL; };