mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-29 20:25:43 +00:00
2006-10-19 Joel Sherrill <joel@OARcorp.com>
* configure.ac, itron/Makefile.am, itron/preinstall.am, posix/Makefile.am, posix/preinstall.am, rtems/Makefile.am, rtems/preinstall.am, sapi/Makefile.am, sapi/preinstall.am, score/Makefile.am, score/preinstall.am, score/include/rtems/system.h, score/include/rtems/score/chain.h, score/include/rtems/score/thread.h, score/src/chain.c, score/src/coremutexseize.c, score/src/threadget.c: Remove all macro implementations and use only the static inline. Static inline functions are now well supported so there is no reason for duplicate maintenance. * itron/macros/rtems/itron/eventflags.inl, itron/macros/rtems/itron/fmempool.inl, itron/macros/rtems/itron/intr.inl, itron/macros/rtems/itron/mbox.inl, itron/macros/rtems/itron/msgbuffer.inl, itron/macros/rtems/itron/network.inl, itron/macros/rtems/itron/port.inl, itron/macros/rtems/itron/semaphore.inl, itron/macros/rtems/itron/sysmgmt.inl, itron/macros/rtems/itron/task.inl, itron/macros/rtems/itron/time.inl, itron/macros/rtems/itron/vmempool.inl, posix/macros/rtems/posix/cond.inl, posix/macros/rtems/posix/key.inl, posix/macros/rtems/posix/mqueue.inl, posix/macros/rtems/posix/mutex.inl, posix/macros/rtems/posix/priority.inl, posix/macros/rtems/posix/pthread.inl, posix/macros/rtems/posix/semaphore.inl, posix/macros/rtems/posix/timer.inl, rtems/macros/rtems/rtems/asr.inl, rtems/macros/rtems/rtems/attr.inl, rtems/macros/rtems/rtems/barrier.inl, rtems/macros/rtems/rtems/dpmem.inl, rtems/macros/rtems/rtems/event.inl, rtems/macros/rtems/rtems/eventset.inl, rtems/macros/rtems/rtems/message.inl, rtems/macros/rtems/rtems/modes.inl, rtems/macros/rtems/rtems/options.inl, rtems/macros/rtems/rtems/part.inl, rtems/macros/rtems/rtems/ratemon.inl, rtems/macros/rtems/rtems/region.inl, rtems/macros/rtems/rtems/sem.inl, rtems/macros/rtems/rtems/status.inl, rtems/macros/rtems/rtems/support.inl, rtems/macros/rtems/rtems/tasks.inl, rtems/macros/rtems/rtems/timer.inl, sapi/macros/rtems/extension.inl, score/macros/README, score/macros/rtems/score/address.inl, score/macros/rtems/score/chain.inl, score/macros/rtems/score/corebarrier.inl, score/macros/rtems/score/coremsg.inl, score/macros/rtems/score/coremutex.inl, score/macros/rtems/score/corerwlock.inl, score/macros/rtems/score/coresem.inl, score/macros/rtems/score/corespinlock.inl, score/macros/rtems/score/heap.inl, score/macros/rtems/score/isr.inl, score/macros/rtems/score/mppkt.inl, score/macros/rtems/score/object.inl, score/macros/rtems/score/objectmp.inl, score/macros/rtems/score/priority.inl, score/macros/rtems/score/stack.inl, score/macros/rtems/score/states.inl, score/macros/rtems/score/sysstate.inl, score/macros/rtems/score/thread.inl, score/macros/rtems/score/threadmp.inl, score/macros/rtems/score/tod.inl, score/macros/rtems/score/tqdata.inl, score/macros/rtems/score/userext.inl, score/macros/rtems/score/watchdog.inl, score/macros/rtems/score/wkspace.inl: Removed.
This commit is contained in:
@@ -1,3 +1,72 @@
|
||||
2006-10-19 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* configure.ac, itron/Makefile.am, itron/preinstall.am,
|
||||
posix/Makefile.am, posix/preinstall.am, rtems/Makefile.am,
|
||||
rtems/preinstall.am, sapi/Makefile.am, sapi/preinstall.am,
|
||||
score/Makefile.am, score/preinstall.am, score/include/rtems/system.h,
|
||||
score/include/rtems/score/chain.h,
|
||||
score/include/rtems/score/thread.h, score/src/chain.c,
|
||||
score/src/coremutexseize.c, score/src/threadget.c: Remove all macro
|
||||
implementations and use only the static inline. Static inline
|
||||
functions are now well supported so there is no reason for duplicate
|
||||
maintenance.
|
||||
* itron/macros/rtems/itron/eventflags.inl,
|
||||
itron/macros/rtems/itron/fmempool.inl,
|
||||
itron/macros/rtems/itron/intr.inl, itron/macros/rtems/itron/mbox.inl,
|
||||
itron/macros/rtems/itron/msgbuffer.inl,
|
||||
itron/macros/rtems/itron/network.inl,
|
||||
itron/macros/rtems/itron/port.inl,
|
||||
itron/macros/rtems/itron/semaphore.inl,
|
||||
itron/macros/rtems/itron/sysmgmt.inl,
|
||||
itron/macros/rtems/itron/task.inl, itron/macros/rtems/itron/time.inl,
|
||||
itron/macros/rtems/itron/vmempool.inl,
|
||||
posix/macros/rtems/posix/cond.inl, posix/macros/rtems/posix/key.inl,
|
||||
posix/macros/rtems/posix/mqueue.inl,
|
||||
posix/macros/rtems/posix/mutex.inl,
|
||||
posix/macros/rtems/posix/priority.inl,
|
||||
posix/macros/rtems/posix/pthread.inl,
|
||||
posix/macros/rtems/posix/semaphore.inl,
|
||||
posix/macros/rtems/posix/timer.inl, rtems/macros/rtems/rtems/asr.inl,
|
||||
rtems/macros/rtems/rtems/attr.inl,
|
||||
rtems/macros/rtems/rtems/barrier.inl,
|
||||
rtems/macros/rtems/rtems/dpmem.inl,
|
||||
rtems/macros/rtems/rtems/event.inl,
|
||||
rtems/macros/rtems/rtems/eventset.inl,
|
||||
rtems/macros/rtems/rtems/message.inl,
|
||||
rtems/macros/rtems/rtems/modes.inl,
|
||||
rtems/macros/rtems/rtems/options.inl,
|
||||
rtems/macros/rtems/rtems/part.inl,
|
||||
rtems/macros/rtems/rtems/ratemon.inl,
|
||||
rtems/macros/rtems/rtems/region.inl,
|
||||
rtems/macros/rtems/rtems/sem.inl,
|
||||
rtems/macros/rtems/rtems/status.inl,
|
||||
rtems/macros/rtems/rtems/support.inl,
|
||||
rtems/macros/rtems/rtems/tasks.inl,
|
||||
rtems/macros/rtems/rtems/timer.inl, sapi/macros/rtems/extension.inl,
|
||||
score/macros/README, score/macros/rtems/score/address.inl,
|
||||
score/macros/rtems/score/chain.inl,
|
||||
score/macros/rtems/score/corebarrier.inl,
|
||||
score/macros/rtems/score/coremsg.inl,
|
||||
score/macros/rtems/score/coremutex.inl,
|
||||
score/macros/rtems/score/corerwlock.inl,
|
||||
score/macros/rtems/score/coresem.inl,
|
||||
score/macros/rtems/score/corespinlock.inl,
|
||||
score/macros/rtems/score/heap.inl, score/macros/rtems/score/isr.inl,
|
||||
score/macros/rtems/score/mppkt.inl,
|
||||
score/macros/rtems/score/object.inl,
|
||||
score/macros/rtems/score/objectmp.inl,
|
||||
score/macros/rtems/score/priority.inl,
|
||||
score/macros/rtems/score/stack.inl,
|
||||
score/macros/rtems/score/states.inl,
|
||||
score/macros/rtems/score/sysstate.inl,
|
||||
score/macros/rtems/score/thread.inl,
|
||||
score/macros/rtems/score/threadmp.inl,
|
||||
score/macros/rtems/score/tod.inl,
|
||||
score/macros/rtems/score/tqdata.inl,
|
||||
score/macros/rtems/score/userext.inl,
|
||||
score/macros/rtems/score/watchdog.inl,
|
||||
score/macros/rtems/score/wkspace.inl: Removed.
|
||||
|
||||
2006-10-18 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||
|
||||
* sapi/include/confdefs.h:
|
||||
|
||||
@@ -16,7 +16,6 @@ RTEMS_ENABLE_MULTILIB
|
||||
RTEMS_ENABLE_MULTIPROCESSING
|
||||
RTEMS_ENABLE_POSIX
|
||||
RTEMS_ENABLE_ITRON
|
||||
RTEMS_ENABLE_INLINES
|
||||
RTEMS_ENABLE_RTEMS_DEBUG
|
||||
RTEMS_ENABLE_NETWORKING
|
||||
|
||||
@@ -143,11 +142,6 @@ RTEMS_CPUOPT([RTEMS_DEBUG],
|
||||
[1],
|
||||
[if RTEMS_DEBUG is enabled])
|
||||
|
||||
RTEMS_CPUOPT([RTEMS_INLINES],
|
||||
[test x"${enable_rtems_inlines}" = x"yes"],
|
||||
[1],
|
||||
[if using inlines])
|
||||
|
||||
RTEMS_CPUOPT([RTEMS_ITRON_API],
|
||||
[test x"$rtems_cv_HAS_ITRON_API" = x"yes"],
|
||||
[1],
|
||||
@@ -261,8 +255,6 @@ AM_CONDITIONAL(LIBRPC,[test "$LIBRPC" = "yes"])
|
||||
AM_CONDITIONAL(UNIX,[test x"${RTEMS_CPU}" = x"unix"])
|
||||
AM_CONDITIONAL(NEWLIB,test x"$RTEMS_USE_NEWLIB" = x"yes")
|
||||
|
||||
AM_CONDITIONAL(INLINE,test x"$enable_rtems_inlines" = x"yes" )
|
||||
AM_CONDITIONAL(MACROS,test x"$enable_rtems_inlines" = x"no" )
|
||||
AM_CONDITIONAL(HAS_MP,test x"$enable_multiprocessing" = x"yes" )
|
||||
|
||||
AM_CONDITIONAL(HAS_POSIX,test x"$rtems_cv_HAS_POSIX_API" = x"yes")
|
||||
|
||||
@@ -44,7 +44,6 @@ EXTRA_DIST += include/rtems/itron/README
|
||||
|
||||
## Inline
|
||||
|
||||
if INLINE
|
||||
include_rtems_itron_HEADERS += inline/rtems/itron/eventflags.inl \
|
||||
inline/rtems/itron/fmempool.inl inline/rtems/itron/intr.inl \
|
||||
inline/rtems/itron/mbox.inl inline/rtems/itron/msgbuffer.inl \
|
||||
@@ -52,15 +51,6 @@ include_rtems_itron_HEADERS += inline/rtems/itron/eventflags.inl \
|
||||
inline/rtems/itron/semaphore.inl inline/rtems/itron/sysmgmt.inl \
|
||||
inline/rtems/itron/task.inl inline/rtems/itron/time.inl \
|
||||
inline/rtems/itron/vmempool.inl
|
||||
else
|
||||
include_rtems_itron_HEADERS += macros/rtems/itron/eventflags.inl \
|
||||
macros/rtems/itron/fmempool.inl macros/rtems/itron/intr.inl \
|
||||
macros/rtems/itron/mbox.inl macros/rtems/itron/msgbuffer.inl \
|
||||
macros/rtems/itron/network.inl macros/rtems/itron/port.inl \
|
||||
macros/rtems/itron/semaphore.inl macros/rtems/itron/sysmgmt.inl \
|
||||
macros/rtems/itron/task.inl macros/rtems/itron/time.inl \
|
||||
macros/rtems/itron/vmempool.inl
|
||||
endif
|
||||
|
||||
## Sources
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/eventflags.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_EVENTFLAGS_INL
|
||||
#define _RTEMS_ITRON_EVENTFLAGS_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Eventflags_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Eventflags_Allocate( _flgid ) \
|
||||
(ITRON_Eventflags_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Eventflags_Information, \
|
||||
(_flgid), \
|
||||
sizeof(ITRON_Eventflags_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Eventflags_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Eventflags_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Eventflags_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Eventflags_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Eventflags_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Eventflags_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Eventflags_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Eventflags_Free( _the_eventflags ) \
|
||||
_ITRON_Objects_Free( &_ITRON_Eventflags_Information, \
|
||||
&(_the_eventflags)->Object )
|
||||
|
||||
|
||||
/*
|
||||
* _ITRON_Eventflags_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Eventflags_Get( _id, _location ) \
|
||||
(ITRON_Eventflags_Control *) \
|
||||
_ITRON_Objects_Get( &_ITRON_Eventflags_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Eventflags_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Eventflags_Is_null( _the_eventflags ) \
|
||||
( (_the_eventflags) == NULL );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/fmempool.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_FMEMPOOL_INL
|
||||
#define _RTEMS_ITRON_FMEMPOOL_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Fixed_memory_pool_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Fixed_memory_pool_Allocate( _mpfid ) \
|
||||
(ITRON_Fixed_memory_pool_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Fixed_memory_pool_Information, \
|
||||
(_mpfid), \
|
||||
sizeof(ITRON_Fixed_memory_pool_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Fixed_memory_pool_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Fixed_memory_pool_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Fixed_memory_pool_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Fixed_memory_pool_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Fixed_memory_pool_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( \
|
||||
&_ITRON_Fixed_memory_pool_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Fixed_memory_pool_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Fixed_memory_pool_Free( _the_fixed_memory_pool ) \
|
||||
_ITRON_Objects_Free( \
|
||||
&_ITRON_Fixed_memory_pool_Information, \
|
||||
&(_the_fixed_memory_pool)->Object \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Fixed_memory_pool_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Fixed_memory_pool_Get( _id, _location ) \
|
||||
(ITRON_Fixed_memory_pool_Control *) \
|
||||
_ITRON_Objects_Get( &_ITRON_Fixed_memory_pool_Information, \
|
||||
(_id), (_location) )
|
||||
|
||||
/*
|
||||
* _ITRON_Fixed_memory_pool_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Fixed_memory_pool_Is_null( _the_fixed_memory_pool ) \
|
||||
( (_the_fixed_memory_pool) == NULL )
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/intr.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_INTR_INL
|
||||
#define _RTEMS_ITRON_INTR_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XXX insert inline routines here
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/mbox.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_MBOX_INL
|
||||
#define _RTEMS_ITRON_MBOX_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Mailbox_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Mailbox_Allocate( _mbxid ) \
|
||||
(ITRON_Mailbox_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Mailbox_Information, \
|
||||
(_mbxid), \
|
||||
sizeof(ITRON_Mailbox_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Mailbox_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Mailbox_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Mailbox_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Mailbox_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Mailbox_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Mailbox_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Mailbox_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Mailbox_Free( _the_mailbox ) \
|
||||
_ITRON_Objects_Free( &_ITRON_Mailbox_Information, &(_the_mailbox)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Mailbox_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Mailbox_Get( _id, _location ) \
|
||||
(ITRON_Mailbox_Control *) \
|
||||
_ITRON_Objects_Get( &_ITRON_Mailbox_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Mailbox_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Mailbox_Is_null( _the_mailbox ) \
|
||||
( (_the_mailbox) == NULL )
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/msgbuffer.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_MSGBUFFER_INL
|
||||
#define _RTEMS_ITRON_MSGBUFFER_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Message_buffer_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Message_buffer_Allocate( _mbfid ) \
|
||||
(ITRON_Message_buffer_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Message_buffer_Information, \
|
||||
(_mbfid), \
|
||||
sizeof(ITRON_Message_buffer_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Message_buffer_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Message_buffer_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Message_buffer_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Message_buffer_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Message_buffer_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Message_buffer_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Message_buffer_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Message_buffer_Free( _the_message_buffer ) \
|
||||
_ITRON_Objects_Free( \
|
||||
&_ITRON_Message_buffer_Information, \
|
||||
&(_the_message_buffer)->Object \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Message_buffer_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Message_buffer_Get( _id, _location ) \
|
||||
(ITRON_Message_buffer_Control *) \
|
||||
_ITRON_Objects_Get( &_ITRON_Message_buffer_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Message_buffer_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Message_buffer_Is_null( _the_message_buffer ) \
|
||||
( (_the_message_buffer) == NULL )
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/network.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_NETWORK_INL
|
||||
#define _RTEMS_ITRON_NETWORK_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XXX insert inline routines here
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/port.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_PORT_INL
|
||||
#define _RTEMS_ITRON_PORT_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Port_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Port_Allocate( _porid ) \
|
||||
(ITRON_Port_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Port_Information, \
|
||||
(_porid), \
|
||||
sizeof(ITRON_Port_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Port_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Port_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Port_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Port_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Port_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Port_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Port_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Port_Free( _the_port ) \
|
||||
_ITRON_Objects_Free( &_ITRON_Port_Information, &(_the_port)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Port_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Port_Get( _id, _location ) \
|
||||
(ITRON_Port_Control *) \
|
||||
_ITRON_Objects_Get( &_ITRON_Port_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Port_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Port_Is_null( _the_port ) \
|
||||
( (_the_port) == NULL )
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/semaphore.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_SEMAPHORE_INL
|
||||
#define _RTEMS_ITRON_SEMAPHORE_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Semaphore_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Semaphore_Allocate( _semid ) \
|
||||
(ITRON_Semaphore_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Semaphore_Information, \
|
||||
(_semid), \
|
||||
sizeof(ITRON_Semaphore_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Semaphore_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Semaphore_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Semaphore_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Semaphore_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Semaphore_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Semaphore_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Semaphore_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Semaphore_Free( _the_semaphore ) \
|
||||
_ITRON_Objects_Free( &_ITRON_Semaphore_Information, &(_the_semaphore)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Semaphore_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Semaphore_Get( _id, _location ) \
|
||||
(ITRON_Semaphore_Control *) \
|
||||
_ITRON_Objects_Get( &_ITRON_Semaphore_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Semaphore_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Semaphore_Is_null( _the_semaphore ) \
|
||||
( (_the_semaphore) == NULL )
|
||||
|
||||
/*
|
||||
* _ITRON_Semaphore_Translate_core_semaphore_return_code
|
||||
*/
|
||||
|
||||
/* XXX fix me */
|
||||
static inline ER _ITRON_Semaphore_Translate_core_semaphore_return_code (
|
||||
uint32_t the_semaphore_status
|
||||
)
|
||||
{
|
||||
/* XXX need to be able to return "E_RLWAI" */
|
||||
switch ( the_semaphore_status ) {
|
||||
case CORE_SEMAPHORE_STATUS_SUCCESSFUL:
|
||||
return E_OK;
|
||||
case CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT:
|
||||
return E_TMOUT;
|
||||
case CORE_SEMAPHORE_WAS_DELETED:
|
||||
return E_DLT;
|
||||
case CORE_SEMAPHORE_TIMEOUT:
|
||||
return E_TMOUT;
|
||||
case CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED:
|
||||
return E_QOVR;
|
||||
case THREAD_STATUS_PROXY_BLOCKING:
|
||||
return THREAD_STATUS_PROXY_BLOCKING;
|
||||
}
|
||||
return E_OK; /* unreached - only to remove warnings */
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/sysmgmt.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_SYSMGMT_INL
|
||||
#define _RTEMS_ITRON_SYSMGMT_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XXX insert inline routines here
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/task.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_TASK_INL
|
||||
#define _RTEMS_ITRON_TASK_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Task_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Allocate( _tskid ) \
|
||||
(Thread_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Task_Information, \
|
||||
(_tskid), \
|
||||
sizeof(Thread_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Task_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Task_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Task_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Task_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Task_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Free( _the_task ) \
|
||||
_ITRON_Objects_Free( &_ITRON_Task_Information, &(_the_task)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Task_Get
|
||||
*/
|
||||
|
||||
/* XXX fix me */
|
||||
static inline Thread_Control *_ITRON_Task_Get (
|
||||
ID id,
|
||||
Objects_Locations *location
|
||||
)
|
||||
{
|
||||
if ( id == 0 ) {
|
||||
_Thread_Disable_dispatch();
|
||||
*location = OBJECTS_LOCAL;
|
||||
return _Thread_Executing;
|
||||
}
|
||||
|
||||
return (Thread_Control *)
|
||||
_ITRON_Objects_Get( &_ITRON_Task_Information, id, location );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Task_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Is_null( _the_task ) \
|
||||
( (_the_task) == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Priority_to_Core( _ITRON_priority ) \
|
||||
((Priority_Control) (_ITRON_priority))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_tasks_Core_to_Priority
|
||||
*/
|
||||
|
||||
#define _ITRON_Task_Core_to_Priority( _core_priority ) \
|
||||
((PRI) (_core_priority))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/time.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_TIME_INL
|
||||
#define _RTEMS_ITRON_TIME_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XXX insert inline routines here
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
/**
|
||||
* @file rtems/itron/vmempool.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_ITRON_VMEMPOOL_INL
|
||||
#define _RTEMS_ITRON_VMEMPOOL_INL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _ITRON_Variable_memory_pool_Allocate
|
||||
*/
|
||||
|
||||
#define _ITRON_Variable_memory_pool_Allocate( _mplid ) \
|
||||
(ITRON_Variable_memory_pool_Control *)_ITRON_Objects_Allocate_by_index( \
|
||||
&_ITRON_Variable_memory_pool_Information, \
|
||||
(_mplid), \
|
||||
sizeof(ITRON_Variable_memory_pool_Control) \
|
||||
)
|
||||
|
||||
/*
|
||||
* _ITRON_Variable_memory_pool_Clarify_allocation_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Variable_memory_pool_Clarify_allocation_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_allocation_id_error( \
|
||||
&_ITRON_Variable_memory_pool_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Variable_memory_pool_Clarify_get_id_error
|
||||
*/
|
||||
|
||||
#define _ITRON_Variable_memory_pool_Clarify_get_id_error( _id ) \
|
||||
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Variable_memory_pool_Information, (_id) )
|
||||
|
||||
/*
|
||||
* _ITRON_Variable_memory_pool_Free
|
||||
*/
|
||||
|
||||
#define _ITRON_Variable_memory_pool_Free( _the_variable_memory_pool ) \
|
||||
_ITRON_Objects_Free( \
|
||||
&_ITRON_Variable_memory_pool_Information, \
|
||||
&(_the_variable_memory_pool)->Object \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Variable_memory_pool_Get
|
||||
*/
|
||||
|
||||
#define _ITRON_Variable_memory_pool_Get( _id, _location ) \
|
||||
(ITRON_Variable_memory_pool_Control *) _ITRON_Objects_Get( \
|
||||
&_ITRON_Variable_memory_pool_Information, \
|
||||
(_id), \
|
||||
(_location) \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ITRON_Variable_memory_pool_Is_null
|
||||
*/
|
||||
|
||||
#define _ITRON_Variable_memory_pool_Is_null( _the_variable_memory_pool ) \
|
||||
( (_the_variable_memory_pool) == NULL )
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -149,7 +149,6 @@ $(PROJECT_INCLUDE)/rtems/itron/vmempool.h: include/rtems/itron/vmempool.h $(PROJ
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/vmempool.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/vmempool.h
|
||||
|
||||
if INLINE
|
||||
$(PROJECT_INCLUDE)/rtems/itron/eventflags.inl: inline/rtems/itron/eventflags.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/eventflags.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/eventflags.inl
|
||||
@@ -197,54 +196,4 @@ PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/time.inl
|
||||
$(PROJECT_INCLUDE)/rtems/itron/vmempool.inl: inline/rtems/itron/vmempool.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/vmempool.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/vmempool.inl
|
||||
|
||||
else
|
||||
$(PROJECT_INCLUDE)/rtems/itron/eventflags.inl: macros/rtems/itron/eventflags.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/eventflags.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/eventflags.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/fmempool.inl: macros/rtems/itron/fmempool.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/fmempool.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/fmempool.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/intr.inl: macros/rtems/itron/intr.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/intr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/intr.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/mbox.inl: macros/rtems/itron/mbox.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/mbox.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/mbox.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/msgbuffer.inl: macros/rtems/itron/msgbuffer.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/msgbuffer.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/msgbuffer.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/network.inl: macros/rtems/itron/network.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/network.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/network.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/port.inl: macros/rtems/itron/port.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/port.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/port.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/semaphore.inl: macros/rtems/itron/semaphore.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/semaphore.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/semaphore.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/sysmgmt.inl: macros/rtems/itron/sysmgmt.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/sysmgmt.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/sysmgmt.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/task.inl: macros/rtems/itron/task.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/task.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/task.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/time.inl: macros/rtems/itron/time.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/time.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/time.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/itron/vmempool.inl: macros/rtems/itron/vmempool.inl $(PROJECT_INCLUDE)/rtems/itron/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/itron/vmempool.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron/vmempool.inl
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -33,19 +33,11 @@ include_rtems_posix_HEADERS += include/rtems/posix/condmp.h \
|
||||
include/rtems/posix/pthreadmp.h include/rtems/posix/semaphoremp.h
|
||||
endif
|
||||
|
||||
if INLINE
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/cond.inl \
|
||||
inline/rtems/posix/key.inl inline/rtems/posix/mqueue.inl \
|
||||
inline/rtems/posix/mutex.inl inline/rtems/posix/pthread.inl \
|
||||
inline/rtems/posix/priority.inl inline/rtems/posix/semaphore.inl \
|
||||
inline/rtems/posix/timer.inl
|
||||
else
|
||||
include_rtems_posix_HEADERS += macros/rtems/posix/cond.inl \
|
||||
macros/rtems/posix/key.inl macros/rtems/posix/mqueue.inl \
|
||||
macros/rtems/posix/mutex.inl macros/rtems/posix/pthread.inl \
|
||||
macros/rtems/posix/priority.inl macros/rtems/posix/semaphore.inl \
|
||||
macros/rtems/posix/timer.inl
|
||||
endif
|
||||
|
||||
## src
|
||||
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/cond.inl
|
||||
*/
|
||||
|
||||
/* rtems/posix/cond.inl
|
||||
*
|
||||
* This include file contains the macro implementation of the private
|
||||
* inlined routines for POSIX condition variables.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2002.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_COND_INL
|
||||
#define _RTEMS_POSIX_COND_INL
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Condition_variables_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Condition_variables_Allocate() \
|
||||
(POSIX_Condition_variables_Control *) \
|
||||
_Objects_Allocate( &_POSIX_Condition_variables_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Condition_variables_Free
|
||||
*
|
||||
* NOTE: The support macro makes it possible for both to use exactly
|
||||
* the same code to check for NULL id pointer and
|
||||
* PTHREAD_COND_INITIALIZER without adding overhead.
|
||||
*/
|
||||
|
||||
#define _POSIX_Condition_variables_Free( _the_condition_variable ) \
|
||||
_Objects_Free( &_POSIX_Condition_variables_Information, \
|
||||
&(_the_condition_variable)->Object)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Condition_variables_Get
|
||||
*
|
||||
* NOTE: The support macro makes it possible for both to use exactly
|
||||
* the same code to check for NULL id pointer and
|
||||
* PTHREAD_COND_INITIALIZER without adding overhead.
|
||||
*/
|
||||
|
||||
#define ___POSIX_Condition_variables_Get_support( _cond, _location ) \
|
||||
do { \
|
||||
Objects_Id *_id = (Objects_Id *)_cond; \
|
||||
int _status; \
|
||||
\
|
||||
if ( !_id ) { \
|
||||
*_location = OBJECTS_ERROR; \
|
||||
return (POSIX_Condition_variables_Control *) 0; \
|
||||
} \
|
||||
\
|
||||
if ( *_id == PTHREAD_COND_INITIALIZER ) { \
|
||||
/* \
|
||||
* Do an "auto-create" here. \
|
||||
*/ \
|
||||
\
|
||||
_status = pthread_cond_init( (pthread_cond_t *)_id, 0 ); \
|
||||
if ( _status ) { \
|
||||
*_location = OBJECTS_ERROR; \
|
||||
return (POSIX_Condition_variables_Control *) 0; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* If we find a compiler that doesn't accept static inline functions,
|
||||
* then this will have to move to a .c file. Until then, we will use this.
|
||||
*/
|
||||
static inline POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get (
|
||||
pthread_cond_t *cond,
|
||||
Objects_Locations *location
|
||||
)
|
||||
{
|
||||
Objects_Id *id = (Objects_Id *)cond;
|
||||
___POSIX_Condition_variables_Get_support( id, location );
|
||||
|
||||
return (POSIX_Condition_variables_Control *)
|
||||
_Objects_Get( &_POSIX_Condition_variables_Information, *id, location );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Condition_variables_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Condition_variables_Is_null( _the_condition_variable ) \
|
||||
(!(_the_condition_variable))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,58 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/key.inl
|
||||
*/
|
||||
|
||||
/* rtems/posix/key.inl
|
||||
*
|
||||
* This include file contains the macro implementation of the private
|
||||
* inlined routines for POSIX key's.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_KEY_INL
|
||||
#define _RTEMS_POSIX_KEY_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Keys_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Keys_Allocate() \
|
||||
(POSIX_Keys_Control *) _Objects_Allocate( &_POSIX_Keys_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Keys_Free
|
||||
*/
|
||||
|
||||
#define _POSIX_Keys_Free( _the_key ) \
|
||||
_Objects_Free( &_POSIX_Keys_Information, &(_the_key)->Object );
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Keys_Get
|
||||
*/
|
||||
|
||||
#define _POSIX_Keys_Get( _id, _location ) \
|
||||
(POSIX_Keys_Control *) \
|
||||
_Objects_Get( &_POSIX_Keys_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Keys_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Keys_Is_null( _the_key ) \
|
||||
(!(_the_key))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/mqueue.inl
|
||||
*/
|
||||
|
||||
/* rtems/posix/mqueue.inl
|
||||
*
|
||||
* This include file contains the macro implementation of the private
|
||||
* inlined routines for POSIX Message Queue.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_MQUEUE_INL
|
||||
#define _RTEMS_POSIX_MQUEUE_INL
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Allocate() \
|
||||
(POSIX_Message_queue_Control *) \
|
||||
_Objects_Allocate( &_POSIX_Message_queue_Information )
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Allocate_fd
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Allocate_fd() \
|
||||
(POSIX_Message_queue_Control_fd *) \
|
||||
_Objects_Allocate( &_POSIX_Message_queue_Information_fds )
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Free
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Free( _the_mq ) \
|
||||
_Objects_Free( &_POSIX_Message_queue_Information, &(_the_mq)->Object )
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Free_fd
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Free_fd( _the_mq_fd ) \
|
||||
_Objects_Free( &_POSIX_Message_queue_Information_fds, &(_the_mq_fd)->Object )
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Namespace_remove
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Namespace_remove( _the_mq ) \
|
||||
_Objects_Namespace_remove( \
|
||||
&_POSIX_Message_queue_Information, &(_the_mq)->Object )
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Get
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Get( _id, _location ) \
|
||||
(POSIX_Message_queue_Control *) \
|
||||
_Objects_Get( &_POSIX_Message_queue_Information, (_id), (_location) )
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Get_fd
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Get_fd( _id, _location ) \
|
||||
(POSIX_Message_queue_Control_fd *) \
|
||||
_Objects_Get( &_POSIX_Message_queue_Information_fds, (_id), (_location) )
|
||||
|
||||
/*
|
||||
*
|
||||
* _POSIX_Message_queue_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Is_null( _the_mq ) \
|
||||
(!(_the_mq))
|
||||
|
||||
/*
|
||||
*
|
||||
* _POSIX_Message_queue_Priority_to_core
|
||||
*/
|
||||
|
||||
#define _POSIX_Message_queue_Priority_to_core( _priority ) \
|
||||
((_priority) * -1)
|
||||
|
||||
/*
|
||||
* _POSIX_Message_queue_Priority_from_core
|
||||
*/
|
||||
|
||||
/* absolute value without a library dependency */
|
||||
#define _POSIX_Message_queue_Priority_from_core( _priority ) \
|
||||
((((CORE_message_queue_Submit_types)(_priority)) >= 0) ? \
|
||||
(_priority) : \
|
||||
-((CORE_message_queue_Submit_types)(_priority)))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/mutex.inl
|
||||
*/
|
||||
|
||||
/* rtems/posix/mutex.inl
|
||||
*
|
||||
* This include file contains the macro implementation of the private
|
||||
* inlined routines for POSIX mutex's.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_MUTEX_INL
|
||||
#define _RTEMS_POSIX_MUTEX_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Mutex_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Mutex_Allocate() \
|
||||
(POSIX_Mutex_Control *) _Objects_Allocate( &_POSIX_Mutex_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Mutex_Free
|
||||
*/
|
||||
|
||||
#define _POSIX_Mutex_Free( _the_mutex ) \
|
||||
_Objects_Free( &_POSIX_Mutex_Information, &(_the_mutex)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Mutex_Get
|
||||
*
|
||||
* NOTE: The support macro makes it possible for both to use exactly
|
||||
* the same code to check for NULL id pointer and
|
||||
* PTHREAD_MUTEX_INITIALIZER without adding overhead.
|
||||
*/
|
||||
|
||||
#define ___POSIX_Mutex_Get_support( _mutex, _location ) \
|
||||
do { \
|
||||
int _status; \
|
||||
Objects_Id *_id = (Objects_Id *) _mutex; \
|
||||
\
|
||||
if ( !_id ) { \
|
||||
*_location = OBJECTS_ERROR; \
|
||||
return (POSIX_Mutex_Control *) 0; \
|
||||
} \
|
||||
\
|
||||
if ( *_id == PTHREAD_MUTEX_INITIALIZER ) { \
|
||||
/* \
|
||||
* Do an "auto-create" here. \
|
||||
*/ \
|
||||
\
|
||||
_status = pthread_mutex_init( (pthread_mutex_t *)_id, 0 ); \
|
||||
if ( _status ) { \
|
||||
*_location = OBJECTS_ERROR; \
|
||||
return (POSIX_Mutex_Control *) 0; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* If we find a compiler that doesn't accept static inline functions,
|
||||
* then this will have to move to a .c file. Until then, we will use this.
|
||||
*/
|
||||
static inline POSIX_Mutex_Control * _POSIX_Mutex_Get(
|
||||
pthread_mutex_t *id,
|
||||
Objects_Locations *location
|
||||
)
|
||||
{
|
||||
___POSIX_Mutex_Get_support( id, location );
|
||||
|
||||
return (POSIX_Mutex_Control *)
|
||||
_Objects_Get( &_POSIX_Mutex_Information, *id, location );
|
||||
}
|
||||
|
||||
/* If we find a compiler that doesn't accept static inline functions,
|
||||
* then this will have to move to a .c file. Until then, we will use this.
|
||||
*/
|
||||
static inline POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable(
|
||||
pthread_mutex_t *id,
|
||||
Objects_Locations *location,
|
||||
ISR_Level *level
|
||||
)
|
||||
{
|
||||
___POSIX_Mutex_Get_support( id, location );
|
||||
|
||||
return (POSIX_Mutex_Control *)
|
||||
_Objects_Get_isr_disable( &_POSIX_Mutex_Information, *id, location, level );
|
||||
}
|
||||
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Mutex_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Mutex_Is_null( _the_mutex ) \
|
||||
(!(_the_mutex))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/priority.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_PRIORITY_INL
|
||||
#define _RTEMS_POSIX_PRIORITY_INL
|
||||
|
||||
/*
|
||||
* 1003.1b-1993,2.2.2.80 definition of priority, p. 19
|
||||
*
|
||||
* "Numericallly higher values represent higher priorities."
|
||||
*
|
||||
* Thus, RTEMS Core has priorities run in the opposite sense of the POSIX API.
|
||||
*/
|
||||
|
||||
#define _POSIX_Priority_Is_valid( _priority ) \
|
||||
((boolean) ((_priority) >= 1 && (_priority) <= 254))
|
||||
|
||||
#define _POSIX_Priority_To_core( _priority ) \
|
||||
((Priority_Control) (255 - (_priority)))
|
||||
|
||||
#define _POSIX_Priority_From_core( _priority ) \
|
||||
(255 - (_priority))
|
||||
|
||||
#endif
|
||||
@@ -1,58 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/pthread.inl
|
||||
*/
|
||||
|
||||
/* rtems/posix/pthread.inl
|
||||
*
|
||||
* This include file contains the macro implementation of the private
|
||||
* inlined routines for POSIX threads.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_PTHREAD_INL
|
||||
#define _RTEMS_POSIX_PTHREAD_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Threads_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Threads_Allocate() \
|
||||
(Thread_Control *) _Objects_Allocate( &_POSIX_Threads_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Threads_Free
|
||||
*/
|
||||
|
||||
#define _POSIX_Threads_Free( _the_pthread ) \
|
||||
_Objects_Free( &_POSIX_Threads_Information, &(_the_pthread)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Threads_Get
|
||||
*/
|
||||
|
||||
#define _POSIX_Threads_Get( _id, _location ) \
|
||||
(Thread_Control *) \
|
||||
_Objects_Get( &_POSIX_Threads_Information, (Objects_Id)(_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Threads_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Threads_Is_null( _the_pthread ) \
|
||||
(!(_the_pthread))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/semaphore.inl
|
||||
*/
|
||||
|
||||
/* rtems/posix/semaphore.inl
|
||||
*
|
||||
* This include file contains the macro implementation of the private
|
||||
* inlined routines for POSIX Semaphores.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_SEMAPHORE_INL
|
||||
#define _RTEMS_POSIX_SEMAPHORE_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Semaphore_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Semaphore_Allocate() \
|
||||
(POSIX_Semaphore_Control *) \
|
||||
_Objects_Allocate( &_POSIX_Semaphore_Information );
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Semaphore_Free
|
||||
*/
|
||||
|
||||
#define _POSIX_Semaphore_Free( _the_semaphore ) \
|
||||
_Objects_Free( &_POSIX_Semaphore_Information, &(_the_semaphore)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Semaphore_Namespace_remove
|
||||
*/
|
||||
|
||||
#define _POSIX_Semaphore_Namespace_remove( _the_semaphore ) \
|
||||
_Objects_Namespace_remove( \
|
||||
&_POSIX_Semaphore_Information, &(_the_semaphore)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Semaphore_Get
|
||||
*/
|
||||
|
||||
#define _POSIX_Semaphore_Get( _id, _location ) \
|
||||
(POSIX_Semaphore_Control *) \
|
||||
_Objects_Get( &_POSIX_Semaphore_Information, *(_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Semaphore_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Semaphore_Is_null( _the_semaphore ) \
|
||||
(!(_the_semaphore))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
/**
|
||||
* @file rtems/posix/timer.inl
|
||||
*/
|
||||
|
||||
/* timer.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined routines
|
||||
* from the POSIX Timer Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_TIMER_INL
|
||||
#define _RTEMS_POSIX_TIMER_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Timer_Allocate
|
||||
*/
|
||||
|
||||
#define _POSIX_Timer_Allocate() \
|
||||
(POSIX_Timer_Control *) _Objects_Allocate( &_POSIX_Timer_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Timer_Free
|
||||
*/
|
||||
|
||||
#define _POSIX_Timer_Free( _the_timer ) \
|
||||
_Objects_Free( &_POSIX_Timer_Information, &(_the_timer)->Object );
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Timer_Get
|
||||
*/
|
||||
|
||||
#define _POSIX_Timer_Get( _id, _location ) \
|
||||
(POSIX_Timer_Control *) \
|
||||
_Objects_Get( &_POSIX_Timer_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _POSIX_Timer_Is_null
|
||||
*/
|
||||
|
||||
#define _POSIX_Timer_Is_null( _the_timer ) \
|
||||
(!(_the_timer))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -121,7 +121,6 @@ $(PROJECT_INCLUDE)/rtems/posix/semaphoremp.h: include/rtems/posix/semaphoremp.h
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/semaphoremp.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/semaphoremp.h
|
||||
endif
|
||||
if INLINE
|
||||
$(PROJECT_INCLUDE)/rtems/posix/cond.inl: inline/rtems/posix/cond.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/cond.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/cond.inl
|
||||
@@ -153,38 +152,4 @@ PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/semaphore.inl
|
||||
$(PROJECT_INCLUDE)/rtems/posix/timer.inl: inline/rtems/posix/timer.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/timer.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/timer.inl
|
||||
|
||||
else
|
||||
$(PROJECT_INCLUDE)/rtems/posix/cond.inl: macros/rtems/posix/cond.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/cond.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/cond.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/key.inl: macros/rtems/posix/key.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/key.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/key.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/mqueue.inl: macros/rtems/posix/mqueue.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mqueue.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mqueue.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/mutex.inl: macros/rtems/posix/mutex.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mutex.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mutex.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/pthread.inl: macros/rtems/posix/pthread.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/pthread.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/pthread.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/priority.inl: macros/rtems/posix/priority.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/priority.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/priority.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/semaphore.inl: macros/rtems/posix/semaphore.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/semaphore.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/semaphore.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/timer.inl: macros/rtems/posix/timer.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/timer.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/timer.inl
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -40,7 +40,6 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/eventmp.h \
|
||||
include/rtems/rtems/taskmp.h
|
||||
endif
|
||||
|
||||
if INLINE
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/asr.inl \
|
||||
inline/rtems/rtems/attr.inl inline/rtems/rtems/barrier.inl \
|
||||
inline/rtems/rtems/dpmem.inl \
|
||||
@@ -51,18 +50,6 @@ include_rtems_rtems_HEADERS += inline/rtems/rtems/asr.inl \
|
||||
inline/rtems/rtems/sem.inl inline/rtems/rtems/status.inl \
|
||||
inline/rtems/rtems/support.inl inline/rtems/rtems/tasks.inl \
|
||||
inline/rtems/rtems/timer.inl
|
||||
else
|
||||
include_rtems_rtems_HEADERS += macros/rtems/rtems/asr.inl \
|
||||
macros/rtems/rtems/attr.inl macros/rtems/rtems/barrier.inl \
|
||||
macros/rtems/rtems/dpmem.inl \
|
||||
macros/rtems/rtems/event.inl macros/rtems/rtems/eventset.inl \
|
||||
macros/rtems/rtems/message.inl macros/rtems/rtems/modes.inl \
|
||||
macros/rtems/rtems/options.inl macros/rtems/rtems/part.inl \
|
||||
macros/rtems/rtems/ratemon.inl macros/rtems/rtems/region.inl \
|
||||
macros/rtems/rtems/sem.inl macros/rtems/rtems/status.inl \
|
||||
macros/rtems/rtems/support.inl macros/rtems/rtems/tasks.inl \
|
||||
macros/rtems/rtems/timer.inl
|
||||
endif
|
||||
|
||||
## src
|
||||
librtems_a_SOURCES =
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/asr.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the implemenation of all routines
|
||||
* associated with the asynchronous signal handler which are inlined.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_ASR_INL
|
||||
#define _RTEMS_RTEMS_ASR_INL
|
||||
|
||||
#include <rtems/score/isr.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ASR_Initialize
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ASR_Initialize( _information ) \
|
||||
{ \
|
||||
(_information)->is_enabled = TRUE; \
|
||||
(_information)->handler = NULL; \
|
||||
(_information)->mode_set = RTEMS_DEFAULT_MODES; \
|
||||
(_information)->signals_posted = 0; \
|
||||
(_information)->signals_pending = 0; \
|
||||
(_information)->nest_level = 0; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ASR_Swap_signals
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ASR_Swap_signals( _information ) \
|
||||
{ \
|
||||
rtems_signal_set _signals; \
|
||||
ISR_Level _level; \
|
||||
\
|
||||
_ISR_Disable( _level ); \
|
||||
_signals = (_information)->signals_pending; \
|
||||
(_information)->signals_pending = (_information)->signals_posted; \
|
||||
(_information)->signals_posted = _signals; \
|
||||
_ISR_Enable( _level ); \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ASR_Is_null_handler
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ASR_Is_null_handler( _asr_handler ) \
|
||||
( (_asr_handler) == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ASR_Are_signals_pending
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ASR_Are_signals_pending( _information ) \
|
||||
( (_information)->signals_posted != 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ASR_Post_signals
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ASR_Post_signals( _signals, _signal_set ) \
|
||||
do { \
|
||||
ISR_Level _level; \
|
||||
\
|
||||
_ISR_Disable( _level ); \
|
||||
*(_signal_set) |= (_signals); \
|
||||
_ISR_Enable( _level ); \
|
||||
} while ( 0 )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,131 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/attr.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains all of the inlined routines associated
|
||||
* with attributes.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_ATTR_INL
|
||||
#define _RTEMS_RTEMS_ATTR_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Set
|
||||
*/
|
||||
|
||||
#define _Attributes_Set( _new_attributes, _attribute_set ) \
|
||||
( (_attribute_set) | (_new_attributes) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Clear
|
||||
*/
|
||||
|
||||
#define _Attributes_Clear( _attribute_set, _mask ) \
|
||||
( (_attribute_set) & ~(_mask) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_floating_point
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_floating_point( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_FLOATING_POINT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_global
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
#define _Attributes_Is_global( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_GLOBAL )
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_priority( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_PRIORITY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_binary_semaphore
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_binary_semaphore( _attribute_set ) \
|
||||
(((_attribute_set) & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_simple_binary_semaphore
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_simple_binary_semaphore( _attribute_set ) \
|
||||
(((_attribute_set) & RTEMS_SEMAPHORE_CLASS) == RTEMS_SIMPLE_BINARY_SEMAPHORE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_counting_semaphore
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_counting_semaphore( _attribute_set ) \
|
||||
(((_attribute_set) & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_inherit_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_inherit_priority( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_INHERIT_PRIORITY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_priority_ceiling
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_priority_ceiling( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_PRIORITY_CEILING )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_barrier_automatic
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_barrier_automatic( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_BARRIER_AUTOMATIC_RELEASE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_system_task
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_system_task( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_SYSTEM_TASK )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,49 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/barrier.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the Barrier Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_BARRIER_INL
|
||||
#define _RTEMS_RTEMS_BARRIER_INL
|
||||
|
||||
/*
|
||||
* _Barrier_Allocate
|
||||
*/
|
||||
#define _Barrier_Allocate() \
|
||||
(Barrier_Control *) _Objects_Allocate( &_Barrier_Information )
|
||||
|
||||
/*
|
||||
* _Barrier_Free
|
||||
*/
|
||||
#define _Barrier_Free( _the_barrier ) \
|
||||
_Objects_Free( &_Barrier_Information, &(_the_barrier)->Object )
|
||||
|
||||
/*
|
||||
* _Barrier_Get
|
||||
*/
|
||||
|
||||
#define _Barrier_Get( _id, _location ) \
|
||||
(Barrier_Control *) \
|
||||
_Objects_Get( &_Barrier_Information, (_id), (_location) )
|
||||
|
||||
/*
|
||||
* _Barrier_Is_null
|
||||
*/
|
||||
#define _Barrier_Is_null( _the_barrier ) \
|
||||
( (_the_barrier) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,61 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/dpmem.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the inline routine used in conjunction
|
||||
* with the Dual Ported Memory Manager
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_DPMEM_INL
|
||||
#define _RTEMS_RTEMS_DPMEM_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Dual_ported_memory_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Dual_ported_memory_Allocate() \
|
||||
(Dual_ported_memory_Control *) \
|
||||
_Objects_Allocate( &_Dual_ported_memory_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Dual_ported_memory_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Dual_ported_memory_Free( _the_port ) \
|
||||
_Objects_Free( &_Dual_ported_memory_Information, &(_the_port)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Dual_ported_memory_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Dual_ported_memory_Get( _id, _location ) \
|
||||
(Dual_ported_memory_Control *) \
|
||||
_Objects_Get( &_Dual_ported_memory_Information, (_id), (_location) )
|
||||
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Dual_ported_memory_Is_null
|
||||
*/
|
||||
|
||||
#define _Dual_ported_memory_Is_null( _the_port ) \
|
||||
( (_the_port) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/event.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the implementation of macros for
|
||||
* the Event Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_EVENT_INL
|
||||
#define _RTEMS_RTEMS_EVENT_INL
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,61 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/eventset.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the macro implementation of inlined
|
||||
* routines in the event set object.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_EVENTSET_INL
|
||||
#define _RTEMS_RTEMS_EVENTSET_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Event_sets_Is_empty
|
||||
*/
|
||||
|
||||
#define _Event_sets_Is_empty( _the_event_set ) \
|
||||
((_the_event_set) == 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Event_sets_Is_empty
|
||||
*/
|
||||
|
||||
#define _Event_sets_Post( _the_new_events, _the_event_set ) \
|
||||
do { \
|
||||
ISR_Level level; \
|
||||
\
|
||||
_ISR_Disable( level ); \
|
||||
*(_the_event_set) |= (_the_new_events); \
|
||||
_ISR_Enable( level ); \
|
||||
} while (0);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Event_sets_Is_empty
|
||||
*/
|
||||
|
||||
#define _Event_sets_Get( _the_event_set, _the_event_condition ) \
|
||||
((_the_event_set) & (_the_event_condition))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Event_sets_Clear
|
||||
*/
|
||||
|
||||
#define _Event_sets_Clear( _the_event_set, _the_mask ) \
|
||||
((_the_event_set) & ~(_the_mask))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,51 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/message.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the macro implementation of all
|
||||
* inlined routines in the Message Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_MESSAGE_INL
|
||||
#define _RTEMS_RTEMS_MESSAGE_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Is_null( _the_message_queue ) \
|
||||
( (_the_message_queue) == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Free( _the_message_queue ) \
|
||||
_Objects_Free( &_Message_queue_Information, &(_the_message_queue)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Get( _id, _location ) \
|
||||
(Message_queue_Control *) \
|
||||
_Objects_Get( &_Message_queue_Information, (_id), (_location) )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,94 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/modes.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the macro implementation of the
|
||||
* inlined routines in the Mode Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_MODES_INL
|
||||
#define _RTEMS_RTEMS_MODES_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Mask_changed
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Mask_changed( _mode_set, _masks ) \
|
||||
( (_mode_set) & (_masks) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Is_asr_disabled
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Is_asr_disabled( _mode_set ) \
|
||||
(((_mode_set) & RTEMS_ASR_MASK) == RTEMS_NO_ASR)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Is_preempt
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Is_preempt( _mode_set ) \
|
||||
( ( (_mode_set) & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Is_timeslice
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Is_timeslice( _mode_set ) \
|
||||
(((_mode_set) & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Get_interrupt_level
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Get_interrupt_level( _mode_set ) \
|
||||
( (_mode_set) & RTEMS_INTERRUPT_MASK )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Set_interrupt_level
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Set_interrupt_level( _mode_set ) \
|
||||
_ISR_Set_level( _Modes_Get_interrupt_level( (_mode_set) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Modes_Change
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Modes_Change( _old_mode_set, _new_mode_set, \
|
||||
_mask, _out_mode_set, _changed ) \
|
||||
{ Modes_Control _out_mode; \
|
||||
\
|
||||
_out_mode = (_old_mode_set); \
|
||||
_out_mode &= ~(_mask); \
|
||||
_out_mode |= (_new_mode_set) & (_mask); \
|
||||
*(_changed) = _out_mode ^ (_old_mode_set); \
|
||||
*(_out_mode_set) = _out_mode; \
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,41 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/options.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the Options Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_OPTIONS_INL
|
||||
#define _RTEMS_RTEMS_OPTIONS_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Options_Is_no_wait
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Options_Is_no_wait( _option_set ) \
|
||||
( (_option_set) & RTEMS_NO_WAIT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Options_Is_any
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Options_Is_any( _option_set ) \
|
||||
( (_option_set) & RTEMS_EVENT_ANY )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,119 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/part.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of all inlined routines
|
||||
* in the Partition Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_PART_INL
|
||||
#define _RTEMS_RTEMS_PART_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Allocate_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Allocate_buffer( _the_partition ) \
|
||||
_Chain_Get( &(_the_partition)->Memory )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Free_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Free_buffer( _the_partition, _the_buffer ) \
|
||||
_Chain_Append( &(_the_partition)->Memory, (_the_buffer) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Is_buffer_on_boundary
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Is_buffer_on_boundary( _the_buffer, _the_partition ) \
|
||||
((((uint32_t ) _Addresses_Subtract( \
|
||||
(_the_buffer), \
|
||||
(_the_partition)->starting_address ) \
|
||||
) % \
|
||||
(_the_partition)->buffer_size) == 0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Is_buffer_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Is_buffer_valid( _the_buffer, _the_partition ) \
|
||||
( \
|
||||
_Addresses_Is_in_range( \
|
||||
(_the_buffer), \
|
||||
(_the_partition)->starting_address, \
|
||||
_Addresses_Add_offset( \
|
||||
(_the_partition)->starting_address, \
|
||||
(_the_partition)->length \
|
||||
) \
|
||||
) && \
|
||||
_Partition_Is_buffer_on_boundary( (_the_buffer), (_the_partition) ) \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Is_buffer_size_aligned
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Is_buffer_size_aligned( _buffer_size ) \
|
||||
((_buffer_size) % CPU_PARTITION_ALIGNMENT == 0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Allocate() \
|
||||
(Partition_Control *) _Objects_Allocate( &_Partition_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Free( _the_partition ) \
|
||||
_Objects_Free( &_Partition_Information, &(_the_partition)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Get( _id, _location ) \
|
||||
(Partition_Control *) \
|
||||
_Objects_Get( &_Partition_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Partition_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Partition_Is_null( _the_partition ) \
|
||||
( (_the_partition) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,87 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/ratemon.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines in the Rate Monotonic Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_RATEMON_INL
|
||||
#define _RTEMS_RTEMS_RATEMON_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Allocate() \
|
||||
(Rate_monotonic_Control *) \
|
||||
_Objects_Allocate( &_Rate_monotonic_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Free( _the_period ) \
|
||||
_Objects_Free( &_Rate_monotonic_Information, &(_the_period)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Get( _id, _location ) \
|
||||
(Rate_monotonic_Control *) \
|
||||
_Objects_Get( &_Rate_monotonic_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Is_active
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Is_active( _the_period ) \
|
||||
((_the_period)->state == RATE_MONOTONIC_ACTIVE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Is_inactive
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Is_inactive( _the_period ) \
|
||||
((_the_period)->state == RATE_MONOTONIC_INACTIVE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Is_expired
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Is_expired( _the_period ) \
|
||||
((_the_period)->state == RATE_MONOTONIC_EXPIRED)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Rate_monotonic_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Rate_monotonic_Is_null( _the_period ) ( (_the_period) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,77 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/region.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the Region Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_REGION_INL
|
||||
#define _RTEMS_RTEMS_REGION_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Region_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Region_Allocate() \
|
||||
(Region_Control *) _Objects_Allocate( &_Region_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Region_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Region_Free( _the_region ) \
|
||||
_Objects_Free( &_Region_Information, &(_the_region)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Region_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Region_Get( _id, _location ) \
|
||||
(Region_Control *) \
|
||||
_Objects_Get_no_protection( &_Region_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Region_Allocate_segment
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Region_Allocate_segment( _the_region, _size ) \
|
||||
_Heap_Allocate( &(_the_region)->Memory, (_size) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Region_Free_segment
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Region_Free_segment( _the_region, _the_segment ) \
|
||||
_Heap_Free( &(_the_region)->Memory, (_the_segment) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Region_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Region_Is_null( _the_region ) ( (_the_region) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,65 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/sem.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the Semaphore Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_SEM_INL
|
||||
#define _RTEMS_RTEMS_SEM_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Semaphore_Allocate() \
|
||||
(Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Semaphore_Free( _the_semaphore ) \
|
||||
_Objects_Free( &_Semaphore_Information, &(_the_semaphore)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Semaphore_Get( _id, _location ) \
|
||||
(Semaphore_Control *) \
|
||||
_Objects_Get( &_Semaphore_Information, (_id), (_location) )
|
||||
|
||||
#define _Semaphore_Get_interrupt_disable( _id, _location, _level ) \
|
||||
(Semaphore_Control *) \
|
||||
_Objects_Get_isr_disable( \
|
||||
&_Semaphore_Information, (_id), (_location), (_level) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Semaphore_Is_null( _the_semaphore ) \
|
||||
( (_the_semaphore) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,41 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/status.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the implementations of the inlined
|
||||
* routines for the status package.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_STATUS_INL
|
||||
#define _RTEMS_RTEMS_STATUS_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* rtems_is_status_successful
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_is_status_successful( _code ) \
|
||||
( (_code) == RTEMS_SUCCESSFUL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* rtems_are_statuses_equal
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_are_statuses_equal( _code1, _code2 ) \
|
||||
((_code1) == (_code2))
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,46 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/support.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the macros implementation of all
|
||||
* of the inlined routines specific to the RTEMS API.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_SUPPORT_INL
|
||||
#define _RTEMS_RTEMS_SUPPORT_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* rtems_is_name_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_is_name_valid( _name ) \
|
||||
( (_name) != 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* rtems_name_to_characters
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_name_to_characters( _name, _c1, _c2, _c3, _c4 ) \
|
||||
{ \
|
||||
(*(_c1) = ((_name) >> 24) & 0xff; \
|
||||
(*(_c2) = ((_name) >> 16) & 0xff; \
|
||||
(*(_c3) = ((_name) >> 8) & 0xff; \
|
||||
(*(_c4) = ((_name)) & 0xff; \
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,60 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/tasks.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of all inlined
|
||||
* routines in the with RTEMS Tasks Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_TASKS_INL
|
||||
#define _RTEMS_RTEMS_TASKS_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _RTEMS_tasks_Allocate() \
|
||||
(Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _RTEMS_tasks_Free( _the_task ) \
|
||||
_Objects_Free( &_RTEMS_tasks_Information, &(_the_task)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
#define _RTEMS_tasks_Priority_to_Core( _priority ) \
|
||||
((Priority_Control) (_priority))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Priority_is_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define _RTEMS_tasks_Priority_is_valid( _the_priority ) \
|
||||
( ((_the_priority) >= RTEMS_MINIMUM_PRIORITY) && \
|
||||
((_the_priority) <= RTEMS_MAXIMUM_PRIORITY) )
|
||||
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,88 +0,0 @@
|
||||
/**
|
||||
* @file rtems/rtems/timer.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains the macro implementation of the inlined routines
|
||||
* from the Timer Manager.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_TIMER_INL
|
||||
#define _RTEMS_RTEMS_TIMER_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Allocate() \
|
||||
(Timer_Control *) _Objects_Allocate( &_Timer_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Free( _the_timer ) \
|
||||
_Objects_Free( &_Timer_Information, &(_the_timer)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Get( _id, _location ) \
|
||||
(Timer_Control *) \
|
||||
_Objects_Get( &_Timer_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Is_interval_class
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Is_interval_class( _the_class ) \
|
||||
( ((_the_class) == TIMER_INTERVAL) || \
|
||||
((_the_class) == TIMER_INTERVAL_ON_TASK) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Is_time_of_day_class
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Is_time_of_day_class( _the_class ) \
|
||||
( (_the_class) == TIMER_TIME_OF_DAY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Is_dormant_class
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Is_dormant_class( _the_class ) \
|
||||
( (_the_class) == TIMER_DORMANT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Timer_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Timer_Is_null( _the_timer ) \
|
||||
( (_the_timer) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -156,7 +156,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h: include/rtems/rtems/taskmp.h $(PROJECT_
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
|
||||
endif
|
||||
if INLINE
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/asr.inl: inline/rtems/rtems/asr.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/asr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/asr.inl
|
||||
@@ -225,72 +224,3 @@ $(PROJECT_INCLUDE)/rtems/rtems/timer.inl: inline/rtems/rtems/timer.inl $(PROJECT
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timer.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timer.inl
|
||||
|
||||
else
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/asr.inl: macros/rtems/rtems/asr.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/asr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/asr.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/attr.inl: macros/rtems/rtems/attr.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/attr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/attr.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/barrier.inl: macros/rtems/rtems/barrier.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrier.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrier.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl: macros/rtems/rtems/dpmem.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/event.inl: macros/rtems/rtems/event.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/event.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/event.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/eventset.inl: macros/rtems/rtems/eventset.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/message.inl: macros/rtems/rtems/message.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/message.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/message.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/modes.inl: macros/rtems/rtems/modes.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modes.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modes.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/options.inl: macros/rtems/rtems/options.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/options.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/options.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/part.inl: macros/rtems/rtems/part.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/part.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/part.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/ratemon.inl: macros/rtems/rtems/ratemon.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/ratemon.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/ratemon.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/region.inl: macros/rtems/rtems/region.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/region.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/region.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/sem.inl: macros/rtems/rtems/sem.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/sem.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/sem.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/status.inl: macros/rtems/rtems/status.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/status.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/status.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/support.inl: macros/rtems/rtems/support.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/support.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/support.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/tasks.inl: macros/rtems/rtems/tasks.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/timer.inl: macros/rtems/rtems/timer.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timer.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timer.inl
|
||||
endif
|
||||
|
||||
@@ -14,11 +14,7 @@ include_rtems_HEADERS += include/rtems/config.h include/rtems/extension.h \
|
||||
|
||||
EXTRA_DIST = include/rtems/README
|
||||
|
||||
if INLINE
|
||||
include_rtems_HEADERS += inline/rtems/extension.inl
|
||||
else
|
||||
include_rtems_HEADERS += macros/rtems/extension.inl
|
||||
endif
|
||||
|
||||
## src
|
||||
AM_CPPFLAGS += -D__RTEMS_INSIDE__
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
/**
|
||||
* @file rtems/extension.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined routines
|
||||
* from the Extension Manager.
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __EXTENSION_inl
|
||||
#define __EXTENSION_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Extension_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Extension_Allocate() \
|
||||
(Extension_Control *) _Objects_Allocate( &_Extension_Information )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Extension_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Extension_Free( _the_extension ) \
|
||||
_Objects_Free( &_Extension_Information, &(_the_extension)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Extension_Get
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Extension_Get( _id, _location ) \
|
||||
(Extension_Control *) \
|
||||
_Objects_Get( &_Extension_Information, (_id), (_location) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Extension_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Extension_Is_null( _the_extension ) \
|
||||
( (_the_extension) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -50,13 +50,7 @@ $(PROJECT_INCLUDE)/rtems/sptables.h: include/rtems/sptables.h $(PROJECT_INCLUDE)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/sptables.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/sptables.h
|
||||
|
||||
if INLINE
|
||||
$(PROJECT_INCLUDE)/rtems/extension.inl: inline/rtems/extension.inl $(PROJECT_INCLUDE)/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/extension.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/extension.inl
|
||||
|
||||
else
|
||||
$(PROJECT_INCLUDE)/rtems/extension.inl: macros/rtems/extension.inl $(PROJECT_INCLUDE)/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/extension.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/extension.inl
|
||||
endif
|
||||
|
||||
@@ -40,7 +40,6 @@ include_rtems_score_HEADERS += include/rtems/score/mpci.h \
|
||||
endif
|
||||
|
||||
## inline
|
||||
if INLINE
|
||||
include_rtems_score_HEADERS += inline/rtems/score/address.inl \
|
||||
inline/rtems/score/chain.inl inline/rtems/score/corebarrier.inl \
|
||||
inline/rtems/score/coremsg.inl inline/rtems/score/corerwlock.inl \
|
||||
@@ -59,27 +58,6 @@ if HAS_MP
|
||||
include_rtems_score_HEADERS += inline/rtems/score/mppkt.inl \
|
||||
inline/rtems/score/objectmp.inl inline/rtems/score/threadmp.inl
|
||||
endif
|
||||
else
|
||||
## macros
|
||||
include_rtems_score_HEADERS += macros/rtems/score/address.inl \
|
||||
macros/rtems/score/chain.inl macros/rtems/score/corebarrier.inl \
|
||||
macros/rtems/score/coremsg.inl \
|
||||
macros/rtems/score/corerwlock.inl \
|
||||
macros/rtems/score/corespinlock.inl \
|
||||
macros/rtems/score/coremutex.inl macros/rtems/score/coresem.inl \
|
||||
macros/rtems/score/heap.inl macros/rtems/score/isr.inl \
|
||||
macros/rtems/score/object.inl macros/rtems/score/priority.inl \
|
||||
macros/rtems/score/stack.inl macros/rtems/score/states.inl \
|
||||
macros/rtems/score/sysstate.inl macros/rtems/score/thread.inl \
|
||||
macros/rtems/score/tod.inl macros/rtems/score/tqdata.inl \
|
||||
macros/rtems/score/userext.inl macros/rtems/score/watchdog.inl \
|
||||
macros/rtems/score/wkspace.inl
|
||||
if HAS_MP
|
||||
## We only build multiprocessing related files if HAS_MP was defined
|
||||
include_rtems_score_HEADERS += macros/rtems/score/mppkt.inl \
|
||||
macros/rtems/score/objectmp.inl macros/rtems/score/threadmp.inl
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST = macros/README
|
||||
|
||||
|
||||
@@ -113,21 +113,6 @@ void _Chain_Initialize(
|
||||
uint32_t node_size
|
||||
);
|
||||
|
||||
#ifndef RTEMS_INLINES
|
||||
/**
|
||||
* @brief Get the first node (do not disable interrupts)
|
||||
*
|
||||
* This method attempts to obtain the first node from @a the_chain.
|
||||
*
|
||||
* @param[in] the_chain points to the chain to operate upon
|
||||
* @return If successful, a chain node is returned. Otherwise, NULL
|
||||
* is returned.
|
||||
*/
|
||||
Chain_Node *_Chain_Get_first_unprotected(
|
||||
Chain_Control *the_chain
|
||||
);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Extract the specified node from a chain
|
||||
*
|
||||
|
||||
@@ -702,17 +702,6 @@ void _Thread_Resume(
|
||||
*/
|
||||
boolean _Thread_Evaluate_mode( void );
|
||||
|
||||
#ifndef RTEMS_INLINES
|
||||
/**
|
||||
* @note If we are not using static inlines, this must be a real
|
||||
* subroutine call.
|
||||
*/
|
||||
Thread_Control *_Thread_Get (
|
||||
Objects_Id id,
|
||||
Objects_Locations *location
|
||||
);
|
||||
#endif
|
||||
|
||||
#if (CPU_PROVIDES_IDLE_THREAD_BODY == FALSE)
|
||||
/**
|
||||
* This routine is the body of the system idle thread.
|
||||
|
||||
@@ -125,14 +125,10 @@ extern "C" {
|
||||
* functions. The static inline implementation allows better
|
||||
* type checking with no cost in code size or execution speed.
|
||||
*/
|
||||
#ifdef RTEMS_INLINES
|
||||
# ifdef __GNUC__
|
||||
#ifdef __GNUC__
|
||||
# define RTEMS_INLINE_ROUTINE static __inline__
|
||||
# else
|
||||
# define RTEMS_INLINE_ROUTINE static inline
|
||||
# endif
|
||||
#else
|
||||
# define RTEMS_INLINE_ROUTINE
|
||||
# define RTEMS_INLINE_ROUTINE static inline
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The files in this directory are not considered the "primary" source
|
||||
of inlined routines for RTEMS. The "inline" directory contains
|
||||
the implementations of the inlined basis which are regularly
|
||||
tested. In general, an effort is made to keep the contents of
|
||||
this directory up to date but testing is only performed irregularly
|
||||
and even then it is usually with a single target processor and BSP.
|
||||
|
||||
The primary purpose of the code in this directory is to ensure
|
||||
that RTEMS can be compiled using a C compiler which does not support
|
||||
static inline routines.
|
||||
@@ -1,75 +0,0 @@
|
||||
/* macros/address.h
|
||||
*
|
||||
* This include file contains the bodies of the routines
|
||||
* about addresses which are inlined.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_ADDRESS_INL
|
||||
#define _RTEMS_SCORE_ADDRESS_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Addresses_Add_offset
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Addresses_Add_offset( _base, _offset ) \
|
||||
((void *)((char *)(_base) + (_offset)))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Addresses_Subtract_offset
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Addresses_Subtract_offset( _base, _offset ) \
|
||||
((void *)((char *)(_base) - (_offset)))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Addresses_Subtract
|
||||
*
|
||||
* NOTE: The cast of an address to an uint32_t makes this code
|
||||
* dependent on an addresses being thirty two bits.
|
||||
*/
|
||||
|
||||
#define _Addresses_Subtract( _left, _right ) \
|
||||
((void *)(_left) - (void *)(_right))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Addresses_Is_aligned
|
||||
*
|
||||
*/
|
||||
|
||||
#if (CPU_ALIGNMENT == 0)
|
||||
#define _Addresses_Is_aligned( _address ) \
|
||||
(TRUE)
|
||||
#elif defined(RTEMS_CPU_HAS_16_BIT_ADDRESSES)
|
||||
#define _Addresses_Is_aligned( _address ) \
|
||||
( ( (unsigned short)(_address) % CPU_ALIGNMENT ) == 0 )
|
||||
#else
|
||||
#define _Addresses_Is_aligned( _address ) \
|
||||
( ( (uint32_t )(_address) % CPU_ALIGNMENT ) == 0 )
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Addresses_Is_in_range
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Addresses_Is_in_range( _address, _base, _limit ) \
|
||||
( (_address) >= (_base) && (_address) <= (_limit) )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,199 +0,0 @@
|
||||
/* macros/chain.h
|
||||
*
|
||||
* This include file contains the bodies of the routines which are
|
||||
* associated with doubly linked chains and inlined.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_CHAIN_INL
|
||||
#define _RTEMS_SCORE_CHAIN_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Are_nodes_equal
|
||||
*/
|
||||
|
||||
#define _Chain_Are_nodes_equal( _left, _right ) \
|
||||
( (_left) == (_right) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_null
|
||||
*/
|
||||
|
||||
#define _Chain_Is_null( _the_chain ) \
|
||||
( (_the_chain) == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_null_node
|
||||
*/
|
||||
|
||||
#define _Chain_Is_null_node( _the_node ) \
|
||||
( (_the_node) == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Head
|
||||
*/
|
||||
|
||||
#define _Chain_Head( _the_chain ) \
|
||||
((Chain_Node *) ((void *)(_the_chain)))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Tail
|
||||
*/
|
||||
|
||||
#define _Chain_Tail( _the_chain ) \
|
||||
((Chain_Node *) ((void *)&(_the_chain)->permanent_null))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_empty
|
||||
*/
|
||||
|
||||
#define _Chain_Is_empty( _the_chain ) \
|
||||
( (_the_chain)->first == _Chain_Tail( (_the_chain) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_first
|
||||
*/
|
||||
|
||||
#define _Chain_Is_first( _the_node ) \
|
||||
( (the_node)->previous == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_last
|
||||
*/
|
||||
|
||||
#define _Chain_Is_last( _the_node ) \
|
||||
( (_the_node)->next == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Has_only_one_node
|
||||
*/
|
||||
|
||||
#define _Chain_Has_only_one_node( _the_chain ) \
|
||||
( (_the_chain)->first == (_the_chain)->last )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_head
|
||||
*/
|
||||
|
||||
#define _Chain_Is_head( _the_chain, _the_node ) \
|
||||
( (_the_node) == _Chain_Head( (_the_chain) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Is_tail
|
||||
*/
|
||||
|
||||
#define _Chain_Is_tail( _the_chain, _the_node ) \
|
||||
( (_the_node) == _Chain_Tail( (_the_chain) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* Chain_Initialize_empty
|
||||
*/
|
||||
|
||||
#define _Chain_Initialize_empty( _the_chain ) \
|
||||
{ \
|
||||
(_the_chain)->first = _Chain_Tail( (_the_chain) ); \
|
||||
(_the_chain)->permanent_null = NULL; \
|
||||
(_the_chain)->last = _Chain_Head( (_the_chain) ); \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Extract_unprotected
|
||||
*/
|
||||
|
||||
#define _Chain_Extract_unprotected( _the_node ) \
|
||||
{ \
|
||||
Chain_Node *_next; \
|
||||
Chain_Node *_previous; \
|
||||
\
|
||||
_next = (_the_node)->next; \
|
||||
_previous = (_the_node)->previous; \
|
||||
_next->previous = _previous; \
|
||||
_previous->next = _next; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Get_unprotected
|
||||
*/
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* Chain_Get_unprotected
|
||||
*/
|
||||
|
||||
#define _Chain_Get_unprotected( _the_chain ) \
|
||||
(( !_Chain_Is_empty( (_the_chain) ) ) \
|
||||
? _Chain_Get_first_unprotected( (_the_chain) ) \
|
||||
: NULL)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Insert_unprotected
|
||||
*/
|
||||
|
||||
#define _Chain_Insert_unprotected( _after_node, _the_node ) \
|
||||
do { \
|
||||
Chain_Node *_before_node; \
|
||||
\
|
||||
(_the_node)->previous = (_after_node); \
|
||||
_before_node = (_after_node)->next; \
|
||||
(_after_node)->next = (_the_node); \
|
||||
(_the_node)->next = _before_node; \
|
||||
_before_node->previous = (_the_node); \
|
||||
} while (0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Append_unprotected
|
||||
*/
|
||||
|
||||
#define _Chain_Append_unprotected( _the_chain, _the_node ) \
|
||||
{ \
|
||||
Chain_Node *_old_last_node; \
|
||||
\
|
||||
(_the_node)->next = _Chain_Tail( (_the_chain) ); \
|
||||
_old_last_node = (_the_chain)->last; \
|
||||
(_the_chain)->last = (_the_node); \
|
||||
_old_last_node->next = (_the_node); \
|
||||
(_the_node)->previous = _old_last_node; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Prepend_unprotected
|
||||
*/
|
||||
|
||||
#define _Chain_Prepend_unprotected( _the_chain, _the_node ) \
|
||||
_Chain_Insert_unprotected( _Chain_Head( (_the_chain) ), (_the_node) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Prepend
|
||||
*/
|
||||
|
||||
#define _Chain_Prepend( _the_chain, _the_node ) \
|
||||
_Chain_Insert( _Chain_Head( (_the_chain) ), (_the_node) )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,34 +0,0 @@
|
||||
/* macros/corebarrier.inl
|
||||
*
|
||||
* This include file contains all of the inlined routines associated
|
||||
* with core barriers.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2006.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_COREBARRIER_INL
|
||||
#define _RTEMS_SCORE_COREBARRIER_INL
|
||||
|
||||
/*
|
||||
* _CORE_barrier_Is_automatic
|
||||
*/
|
||||
|
||||
#define _CORE_barrier_Is_automatic( _the_attribute ) \
|
||||
( (_the_attribute)->discipline == CORE_BARRIER_AUTOMATIC_RELEASE)
|
||||
|
||||
/*
|
||||
* _CORE_barrier_Get_number_of_waiting_threads
|
||||
*/
|
||||
|
||||
#define _CORE_barrier_Get_number_of_waiting_threads( _the_barrier ) \
|
||||
( (_the_barrier)->number_of_waiting_threads )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,148 +0,0 @@
|
||||
/* coremsg.inl
|
||||
*
|
||||
* This include file contains the macro implementation of all
|
||||
* inlined routines in the Core Message Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_COREMSG_INL
|
||||
#define _RTEMS_SCORE_COREMSG_INL
|
||||
|
||||
#include <string.h> /* for memcpy */
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Send
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Send( _the_message_queue, _buffer, _size, \
|
||||
_id, _api_message_queue_mp_support, _wait, _timeout ) \
|
||||
_CORE_message_queue_Submit( (_the_message_queue), (_buffer), (_size), \
|
||||
(_id), (_api_message_queue_mp_support), \
|
||||
CORE_MESSAGE_QUEUE_SEND_REQUEST, (_wait), (_timeout) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Urgent
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Urgent( _the_message_queue, _buffer, _size, \
|
||||
_id, _api_message_queue_mp_support, _wait, _timeout ) \
|
||||
_CORE_message_queue_Submit( (_the_message_queue), (_buffer), (_size), \
|
||||
(_id), (_api_message_queue_mp_support), \
|
||||
CORE_MESSAGE_QUEUE_URGENT_REQUEST, (_wait), (_timeout) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Copy_buffer
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Copy_buffer( _source, _destination, _size ) \
|
||||
memcpy( _destination, _source, _size)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Allocate_message_buffer( _the_message_queue ) \
|
||||
(CORE_message_queue_Buffer_control *) \
|
||||
_Chain_Get( &(_the_message_queue)->Inactive_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Free_message_buffer( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( \
|
||||
&(_the_message_queue)->Inactive_messages, \
|
||||
&(_the_message)->Node \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_priority( _the_attribute ) \
|
||||
((_the_attribute)->discipline == CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Get_pending_message( _the_message_queue ) \
|
||||
(CORE_message_queue_Buffer_control *) \
|
||||
_Chain_Get_unprotected( &(_the_message_queue)->Pending_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Append_unprotected( \
|
||||
_the_message_queue, _the_message ) \
|
||||
_Chain_Append_unprotected( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Prepend_unprotected( \
|
||||
_the_message_queue, _the_message ) \
|
||||
_Chain_Prepend_unprotected( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_null( _the_message_queue ) \
|
||||
( (_the_message_queue) == NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_notify_enabled
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_notify_enabled( _the_message_queue ) \
|
||||
( (_the_message_queue)->notify_handler != NULL )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Set_notify
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Set_notify( \
|
||||
_the_message_queue, _the_handler, _the_argument ) \
|
||||
do { \
|
||||
(_the_message_queue)->notify_handler = (_the_handler); \
|
||||
(_the_message_queue)->notify_argument = (_the_argument); \
|
||||
} while ( 0 )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,81 +0,0 @@
|
||||
/* macros/coremutex.h
|
||||
*
|
||||
* This include file contains all of the inlined routines associated
|
||||
* with core mutexes.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_COREMUTEX_INL
|
||||
#define _RTEMS_SCORE_COREMUTEX_INL
|
||||
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_mutex_Is_locked
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_mutex_Is_locked( _the_mutex ) \
|
||||
( (_the_mutex)->lock == CORE_MUTEX_LOCKED )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_mutex_Is_fifo
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_mutex_Is_fifo( _the_attribute ) \
|
||||
( (_the_attribute)->discipline == CORE_MUTEX_DISCIPLINES_FIFO )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_mutex_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_mutex_Is_priority( _the_attribute ) \
|
||||
( (_the_attribute)->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_mutex_Is_inherit_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_mutex_Is_inherit_priority( _the_attribute ) \
|
||||
( (_the_attribute)->discipline == \
|
||||
CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_mutex_Is_priority_ceiling
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_mutex_Is_priority_ceiling( _the_attribute )\
|
||||
( (_the_attribute)->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_mutex_Seize_interrupt_trylock
|
||||
*
|
||||
* NOTE: This is not really a MACRO version of this routine.
|
||||
* A body is in coremutexseize.c that is duplicated
|
||||
* from the .inl by hand.
|
||||
*/
|
||||
|
||||
int _CORE_mutex_Seize_interrupt_trylock(
|
||||
CORE_mutex_Control *the_mutex,
|
||||
ISR_Level *level_p
|
||||
);
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,21 +0,0 @@
|
||||
/* macros/corerwlock.inl
|
||||
*
|
||||
* This include file contains all of the inlined routines associated
|
||||
* with core RWLocks.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2006.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_CORERWLOCK_INL
|
||||
#define _RTEMS_SCORE_CORERWLOCK_INL
|
||||
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,71 +0,0 @@
|
||||
/* macros/coresem.h
|
||||
*
|
||||
* This include file contains all of the inlined routines associated
|
||||
* with core semaphores.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_CORESEM_INL
|
||||
#define _RTEMS_SCORE_CORESEM_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_semaphore_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_semaphore_Is_priority( _the_attribute ) \
|
||||
( (_the_attribute)->discipline == CORE_SEMAPHORE_DISCIPLINES_PRIORITY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_semaphore_Get_count
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_semaphore_Get_count( _the_semaphore ) \
|
||||
( (_the_semaphore)->count )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_semaphore_Seize_isr_disable
|
||||
*/
|
||||
|
||||
#define _CORE_semaphore_Seize_isr_disable( \
|
||||
_the_semaphore, _id, _wait, _timeout, _level_p) \
|
||||
{ \
|
||||
Thread_Control *executing; \
|
||||
ISR_Level level = *(_level_p); \
|
||||
\
|
||||
/* disabled when you get here */ \
|
||||
\
|
||||
executing = _Thread_Executing; \
|
||||
executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; \
|
||||
if ( (_the_semaphore)->count != 0 ) { \
|
||||
(_the_semaphore)->count -= 1; \
|
||||
_ISR_Enable( level ); \
|
||||
} else if ( !(_wait) ) { \
|
||||
_ISR_Enable( level ); \
|
||||
executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; \
|
||||
} else { \
|
||||
_Thread_Disable_dispatch(); \
|
||||
_Thread_queue_Enter_critical_section( &(_the_semaphore)->Wait_queue ); \
|
||||
executing->Wait.queue = &(_the_semaphore)->Wait_queue; \
|
||||
executing->Wait.id = (_id); \
|
||||
_ISR_Enable( level ); \
|
||||
\
|
||||
_Thread_queue_Enqueue( &(_the_semaphore)->Wait_queue, (_timeout) ); \
|
||||
_Thread_Enable_dispatch(); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,23 +0,0 @@
|
||||
/* macros/rtems/score/corespinlock.inl
|
||||
*
|
||||
* This include file contains all of the inlined routines associated
|
||||
* with core spinlocks.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2006.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_CORESPINLOCK_INL
|
||||
#define _RTEMS_SCORE_CORESPINLOCK_INL
|
||||
|
||||
#define _CORE_spinlock_Is_busy(_the_spinlock) \
|
||||
((_the_spinlock)->users != 0)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,221 +0,0 @@
|
||||
/* heap.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the heap handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_HEAP_INL
|
||||
#define _RTEMS_SCORE_HEAP_INL
|
||||
|
||||
/*
|
||||
* WARNING: this file is only visually checked against
|
||||
* '../../../inline/rtems/score/heap.inl'. Use those file for reference
|
||||
* if you encounter problems.
|
||||
*/
|
||||
|
||||
#include <rtems/score/address.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Head
|
||||
*/
|
||||
|
||||
#define _Heap_Head( _the_heap ) (&(_the_heap)->free_list)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Tail
|
||||
*/
|
||||
|
||||
#define _Heap_Tail( _the_heap ) (&(_the_heap)->free_list)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_First
|
||||
*/
|
||||
|
||||
#define _Heap_First( _the_heap ) (_Heap_Head(_the_heap)->next)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Last
|
||||
*/
|
||||
|
||||
#define _Heap_Last( _the_heap ) (_Heap_Tail(_the_heap)->prev)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Block_remove
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Heap_Block_remove( _the_block ) \
|
||||
do { \
|
||||
Heap_Block *block = (_the_block); \
|
||||
Heap_Block *next = block->next; \
|
||||
Heap_Block *prev = block->prev; \
|
||||
prev->next = next; \
|
||||
next->prev = prev; \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Block_replace
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Heap_Block_replace( _old_block, _new_block ) \
|
||||
do { \
|
||||
Heap_Block *block = (_old_block); \
|
||||
Heap_Block *next = block->next; \
|
||||
Heap_Block *prev = block->prev; \
|
||||
block = (_new_block); \
|
||||
block->next = next; \
|
||||
block->prev = prev; \
|
||||
next->prev = prev->next = block; \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Block_insert_after
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Heap_Block_insert_after( _prev_block, _the_block ) \
|
||||
do { \
|
||||
Heap_Block *prev = (_prev_block); \
|
||||
Heap_Block *block = (_the_block); \
|
||||
Heap_Block *next = prev->next; \
|
||||
block->next = next; \
|
||||
block->prev = prev; \
|
||||
next->prev = prev->next = block; \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_aligned
|
||||
*/
|
||||
|
||||
#define _Heap_Is_aligned( _value, _alignment ) \
|
||||
(((_value) % (_alignment)) == 0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Align_up
|
||||
*/
|
||||
|
||||
#define _Heap_Align_up( _value, _alignment ) \
|
||||
do { \
|
||||
uint32_t v = *(_value); \
|
||||
uint32_t a = (_alignment); \
|
||||
uint32_t r = v % a; \
|
||||
*(_value) = r ? v - r + a : v; \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Align_down
|
||||
*/
|
||||
|
||||
#define _Heap_Align_down( _value, _alignment ) \
|
||||
do { \
|
||||
uint32_t v = *(_value); \
|
||||
*(_value) = v - (v % (_alignment)); \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_aligned_ptr
|
||||
*/
|
||||
|
||||
#define _Heap_Is_aligned_ptr( _ptr, _alignment ) \
|
||||
((_H_p2u(_ptr) % (_alignment)) == 0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Align_up_uptr
|
||||
*/
|
||||
|
||||
#define _Heap_Align_up_uptr( _value, _alignment ) \
|
||||
do { \
|
||||
_H_uptr_t v = *(_value); \
|
||||
uint32_t a = (_alignment); \
|
||||
_H_uptr_t r = v % a; \
|
||||
*(_value) = r ? v - r + a : v; \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Align_down_uptr
|
||||
*/
|
||||
|
||||
#define _Heap_Align_down_uptr( _value, _alignment ) \
|
||||
do { \
|
||||
_H_uptr_t v = *(_value); \
|
||||
*(_value) = v - (v % (_alignment)); \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Block_at
|
||||
*/
|
||||
|
||||
#define _Heap_Block_at( _base, _offset ) \
|
||||
( (Heap_Block *) _Addresses_Add_offset( (_base), (_offset) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_area
|
||||
*/
|
||||
|
||||
#define _Heap_User_area( _the_block ) \
|
||||
((void *) _Addresses_Add_offset( (_the_block), HEAP_BLOCK_USER_OFFSET ))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Start_of_block
|
||||
*/
|
||||
|
||||
#define _Heap_Start_of_block( _the_heap, _base, _the_block_ptr ) \
|
||||
do { \
|
||||
_H_uptr_t addr = _H_p2u(_base); \
|
||||
_Heap_Align_down( &addr, (_the_heap)->page_size ); \
|
||||
*(_the_block_ptr) = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET); \
|
||||
} while(0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_prev_used
|
||||
*/
|
||||
|
||||
#define _Heap_Is_prev_used( _the_block ) \
|
||||
((_the_block)->size & HEAP_PREV_USED)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Block_size
|
||||
*/
|
||||
|
||||
#define _Heap_Block_size( _the_block ) \
|
||||
((_the_block)->size & ~HEAP_PREV_USED)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_block_in
|
||||
*/
|
||||
|
||||
#define _Heap_Is_block_in( _the_heap, _the_block ) \
|
||||
( _Addresses_Is_in_range( (_the_block), \
|
||||
(_the_heap)->start, (_the_heap)->final ) )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,38 +0,0 @@
|
||||
/* isr.inl
|
||||
*
|
||||
* This include file contains the macro implementation of all
|
||||
* inlined routines in the Interrupt Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_ISR_INL
|
||||
#define _RTEMS_SCORE_ISR_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ISR_Is_vector_number_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ISR_Is_vector_number_valid( _vector ) \
|
||||
( (_vector) <= CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _ISR_Is_valid_user_handler
|
||||
*
|
||||
*/
|
||||
|
||||
#define _ISR_Is_valid_user_handler( _handler ) \
|
||||
((_handler) != NULL)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,40 +0,0 @@
|
||||
/* macros/mppkt.h
|
||||
*
|
||||
* This package is the implementation of the Packet Handler
|
||||
* routines which are inlined.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_MPPKT_INL
|
||||
#define _RTEMS_SCORE_MPPKT_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Mp_packet_Is_valid_packet_class
|
||||
*
|
||||
* NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary
|
||||
* because this enum starts at lower bound of zero.
|
||||
*/
|
||||
|
||||
#define _Mp_packet_Is_valid_packet_class( _the_packet_class ) \
|
||||
( (_the_packet_class) <= MP_PACKET_CLASSES_LAST )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Mp_packet_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Mp_packet_Is_null ( _the_packet ) \
|
||||
( (_the_packet) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,198 +0,0 @@
|
||||
/**
|
||||
* @file rtems/score/object.inl
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains the macro implementation of all
|
||||
* of the inlined routines in the Object Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_OBJECT_INL
|
||||
#define _RTEMS_SCORE_OBJECT_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Build_id
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Build_id( _the_api, _the_class, _node, _index ) \
|
||||
( (( (Objects_Id) _the_api ) << OBJECTS_API_START_BIT) | \
|
||||
(( (Objects_Id) _the_class ) << OBJECTS_CLASS_START_BIT) | \
|
||||
(( (Objects_Id) _node ) << OBJECTS_NODE_START_BIT) | \
|
||||
(( (Objects_Id) _index ) << OBJECTS_INDEX_START_BIT) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Get_API
|
||||
*/
|
||||
|
||||
#define _Objects_Get_API( _id ) \
|
||||
(Objects_APIs) \
|
||||
(((_id) >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Get_class
|
||||
*/
|
||||
|
||||
#define _Objects_Get_class( _id ) \
|
||||
(uint32_t ) \
|
||||
(((_id) >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Get_node
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Get_node( _id ) \
|
||||
(((_id) >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Get_index
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Get_index( _id ) \
|
||||
(((_id) >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Is_class_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Is_class_valid( _the_class ) \
|
||||
( (_the_class) /* XXX && (_the_class) <= OBJECTS_CLASSES_LAST */ )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Is_local_node
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
#define _Objects_Is_local_node( _node ) \
|
||||
( (_node) == _Objects_Local_node )
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Is_local_id
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
#define _Objects_Is_local_id( _id ) \
|
||||
_Objects_Is_local_node( _Objects_Get_node(_id) )
|
||||
#else
|
||||
#define _Objects_Is_local_id( _id ) \
|
||||
TRUE
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Are_ids_equal
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Are_ids_equal( _left, _right ) \
|
||||
( (_left) == (_right) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Get_local_object
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Get_local_object( _information, _index ) \
|
||||
( ( (_index) > (_information)->maximum) ? NULL : \
|
||||
(_information)->local_table[ (_index) ] )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Set_local_object
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Set_local_object( information, index, the_object ) \
|
||||
{ \
|
||||
if ( index <= information->maximum) \
|
||||
information->local_table[ index ] = the_object; \
|
||||
}
|
||||
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Get_information
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Get_information( id ) \
|
||||
( \
|
||||
( !_Objects_Is_class_valid( _Objects_Get_class( id ) ) ) ? \
|
||||
NULL : \
|
||||
_Objects_Information_table[ _Objects_Get_API( id ) ] \
|
||||
[ _Objects_Get_class( id ) ] \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Open
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Open( _information, _the_object, _name ) \
|
||||
do { \
|
||||
uint32_t _index; \
|
||||
\
|
||||
_index = _Objects_Get_index( (_the_object)->id ); \
|
||||
(_information)->local_table[ _index ] = (_the_object); \
|
||||
\
|
||||
if ( (_information)->is_string ) \
|
||||
/* _Objects_Copy_name_string( (_name), (_the_object)->name ); */\
|
||||
(_the_object)->name = (_name); \
|
||||
else \
|
||||
/* _Objects_Copy_name_raw( \
|
||||
(_name), (_the_object)->name, (_information)->name_length ); */ \
|
||||
(_the_object)->name = (_name); \
|
||||
} while (0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Close
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_Close( _information, _the_object ) \
|
||||
do { \
|
||||
uint32_t _index; \
|
||||
\
|
||||
_index = _Objects_Get_index( (_the_object)->id ); \
|
||||
(_information)->local_table[ _index ] = (Objects_Control *) NULL; \
|
||||
/* _Objects_Clear_name( (_the_object)->name, (_information)->name_length ); */ \
|
||||
(_the_object)->name = 0; \
|
||||
} while (0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_Namespace_remove
|
||||
*/
|
||||
|
||||
#define _Objects_Namespace_remove( _information, _the_object ) \
|
||||
(_the_object)->name = 0; \
|
||||
/* _Objects_Clear_name( (_the_object)->name, (_information)->name_length ) */
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,49 +0,0 @@
|
||||
/* macros/objectmp.inl
|
||||
*
|
||||
* This include file contains the bodies of all inlined routines
|
||||
* which deal with global objects.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_OBJECTMP_INL
|
||||
#define _RTEMS_SCORE_OBJECTMP_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Objects_MP_Allocate_global_object
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_MP_Allocate_global_object() \
|
||||
(Objects_MP_Control *) \
|
||||
_Chain_Get( &_Objects_MP_Inactive_global_objects )
|
||||
|
||||
/*PAGE
|
||||
* _Objects_MP_Free_global_object
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_MP_Free_global_object( _the_object ) \
|
||||
_Chain_Append( \
|
||||
&_Objects_MP_Inactive_global_objects, \
|
||||
&(_the_object)->Object.Node \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
* _Objects_MP_Is_null_global_object
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Objects_MP_Is_null_global_object( _the_object ) \
|
||||
( (_the_object) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,169 +0,0 @@
|
||||
/* priority.inl
|
||||
*
|
||||
* This file contains the macro implementation of all inlined routines
|
||||
* in the Priority Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_PRIORITY_INL
|
||||
#define _RTEMS_SCORE_PRIORITY_INL
|
||||
|
||||
#include <rtems/score/bitfield.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Handler_initialization
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Handler_initialization() \
|
||||
{ \
|
||||
uint32_t index; \
|
||||
\
|
||||
_Priority_Major_bit_map = 0; \
|
||||
for ( index=0 ; index <16 ; index++ ) \
|
||||
_Priority_Bit_map[ index ] = 0; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Is_valid
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Since PRIORITY_MINIMUM is 0 and priorities are stored unsigned,
|
||||
* then checking for less than 0 is unnecessary.
|
||||
*/
|
||||
|
||||
#define _Priority_Is_valid( _the_priority ) \
|
||||
( (_the_priority) <= PRIORITY_MAXIMUM )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Major
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Major( _the_priority ) ( (_the_priority) / 16 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Minor
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Minor( _the_priority ) ( (_the_priority) % 16 )
|
||||
|
||||
#if ( CPU_USE_GENERIC_BITFIELD_CODE == TRUE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Mask
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Mask( _bit_number ) \
|
||||
(0x8000 >> _bit_number)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Bits_index
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Bits_index( _bit_number ) \
|
||||
(_bit_number)
|
||||
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Add_to_bit_map
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Add_to_bit_map( _the_priority_map ) \
|
||||
{ \
|
||||
*(_the_priority_map)->minor |= (_the_priority_map)->ready_minor; \
|
||||
_Priority_Major_bit_map |= (_the_priority_map)->ready_major; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Remove_from_bit_map
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Remove_from_bit_map( _the_priority_map ) \
|
||||
{ \
|
||||
*(_the_priority_map)->minor &= (_the_priority_map)->block_minor; \
|
||||
if ( *(_the_priority_map)->minor == 0 ) \
|
||||
_Priority_Major_bit_map &= (_the_priority_map)->block_major; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Get_highest
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Get_highest( _high_priority ) \
|
||||
{ \
|
||||
Priority_Bit_map_control minor; \
|
||||
Priority_Bit_map_control major; \
|
||||
\
|
||||
_Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); \
|
||||
_Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); \
|
||||
\
|
||||
(_high_priority) = (_Priority_Bits_index( major ) * 16) + \
|
||||
_Priority_Bits_index( minor ); \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Initialize_information
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Initialize_information( \
|
||||
_the_priority_map, _new_priority ) \
|
||||
{ \
|
||||
Priority_Bit_map_control _major; \
|
||||
Priority_Bit_map_control _minor; \
|
||||
Priority_Bit_map_control _mask; \
|
||||
\
|
||||
_major = _Priority_Major( (_new_priority) ); \
|
||||
_minor = _Priority_Minor( (_new_priority) ); \
|
||||
\
|
||||
(_the_priority_map)->minor = \
|
||||
&_Priority_Bit_map[ _Priority_Bits_index(_major) ]; \
|
||||
\
|
||||
_mask = _Priority_Mask( _major ); \
|
||||
(_the_priority_map)->ready_major = _mask; \
|
||||
(_the_priority_map)->block_major = ~_mask; \
|
||||
\
|
||||
_mask = _Priority_Mask( _minor ); \
|
||||
(_the_priority_map)->ready_minor = _mask; \
|
||||
(_the_priority_map)->block_minor = ~_mask; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Priority_Is_group_empty
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Priority_Is_group_empty ( _the_priority ) \
|
||||
( (_the_priority) == 0 )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,49 +0,0 @@
|
||||
/* stack.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the Stack Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_STACK_INL
|
||||
#define _RTEMS_SCORE_STACK_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Stack_Initialize
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Stack_Initialize( _the_stack, _starting_address, _size ) \
|
||||
{ \
|
||||
(_the_stack)->area = (_starting_address); \
|
||||
(_the_stack)->size = (_size); \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Stack_Is_enough
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Stack_Is_enough( _size ) \
|
||||
( (_size) >= STACK_MINIMUM_SIZE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Stack_Adjust_size
|
||||
*/
|
||||
|
||||
#define _Stack_Adjust_size( _size ) \
|
||||
((_size) + CPU_STACK_ALIGNMENT)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,209 +0,0 @@
|
||||
/* states.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines associated with thread state information.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_STATES_INL
|
||||
#define _RTEMS_SCORE_STATES_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Set
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Set( _states_to_set, _current_state ) \
|
||||
((_current_state) | (_states_to_set))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Clear
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Clear( _states_to_clear, _current_state ) \
|
||||
((_current_state) & ~(_states_to_clear))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_ready
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_ready( _the_states ) \
|
||||
( (_the_states) == STATES_READY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_only_dormant
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_only_dormant( _the_states ) \
|
||||
( (_the_states) == STATES_DORMANT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_dormant
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_dormant( _the_states ) \
|
||||
( (_the_states) & STATES_DORMANT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_suspended
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_suspended( _the_states ) \
|
||||
( (_the_states) & STATES_SUSPENDED )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_Transient
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_transient( _the_states ) \
|
||||
( (_the_states) & STATES_TRANSIENT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_delaying
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_delaying( _the_states ) \
|
||||
( (_the_states) & STATES_DELAYING )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_buffer( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_BUFFER )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_segment
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_segment( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_SEGMENT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_message
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_message( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_MESSAGE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_event
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_event( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_EVENT )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_mutex
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_mutex( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_MUTEX )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_semaphore
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_semaphore( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_SEMAPHORE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_time
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_time( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_TIME )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_rpc_reply
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_rpc_reply( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_RPC_REPLY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_for_period
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_for_period( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_FOR_PERIOD )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_locally_blocked
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_locally_blocked( _the_states ) \
|
||||
( (_the_states) & STATES_LOCALLY_BLOCKED )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_waiting_on_thread_queue
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_waiting_on_thread_queue( _the_states ) \
|
||||
( (_the_states) & STATES_WAITING_ON_THREAD_QUEUE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Is_blocked
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Is_blocked( _the_states ) \
|
||||
( (_the_states) & STATES_BLOCKED )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _States_Are_set
|
||||
*
|
||||
*/
|
||||
|
||||
#define _States_Are_set( _the_states, _mask ) \
|
||||
( ((_the_states) & (_mask)) != STATES_READY )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,89 +0,0 @@
|
||||
/* sysstates.inl
|
||||
*
|
||||
* This file contains the macro implementation of routines regarding the
|
||||
* system state.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_SYSSTATE_INL
|
||||
#define _RTEMS_SCORE_SYSSTATE_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Handler_initialization
|
||||
*/
|
||||
|
||||
#define _System_state_Handler_initialization( _is_multiprocessing ) \
|
||||
do { \
|
||||
_System_state_Current = SYSTEM_STATE_BEFORE_INITIALIZATION; \
|
||||
_System_state_Is_multiprocessing = (_is_multiprocessing); \
|
||||
} while ( 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Set
|
||||
*/
|
||||
|
||||
#define _System_state_Set( _state ) \
|
||||
do { \
|
||||
_System_state_Current = (_state); \
|
||||
} while ( 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Get
|
||||
*/
|
||||
|
||||
#define _System_state_Get() \
|
||||
(_System_state_Current)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Is_before_initialization
|
||||
*/
|
||||
|
||||
#define _System_state_Is_before_initialization( _state ) \
|
||||
((_state) == SYSTEM_STATE_BEFORE_INITIALIZATION)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Is_before_multitasking
|
||||
*/
|
||||
|
||||
#define _System_state_Is_before_multitasking( _state ) \
|
||||
((_state) == SYSTEM_STATE_BEFORE_MULTITASKING)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Is_begin_multitasking
|
||||
*/
|
||||
|
||||
#define _System_state_Is_begin_multitasking( _state ) \
|
||||
((_state) == SYSTEM_STATE_BEGIN_MULTITASKING)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Is_up
|
||||
*/
|
||||
|
||||
#define _System_state_Is_up( _state ) \
|
||||
((_state) == SYSTEM_STATE_UP)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _System_state_Is_failed
|
||||
*/
|
||||
|
||||
#define _System_state_Is_failed( _state ) \
|
||||
((_state) == SYSTEM_STATE_FAILED)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,242 +0,0 @@
|
||||
/* thread.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines from the Thread handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_THREAD_INL
|
||||
#define _RTEMS_SCORE_THREAD_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Stop_multitasking
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Stop_multitasking() \
|
||||
_Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context );
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_executing
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_executing( _the_thread ) \
|
||||
( (_the_thread) == _Thread_Executing )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_heir
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_heir( _the_thread ) \
|
||||
( (_the_thread) == _Thread_Heir )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_executing_also_the_heir
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_executing_also_the_heir() \
|
||||
( _Thread_Executing == _Thread_Heir )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Unblock
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Unblock( _the_thread ) \
|
||||
_Thread_Clear_state( (_the_thread), STATES_BLOCKED );
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Restart_self
|
||||
*
|
||||
*/
|
||||
|
||||
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
|
||||
#define _Thread_Restart_self() \
|
||||
{ \
|
||||
if ( _Thread_Executing->fp_context != NULL ) \
|
||||
_Context_Restore_fp( &_Thread_Executing->fp_context ); \
|
||||
\
|
||||
_CPU_Context_Restart_self( &_Thread_Executing->Registers ); \
|
||||
}
|
||||
#else
|
||||
#define _Thread_Restart_self() \
|
||||
{ \
|
||||
_CPU_Context_Restart_self( &_Thread_Executing->Registers ); \
|
||||
}
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Calculate_heir
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Calculate_heir() \
|
||||
{ \
|
||||
Priority_Control highest; \
|
||||
\
|
||||
_Priority_Get_highest( highest ); \
|
||||
\
|
||||
_Thread_Heir = (Thread_Control *) _Thread_Ready_chain[ highest ].first; \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_allocated_fp
|
||||
*
|
||||
*/
|
||||
|
||||
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
|
||||
#define _Thread_Is_allocated_fp( _the_thread ) \
|
||||
( (_the_thread) == _Thread_Allocated_fp )
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Deallocate_fp
|
||||
*
|
||||
*/
|
||||
|
||||
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
|
||||
#define _Thread_Deallocate_fp() \
|
||||
_Thread_Allocated_fp = NULL
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Disable_dispatch
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Disable_dispatch() \
|
||||
do { \
|
||||
_Thread_Dispatch_disable_level += 1; \
|
||||
RTEMS_COMPILER_MEMORY_BARRIER(); \
|
||||
} while (0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Enable_dispatch
|
||||
*
|
||||
*/
|
||||
|
||||
#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE )
|
||||
#define _Thread_Enable_dispatch() \
|
||||
do { \
|
||||
RTEMS_COMPILER_MEMORY_BARRIER(); \
|
||||
if ( (--_Thread_Dispatch_disable_level) == 0 ) \
|
||||
_Thread_Dispatch(); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE )
|
||||
void _Thread_Enable_dispatch( void );
|
||||
#endif
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Unnest_dispatch
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Unnest_dispatch() \
|
||||
do { \
|
||||
RTEMS_COMPILER_MEMORY_BARRIER(); \
|
||||
_Thread_Dispatch_disable_level -= 1; \
|
||||
} while (0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_dispatching_enabled
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_dispatching_enabled() \
|
||||
( _Thread_Dispatch_disable_level == 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_context_switch_necessary
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_context_switch_necessary() \
|
||||
( _Context_Switch_necessary == TRUE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Dispatch_initialization
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Dispatch_initialization() \
|
||||
_Thread_Dispatch_disable_level = 1
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_null( _the_thread ) \
|
||||
( (_the_thread) == NULL )
|
||||
|
||||
/*
|
||||
* _Thread_Is_proxy_blocking
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Is_proxy_blocking( _code ) \
|
||||
( (_code) == THREAD_STATUS_PROXY_BLOCKING )
|
||||
|
||||
/*
|
||||
* _Thread_Internal_allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Internal_allocate() \
|
||||
((Thread_Control *) _Objects_Allocate( &_Thread_Internal_information ))
|
||||
|
||||
/*
|
||||
* _Thread_Internal_free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_Internal_free( _the_task ) \
|
||||
_Objects_Free( &_Thread_Internal_information, &(_the_task)->Object )
|
||||
|
||||
/*
|
||||
* _Thread_Get_libc_reent
|
||||
*/
|
||||
|
||||
#define _Thread_Get_libc_reent() \
|
||||
(_Thread_libc_reent)
|
||||
|
||||
/*
|
||||
* _Thread_Set_libc_reent
|
||||
*/
|
||||
|
||||
#define _Thread_Set_libc_reent(_libc_reent) \
|
||||
do { \
|
||||
_Thread_libc_reent = (_libc_reent); \
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,50 +0,0 @@
|
||||
/* macros/threadmp.h
|
||||
*
|
||||
* This include file contains the bodies of all inlined routines
|
||||
* for the multiprocessing part of thread package.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_THREADMP_INL
|
||||
#define _RTEMS_SCORE_THREADMP_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_MP_Is_receive
|
||||
*
|
||||
*/
|
||||
|
||||
extern Thread_Control *_MPCI_Receive_server_tcb;
|
||||
#define _Thread_MP_Is_receive( _the_thread ) \
|
||||
( (_the_thread) == _MPCI_Receive_server_tcb)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_MP_Free_proxy
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_MP_Free_proxy( _the_thread ) \
|
||||
{ \
|
||||
Thread_Proxy_control *_the_proxy; \
|
||||
\
|
||||
_the_proxy = (Thread_Proxy_control *) (_the_thread); \
|
||||
\
|
||||
_Chain_Extract( &_the_proxy->Active ); \
|
||||
\
|
||||
_Chain_Append( \
|
||||
&_Thread_MP_Inactive_proxies, \
|
||||
&(_the_thread)->Object.Node \
|
||||
); \
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,48 +0,0 @@
|
||||
/* tod.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined routines
|
||||
* from the Time of Day Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_TOD_INL
|
||||
#define _RTEMS_SCORE_TOD_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _TOD_Tickle_ticks
|
||||
*
|
||||
*/
|
||||
|
||||
#define _TOD_Tickle_ticks() \
|
||||
_TOD_Current.ticks++; \
|
||||
_Watchdog_Ticks_since_boot++
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _TOD_Deactivate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _TOD_Deactivate() \
|
||||
_Watchdog_Remove( &_TOD_Seconds_watchdog )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _TOD_Activate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _TOD_Activate( _ticks ) \
|
||||
_Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, (_ticks) )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,49 +0,0 @@
|
||||
/* tqdata.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined
|
||||
* routines needed to support the Thread Queue Data.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_TQDATA_INL
|
||||
#define _RTEMS_SCORE_TQDATA_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_queue_Header_number
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_queue_Header_number( _the_priority ) \
|
||||
((_the_priority) / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_queue_Is_reverse_search
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_queue_Is_reverse_search( _the_priority ) \
|
||||
( (_the_priority) & TASK_QUEUE_DATA_REVERSE_SEARCH_MASK )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_queue_Enter_critical_section
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Thread_queue_Enter_critical_section( _the_thread_queue ) \
|
||||
do { \
|
||||
(_the_thread_queue)->sync_state = THREAD_QUEUE_NOTHING_HAPPENED; \
|
||||
} while ( 0 )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,133 +0,0 @@
|
||||
/* userext.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined routines
|
||||
* from the User Extension Handler
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_USEREXT_INL
|
||||
#define _RTEMS_SCORE_USEREXT_INL
|
||||
|
||||
#include <rtems/score/wkspace.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _User_extensions_Add_set
|
||||
*
|
||||
* NOTE: Must be before _User_extensions_Handler_initialization to
|
||||
* ensure proper inlining.
|
||||
*/
|
||||
|
||||
#define _User_extensions_Add_set( _the_extension, _extension_table ) \
|
||||
do { \
|
||||
(_the_extension)->Callouts = *(_extension_table); \
|
||||
\
|
||||
_Chain_Append( &_User_extensions_List, &(_the_extension)->Node ); \
|
||||
\
|
||||
if ( (_the_extension)->Callouts.thread_switch != NULL ) { \
|
||||
(_the_extension)->Switch.thread_switch = \
|
||||
(_the_extension)->Callouts.thread_switch; \
|
||||
_Chain_Append( \
|
||||
&_User_extensions_Switches_list, \
|
||||
&(_the_extension)->Switch.Node \
|
||||
); \
|
||||
} \
|
||||
} while ( 0 )
|
||||
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _User_extensions_Handler_initialization
|
||||
*
|
||||
*/
|
||||
|
||||
#define _User_extensions_Handler_initialization( \
|
||||
_number_of_extensions, _initial_extensions \
|
||||
) \
|
||||
{ \
|
||||
User_extensions_Control *extension; \
|
||||
uint32_t i; \
|
||||
\
|
||||
_Chain_Initialize_empty( &_User_extensions_List ); \
|
||||
_Chain_Initialize_empty( &_User_extensions_Switches_list ); \
|
||||
\
|
||||
if ( (_initial_extensions) ) { \
|
||||
extension = (User_extensions_Control *) \
|
||||
_Workspace_Allocate_or_fatal_error( \
|
||||
sizeof(User_extensions_Control) * _number_of_extensions ); \
|
||||
\
|
||||
memset ( \
|
||||
extension, \
|
||||
0, \
|
||||
_number_of_extensions * sizeof( User_extensions_Control ) \
|
||||
); \
|
||||
\
|
||||
for ( i = 0 ; i < _number_of_extensions ; i++ ) { \
|
||||
_User_extensions_Add_set (extension, &_initial_extensions[i]); \
|
||||
extension++; \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _User_extensions_Add_API_set
|
||||
*/
|
||||
|
||||
#define _User_extensions_Add_API_set( _the_extension ) \
|
||||
do { \
|
||||
_Chain_Append( &_User_extensions_List, &(_the_extension)->Node ); \
|
||||
\
|
||||
if ( (_the_extension)->Callouts.thread_switch != NULL ) { \
|
||||
(_the_extension)->Switch.thread_switch = \
|
||||
(_the_extension)->Callouts.thread_switch; \
|
||||
_Chain_Append( \
|
||||
&_User_extensions_Switches_list, &(_the_extension)->Switch.Node ); \
|
||||
} \
|
||||
} while ( 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _User_extensions_Remove_set
|
||||
*/
|
||||
|
||||
#define _User_extensions_Remove_set( _the_extension ) \
|
||||
do { \
|
||||
_Chain_Extract( &(_the_extension)->Node ); \
|
||||
\
|
||||
if ( (_the_extension)->Callouts.thread_switch != NULL ) { \
|
||||
_Chain_Extract( &(_the_extension)->Node ); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _User_extensions_Thread_switch
|
||||
*
|
||||
*/
|
||||
|
||||
#define _User_extensions_Thread_switch( _executing, _heir ) \
|
||||
do { \
|
||||
Chain_Node *the_node; \
|
||||
User_extensions_Switch_control *the_extension_switch; \
|
||||
\
|
||||
for ( the_node = _User_extensions_Switches_list.first ; \
|
||||
!_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ; \
|
||||
the_node = the_node->next ) { \
|
||||
\
|
||||
the_extension_switch = (User_extensions_Switch_control *) the_node; \
|
||||
\
|
||||
(*the_extension_switch->thread_switch)( _executing, _heir ); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,171 +0,0 @@
|
||||
/* watchdog.inl
|
||||
*
|
||||
* This file contains the macro implementation of all inlined routines
|
||||
* in the Watchdog Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_WATCHDOG_INL
|
||||
#define _RTEMS_SCORE_WATCHDOG_INL
|
||||
|
||||
#include <rtems/score/object.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Initialize
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Initialize( _the_watchdog, _routine, _id, _user_data ) \
|
||||
{ \
|
||||
(_the_watchdog)->state = WATCHDOG_INACTIVE; \
|
||||
(_the_watchdog)->routine = (_routine); \
|
||||
(_the_watchdog)->id = (_id); \
|
||||
(_the_watchdog)->user_data = (_user_data); \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Is_active
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Is_active( _the_watchdog ) \
|
||||
( (_the_watchdog)->state == WATCHDOG_ACTIVE )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Activate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Activate( _the_watchdog ) \
|
||||
(_the_watchdog)->state = WATCHDOG_ACTIVE
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Deactivate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Deactivate( _the_watchdog ) \
|
||||
(_the_watchdog)->state = WATCHDOG_REMOVE_IT
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Tickle_ticks
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Tickle_ticks() \
|
||||
_Watchdog_Tickle( &_Watchdog_Ticks_chain )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Tickle_seconds
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Tickle_seconds() \
|
||||
_Watchdog_Tickle( &_Watchdog_Seconds_chain )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Insert_ticks
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Insert_ticks( _the_watchdog, _units ) \
|
||||
do { \
|
||||
(_the_watchdog)->initial = (_units); \
|
||||
_Watchdog_Insert( &_Watchdog_Ticks_chain, (_the_watchdog) ); \
|
||||
} while ( 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Insert_seconds
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Insert_seconds( _the_watchdog, _units ) \
|
||||
do { \
|
||||
(_the_watchdog)->initial = (_units); \
|
||||
_Watchdog_Insert( &_Watchdog_Seconds_chain, (_the_watchdog) ); \
|
||||
} while ( 0 )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Adjust_seconds
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Adjust_seconds( _direction, _units ) \
|
||||
_Watchdog_Adjust( &_Watchdog_Seconds_chain, (_direction), (_units) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Adjust_ticks
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Adjust_ticks( _direction, _units ) \
|
||||
_Watchdog_Adjust( &_Watchdog_Ticks_chain, (_direction), (_units) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Reset
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Reset( _the_watchdog ) \
|
||||
{ \
|
||||
(void) _Watchdog_Remove( (_the_watchdog) ); \
|
||||
_Watchdog_Insert( &_Watchdog_Ticks_chain, (_the_watchdog) ); \
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Next
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Next( _watchdog ) \
|
||||
((Watchdog_Control *) (_watchdog)->Node.next)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Previous
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Previous( _watchdog ) \
|
||||
((Watchdog_Control *) (_watchdog)->Node.previous)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_First
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_First( _header ) \
|
||||
((Watchdog_Control *) (_header)->first)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Watchdog_Last
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Watchdog_Last( _header ) \
|
||||
((Watchdog_Control *) (_header)->last)
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,38 +0,0 @@
|
||||
/* wkspace.inl
|
||||
*
|
||||
* This file contains the macro implementation of the inlined routines
|
||||
* from the RAM Workspace Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_WKSPACE_INL
|
||||
#define _RTEMS_SCORE_WKSPACE_INL
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Workspace_Allocate
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Workspace_Allocate( _size ) \
|
||||
_Heap_Allocate( &_Workspace_Area, (_size) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Workspace_Free
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Workspace_Free( _block ) \
|
||||
_Heap_Free( &_Workspace_Area, (_block) )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -168,7 +168,7 @@ $(PROJECT_INCLUDE)/rtems/score/threadmp.h: include/rtems/score/threadmp.h $(PROJ
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadmp.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadmp.h
|
||||
endif
|
||||
if INLINE
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/address.inl: inline/rtems/score/address.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/address.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/address.inl
|
||||
@@ -266,102 +266,3 @@ $(PROJECT_INCLUDE)/rtems/score/threadmp.inl: inline/rtems/score/threadmp.inl $(P
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadmp.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadmp.inl
|
||||
endif
|
||||
else
|
||||
$(PROJECT_INCLUDE)/rtems/score/address.inl: macros/rtems/score/address.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/address.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/address.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/chain.inl: macros/rtems/score/chain.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/chain.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/chain.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/corebarrier.inl: macros/rtems/score/corebarrier.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/corebarrier.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/corebarrier.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/coremsg.inl: macros/rtems/score/coremsg.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/coremsg.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/coremsg.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/corerwlock.inl: macros/rtems/score/corerwlock.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/corerwlock.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/corerwlock.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/corespinlock.inl: macros/rtems/score/corespinlock.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/corespinlock.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/corespinlock.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/coremutex.inl: macros/rtems/score/coremutex.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/coremutex.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/coremutex.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/coresem.inl: macros/rtems/score/coresem.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/coresem.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/coresem.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/heap.inl: macros/rtems/score/heap.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/heap.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/heap.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/isr.inl: macros/rtems/score/isr.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/isr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/isr.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/object.inl: macros/rtems/score/object.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/object.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/object.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/priority.inl: macros/rtems/score/priority.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/priority.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/priority.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/stack.inl: macros/rtems/score/stack.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/stack.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/stack.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/states.inl: macros/rtems/score/states.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/states.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/states.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/sysstate.inl: macros/rtems/score/sysstate.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/sysstate.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/sysstate.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/thread.inl: macros/rtems/score/thread.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/thread.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/thread.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/tod.inl: macros/rtems/score/tod.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tod.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tod.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/tqdata.inl: macros/rtems/score/tqdata.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tqdata.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tqdata.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/userext.inl: macros/rtems/score/userext.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/userext.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/userext.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/watchdog.inl: macros/rtems/score/watchdog.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/watchdog.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/watchdog.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/wkspace.inl: macros/rtems/score/wkspace.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/wkspace.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/wkspace.inl
|
||||
|
||||
if HAS_MP
|
||||
$(PROJECT_INCLUDE)/rtems/score/mppkt.inl: macros/rtems/score/mppkt.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/mppkt.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/mppkt.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/objectmp.inl: macros/rtems/score/objectmp.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/objectmp.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/objectmp.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/threadmp.inl: macros/rtems/score/threadmp.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadmp.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadmp.inl
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -66,28 +66,6 @@ void _Chain_Initialize(
|
||||
the_chain->last = current;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Get_first_unprotected
|
||||
*/
|
||||
|
||||
#ifndef RTEMS_INLINES
|
||||
Chain_Node *_Chain_Get_first_unprotected(
|
||||
Chain_Control *the_chain
|
||||
)
|
||||
{
|
||||
Chain_Node *return_node;
|
||||
Chain_Node *new_first;
|
||||
|
||||
return_node = the_chain->first;
|
||||
new_first = return_node->next;
|
||||
the_chain->first = new_first;
|
||||
new_first->previous = _Chain_Head( the_chain );
|
||||
|
||||
return return_node;
|
||||
}
|
||||
#endif /* RTEMS_INLINES */
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Chain_Get
|
||||
|
||||
@@ -63,80 +63,3 @@ void _CORE_mutex_Seize_interrupt_blocking(
|
||||
_Thread_Enable_dispatch();
|
||||
}
|
||||
|
||||
#if !defined(RTEMS_INLINES)
|
||||
int _CORE_mutex_Seize_interrupt_trylock(
|
||||
CORE_mutex_Control *the_mutex,
|
||||
ISR_Level *level_p
|
||||
)
|
||||
{
|
||||
Thread_Control *executing;
|
||||
ISR_Level level = *level_p;
|
||||
|
||||
/* disabled when you get here */
|
||||
|
||||
executing = _Thread_Executing;
|
||||
executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;
|
||||
if ( !_CORE_mutex_Is_locked( the_mutex ) ) {
|
||||
the_mutex->lock = CORE_MUTEX_LOCKED;
|
||||
the_mutex->holder = executing;
|
||||
the_mutex->holder_id = executing->Object.id;
|
||||
the_mutex->nest_count = 1;
|
||||
if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||
|
||||
_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) )
|
||||
executing->resource_count++;
|
||||
|
||||
if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
|
||||
_ISR_Enable( level );
|
||||
return 0;
|
||||
}
|
||||
/* else must be CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING */
|
||||
{
|
||||
Priority_Control ceiling;
|
||||
Priority_Control current;
|
||||
|
||||
ceiling = the_mutex->Attributes.priority_ceiling;
|
||||
current = executing->current_priority;
|
||||
if ( current == ceiling ) {
|
||||
_ISR_Enable( level );
|
||||
return 0;
|
||||
}
|
||||
if ( current > ceiling ) {
|
||||
_Thread_Disable_dispatch();
|
||||
_ISR_Enable( level );
|
||||
_Thread_Change_priority(
|
||||
the_mutex->holder,
|
||||
the_mutex->Attributes.priority_ceiling,
|
||||
FALSE
|
||||
);
|
||||
_Thread_Enable_dispatch();
|
||||
return 0;
|
||||
}
|
||||
/* if ( current < ceiling ) */ {
|
||||
executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
|
||||
the_mutex->nest_count = 0; /* undo locking above */
|
||||
executing->resource_count--; /* undo locking above */
|
||||
_ISR_Enable( level );
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( _Thread_Is_executing( the_mutex->holder ) ) {
|
||||
switch ( the_mutex->Attributes.lock_nesting_behavior ) {
|
||||
case CORE_MUTEX_NESTING_ACQUIRES:
|
||||
the_mutex->nest_count++;
|
||||
_ISR_Enable( level );
|
||||
return 0;
|
||||
case CORE_MUTEX_NESTING_IS_ERROR:
|
||||
executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED;
|
||||
_ISR_Enable( level );
|
||||
return 0;
|
||||
case CORE_MUTEX_NESTING_BLOCKS:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -30,58 +30,4 @@
|
||||
#include <rtems/score/userext.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Thread_Get
|
||||
*
|
||||
* NOTE: If we are not using static inlines, this must be a real
|
||||
* subroutine call.
|
||||
*
|
||||
* NOTE: XXX... This routine may be able to be optimized.
|
||||
*/
|
||||
|
||||
#ifndef RTEMS_INLINES
|
||||
|
||||
Thread_Control *_Thread_Get (
|
||||
Objects_Id id,
|
||||
Objects_Locations *location
|
||||
)
|
||||
{
|
||||
uint32_t the_api;
|
||||
uint32_t the_class;
|
||||
Objects_Information *information;
|
||||
Thread_Control *tp = (Thread_Control *) 0;
|
||||
|
||||
if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) {
|
||||
_Thread_Disable_dispatch();
|
||||
*location = OBJECTS_LOCAL;
|
||||
tp = _Thread_Executing;
|
||||
goto done;
|
||||
}
|
||||
|
||||
the_api = _Objects_Get_API( id );
|
||||
if ( the_api && the_api > OBJECTS_APIS_LAST ) {
|
||||
*location = OBJECTS_ERROR;
|
||||
goto done;
|
||||
}
|
||||
|
||||
the_class = _Objects_Get_class( id );
|
||||
if ( the_class != 1 ) { /* threads are always first class :) */
|
||||
*location = OBJECTS_ERROR;
|
||||
goto done;
|
||||
}
|
||||
|
||||
information = _Objects_Information_table[ the_api ][ the_class ];
|
||||
|
||||
if ( !information ) {
|
||||
*location = OBJECTS_ERROR;
|
||||
goto done;
|
||||
}
|
||||
|
||||
tp = (Thread_Control *) _Objects_Get( information, id, location );
|
||||
|
||||
done:
|
||||
return tp;
|
||||
}
|
||||
|
||||
#endif
|
||||
#warning "unneeded when macros gone"
|
||||
|
||||
Reference in New Issue
Block a user