Reference

rt_task_ipc_init(2)

create a real-time task for use with rt_ipc

NAME

rt_task_ipc_init - create a real-time task for use with rt_ipc

SYNOPSIS

#define MODULE
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/errno.h>
#include rt_ipc.h

int rt_task_ipc_init(RT_TASK_IPC * task, void (*fn)(int data), int data, int stack_size, int priority);

DESCRIPTION

rt_task_ipc_init creates a real-time task. To make use of the IPC facilities of rt_ipc, you should use rt_task_ipc_init instead of the standard rt_task_init provided by Real Time Linux. task is a structure the space for which must be provided by the application. task must be present during the lifetime of the real-time task; thus it cannot be an automatic variable. This corresponds to the RT_TASK structure which is passed to rt_task_init. fn is the entry point of the new task. The parent task can send a one-integer value data to the new task. stack_size is the size of the stack to be used by the new task, and priority is the priority to be given the task. The highest priority is 1, while the lowest is RT_LOWEST_PRIORITY.

The newly created real-time task is initially dormant. It is normally made active by a call to rt_task_make_periodic.

RETURN VALUE

On success, 0 is returned. On failure, a negative value is returned as described below.

ERRORS

-EINVAL

task is already in use by another task.

-ENOMEM

space could not be allocated for the real-time task.

BUGS

The RT_TASK_IPC type passed to rt_task_ipc_init is not compatible with the RT_TASK type passed to rt_task_init. Use the macro MAKE_RT_TASK() to convert an RT_TASK_IPC to an RT_TASK when calling a standard Real-Time Linux function.

AUTHOR

Jerry Epplin <[email protected]>

SEE ALSO

rt_mq_destroy(2), rt_mq_init(2), rt_mq_receive(2), rt_mq_send(2), rt_task_init(2), rt_task_ipc_delete(2), rt_sem_destroy(2), rt_sem_init(2), rt_sem_post(2), rt_sem_trywait(2), rt_sem_wait(2)