Saturday, 13 September 2014

timers and task with Xenomai

Timer management services.

 Data Structures
• struct rt_timer_info
                         Structure containing timer-information useful to users.

Typedefs
• typedef struct rt_timer_info RT_TIMER_INFO
                       Structure containing timer-information useful to users.

Functions
• SRTIME rt_timer_ns2tsc (SRTIME ns)
                    Convert nanoseconds to local CPU clock ticks.

• SRTIME rt_timer_tsc2ns (SRTIME ticks)
                    Convert local CPU clock ticks to nanoseconds.
   
• RTIME rt_timer_tsc (void)
                    Return the current TSC value.

• RTIME rt_timer_read (void)
                    Return the current system time.

• SRTIME rt_timer_ns2ticks (SRTIME ns)
                   Convert nanoseconds to internal clock ticks.

• SRTIME rt_timer_ticks2ns (SRTIME ticks)
                    Convert internal clock ticks to nanoseconds.

• int rt_timer_inquire (RT_TIMER_INFO ∗info)
                    Inquire about the timer.

• void rt_timer_spin (RTIME ns)
                    Busy wait burning CPU cycles.

• int rt_timer_set_mode (RTIME nstick)
                    Set the system clock rate.





Task management service

Files
• file task.c
This file is part of the Xenomai project.

Functions
int rt_task_create(RT_TASK ∗task, const char ∗name, int stksize, int prio, int mode)
Create a new real-time task.

int rt_task_start(RT_TASK ∗task, void(∗entry)(void ∗cookie), void ∗cookie)
Start a real-time task.

• int rt_task_suspend(RT_TASK ∗task)
Suspend a real-time task.

• int rt_task_resume(RT_TASK ∗task)
Resume a real-time task.

• int rt_task_delete(RT_TASK ∗task)
Delete a real-time task.

• int rt_task_yield(void)
Manual round-robin.

• int rt_task_set_periodic(RT_TASK ∗task, RTIME idate, RTIME period)
Make a real-time task periodic.

• int rt_task_wait_period(unsigned long ∗overruns_r)
Wait for the next periodic release point.

• int rt_task_set_priority(RT_TASK ∗task, int prio)
Change the base priority of a real-time task.

• int rt_task_sleep(RTIME delay)
Delay the calling task (relative).

• int rt_task_sleep_until(RTIME date)
Delay the calling task (absolute).

• int rt_task_unblock(RT_TASK ∗task)
Unblock a real-time task.

• int rt_task_inquire(RT_TASK ∗task, RT_TASK_INFO ∗info)
Inquire about a real-time task.

• int rt_task_add_hook (int type, void(∗routine)(void ∗cookie))
Install a task hook.

• int rt_task_remove_hook (int type, void(∗routine)(void ∗cookie))
Remove a task hook.

• int rt_task_catch (void(∗handler)(rt_sigset_t))
Install a signal handler.

• int rt_task_notify (RT_TASK ∗task, rt_sigset_t signals)
Send signals to a task.

• int rt_task_set_mode (int clrmask, int setmask, int ∗mode_r)
Change task mode bits.

• RT_TASK ∗ rt_task_self (void)
Retrieve the current task.

• int rt_task_slice (RT_TASK ∗task, RTIME quantum)
Set a task’s round-robin quantum.

• ssize_t rt_task_send (RT_TASK ∗task, RT_TASK_MCB ∗mcb_s, RT_TASK_MCB ∗mcb_r,RTIME timeout)

Send a message to a task.

• int rt_task_receive (RT_TASK_MCB ∗mcb_r, RTIME timeout)
              Receive a message from a task.

• int rt_task_reply (int flowid, RT_TASK_MCB ∗mcb_s)
              Reply to a task.

• static int rt_task_spawn (RT_TASK ∗task, const char ∗name, int stksize, int prio, int mode,void(∗entry)(void ∗cookie), void ∗cookie)
             Spawn a new real-time task.

• int rt_task_shadow (RT_TASK ∗task, const char ∗name, int prio, int mode)
             Turns the current Linux task into a native Xenomai task.

• int rt_task_bind (RT_TASK ∗task, const char ∗name, RTIME timeout)
             Bind to a real-time task.

• static int rt_task_unbind (RT_TASK ∗task)
           Unbind from a real-time task.

• int rt_task_join (RT_TASK ∗task)
          Wait on the termination of a real-time task.

• int rt_task_same (RT_TASK ∗task1, RT_TASK ∗task2)
         Compare two task descriptors.


No comments:

Post a Comment