/* part of the Linux kernel module that stops the fifo task */ void rtapi_app_exit(void) { int retval; retval = rtapi_task_pause(fifo_task); if (retval < 0) { rtapi_print("fifotask exit: rtapi_task_stop failed with %d\n", retval); } retval = rtapi_task_delete(fifo_task); if (retval < 0) { rtapi_print("fifotask exit: rtapi_task_delete failed with %d\n", retval); } retval = rtapi_fifo_delete(fifo, module); if (retval < 0) { rtapi_print("fifotask exit: rtapi_fifo_delete failed with %d\n", retval); } rtapi_print("fifotask exit: done\n"); rtapi_exit(module); }
/* part of the Linux kernel module that stops the shmem task */ void rtapi_app_exit(void) { int retval; if (0 != shmem_struct) { rtapi_print("shmemtask exit: heartbeat is %u\n", shmem_struct->heartbeat); } retval = rtapi_task_pause(shmem_task); if (retval < 0) { rtapi_print("shmemtask exit: rtapi_task_stop returned %d\n", retval); } retval = rtapi_task_delete(shmem_task); if (retval < 0) { rtapi_print("shmemtask exit: rtapi_task_delete returned %d\n", retval); } retval = rtapi_shmem_delete(shmem_mem, module); if (retval < 0) { rtapi_print("shmemtask exit: rtapi_shmem_delete returned %d\n", retval); } /* Clean up and exit */ rtapi_exit(module); }
/* part of the Linux kernel module that stops the slave task */ void rtapi_app_exit(void) { int retval; retval = rtapi_task_pause(slave_task); if (retval != RTAPI_SUCCESS) { rtapi_print("sem slave exit: rtapi_task_stop returned %d\n", retval); } retval = rtapi_task_delete(slave_task); if (retval != RTAPI_SUCCESS) { rtapi_print("sem slave exit: rtapi_task_delete returned %d\n", retval); } retval = rtapi_sem_delete(slave_sem, module); if (retval != RTAPI_SUCCESS) { rtapi_print("sem slave exit: rtapi_sem_delete returned %d\n", retval); } rtapi_print("sem slave exit: slave count is %d\n", slave_count); rtapi_exit(module); }
/* rtapi_app_exit() is substituted for cleanup_module() by a macro in rtapi_app.h */ void rtapi_app_exit(void) { int retval; /* Stop the task */ retval = rtapi_task_pause(timer_task); if (retval < 0) { rtapi_print("timertask exit: rtapi_task_pause returned %d\n", retval); } /* Remove the task from the list */ retval = rtapi_task_delete(timer_task); if (retval < 0) { rtapi_print("timertask exit: rtapi_task_delete returned %d\n", retval); } /* Print the final count just to show that the task did it's job */ rtapi_print("timertask exit: timer count is %d\n", timer_count); /* Clean up and exit */ rtapi_exit(module); }