nucleus/pod.c File Reference


Detailed Description

Real-time pod services.

Author:
Philippe Gerum
Copyright (C) 2001,2002,2003 Philippe Gerum <rpm@xenomai.org>. Copyright (C) 2004 The RTAI project <http://www.rtai.org> Copyright (C) 2004 The HYADES project <http://www.hyades-itea.org>

Xenomai is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Xenomai is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Xenomai; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

As a special exception, the RTAI project gives permission for additional uses of the text contained in its release of Xenomai.

The exception is that, if you link the Xenomai libraries with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License. Your use of that executable is in no way restricted on account of linking the Xenomai libraries code into it.

This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License.

This exception applies only to the code released by the RTAI project under the name Xenomai. If you copy code from other RTAI project releases into a copy of Xenomai, as the General Public License permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from them.

If you write modifications of your own for Xenomai, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice.

Include dependency graph for pod.c:

Include dependency graph

Functions

int xnpod_init (xnpod_t *pod, int minpri, int maxpri, xnflags_t flags)
 Initialize a new pod.
void xnpod_shutdown (int xtype)
 Default shutdown handler.
int xnpod_init_thread (xnthread_t *thread, const char *name, int prio, xnflags_t flags, unsigned stacksize)
 Initialize a new thread.
int xnpod_start_thread (xnthread_t *thread, xnflags_t mode, int imask, xnarch_cpumask_t affinity, void(*entry)(void *cookie), void *cookie)
 Initial start of a newly created thread.
void xnpod_restart_thread (xnthread_t *thread)
 Restart a thread.
xnflags_t xnpod_set_thread_mode (xnthread_t *thread, xnflags_t clrmask, xnflags_t setmask)
 Change a thread's control mode.
void xnpod_delete_thread (xnthread_t *thread)
 Delete a thread.
void xnpod_suspend_thread (xnthread_t *thread, xnflags_t mask, xnticks_t timeout, xnsynch_t *wchan)
 Suspend a thread.
void xnpod_resume_thread (xnthread_t *thread, xnflags_t mask)
 Resume a thread.
void xnpod_unblock_thread (xnthread_t *thread)
 Unblock a thread.
void xnpod_renice_thread (xnthread_t *thread, int prio)
 Change the base priority of a thread.
int xnpod_migrate (int cpu)
 Migrate to another CPU.
void xnpod_rotate_readyq (int prio)
 Rotate a priority level in the ready queue.
void xnpod_activate_rr (xnticks_t quantum)
 Globally activate the round-robin scheduling.
void xnpod_deactivate_rr (void)
 Globally deactivate the round-robin scheduling.
void xnpod_dispatch_signals (void)
 Deliver pending asynchronous signals to the running thread.
void xnpod_welcome_thread (xnthread_t *thread)
 Thread prologue.
void xnpod_preempt_current_thread (xnsched_t *sched)
 Preempts the current thread.
void xnpod_schedule (void)
 Rescheduling procedure entry point.
void xnpod_schedule_runnable (xnthread_t *thread, int flags)
 Hidden rescheduling procedure.
void xnpod_set_time (xnticks_t newtime)
 Set the nucleus idea of time.
xnticks_t xnpod_get_time (void)
 Get the nucleus idea of time.
int xnpod_add_hook (int type, void(*routine)(xnthread_t *))
 Install a nucleus hook.
int xnpod_remove_hook (int type, void(*routine)(xnthread_t *))
 Remove a nucleus hook.
int xnpod_trap_fault (void *fltinfo)
 Default fault handler.
int xnpod_start_timer (u_long nstick, xnisr_t tickhandler)
 Start the system timer.
void xnpod_stop_timer (void)
 Stop the system timer.
int xnpod_announce_tick (xnintr_t *intr)
 Announce a new clock tick.
int xnpod_set_thread_periodic (xnthread_t *thread, xnticks_t idate, xnticks_t period)
 Make a thread periodic.
int xnpod_wait_thread_period (void)
 Wait for the next periodic release point.

Generated on Mon Aug 30 13:58:39 2004 for RTAI API by doxygen 1.3.8