RT_TASK_IPC_INIT(2)

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 <JerryEpplin@worldnet.att.net>

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)