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:
Joel Sherrill
2006-10-19 19:20:10 +00:00
parent e307735b24
commit 04dba496a6
81 changed files with 73 additions and 5643 deletions

View File

@@ -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:

View File

@@ -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")

View File

@@ -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

View File

@@ -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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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

View File

@@ -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

View File

@@ -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 */

View 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 */

View 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 */

View 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 */

View 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

View File

@@ -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 */

View 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 */

View 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 */

View 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

View File

@@ -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 =

View File

@@ -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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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

View File

@@ -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__

View File

@@ -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 */

View 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

View File

@@ -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

View File

@@ -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
*

View File

@@ -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.

View File

@@ -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
/**

View File

@@ -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.

View File

@@ -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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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"