forked from Imagelibrary/rtems
* libcsupport/src/gxx_wrappers.c, posix/include/mqueue.h, posix/include/rtems/posix/semaphore.h, posix/inline/rtems/posix/barrier.inl, posix/inline/rtems/posix/key.inl, posix/inline/rtems/posix/mqueue.inl, posix/inline/rtems/posix/rwlock.inl, posix/inline/rtems/posix/semaphore.inl, posix/inline/rtems/posix/spinlock.inl, posix/inline/rtems/posix/timer.inl, posix/src/condget.c, posix/src/mqueuenametoid.c, posix/src/mutexget.c, posix/src/semaphorenametoid.c, posix/src/semopen.c, sapi/src/itronapi.c, sapi/src/posixapi.c: Make changes necessary for all tests to run on SPARC with 16-bit Ids. This required ensuring that all POSIX and compilering binding code makes a distinction between the public Id type (e.g. pthread_t, etc.) and the RTEMS Object_Id type. All POSIX Object Get routines should not take the POSIX Id type as the argument. Sixteen bit RTEMS Ids should be placed into the 32-bits reserved by the POSIX API type in a uniform manner now. This removed all assumptions that the external Id types in POSIX and ITRON are the same as the internal Object Id type.
91 lines
2.2 KiB
C
91 lines
2.2 KiB
C
/*
|
|
* RTEMS API Initialization Support
|
|
*
|
|
* NOTE:
|
|
*
|
|
* COPYRIGHT (c) 1989-2008.
|
|
* 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$
|
|
*/
|
|
|
|
#if HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include <assert.h>
|
|
|
|
/*
|
|
* POSIX_API_INIT is defined so all of the POSIX API
|
|
* data will be included in this object file.
|
|
*/
|
|
|
|
#define POSIX_API_INIT
|
|
|
|
#include <rtems/system.h> /* include this before checking RTEMS_POSIX_API */
|
|
#ifdef RTEMS_POSIX_API
|
|
|
|
#include <sys/types.h>
|
|
#include <mqueue.h>
|
|
#include <rtems/config.h>
|
|
#include <rtems/score/object.h>
|
|
#include <rtems/posix/barrier.h>
|
|
#include <rtems/posix/cond.h>
|
|
#include <rtems/posix/config.h>
|
|
#include <rtems/posix/key.h>
|
|
#include <rtems/posix/mqueue.h>
|
|
#include <rtems/posix/mutex.h>
|
|
#include <rtems/posix/posixapi.h>
|
|
#include <rtems/posix/priority.h>
|
|
#include <rtems/posix/psignal.h>
|
|
#include <rtems/posix/pthread.h>
|
|
#include <rtems/posix/rwlock.h>
|
|
#include <rtems/posix/timer.h>
|
|
#include <rtems/posix/semaphore.h>
|
|
#include <rtems/posix/spinlock.h>
|
|
#include <rtems/posix/time.h>
|
|
|
|
/*PAGE
|
|
*
|
|
* _POSIX_API_Initialize
|
|
*
|
|
* XXX
|
|
*/
|
|
|
|
Objects_Information *_POSIX_Objects[ OBJECTS_POSIX_CLASSES_LAST + 1 ];
|
|
|
|
void _POSIX_API_Initialize(void)
|
|
{
|
|
/*
|
|
* If there are any type size assumptions in the POSIX API, this is
|
|
* the appropriate place to place them.
|
|
*
|
|
* Currently, there are no none type size assumptions.
|
|
*/
|
|
|
|
/*
|
|
* Install our API Object Management Table and initialize the
|
|
* various managers.
|
|
*/
|
|
_Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects;
|
|
|
|
_POSIX_signals_Manager_Initialization();
|
|
_POSIX_Threads_Manager_initialization();
|
|
_POSIX_Condition_variables_Manager_initialization();
|
|
_POSIX_Key_Manager_initialization();
|
|
_POSIX_Mutex_Manager_initialization();
|
|
_POSIX_Message_queue_Manager_initialization();
|
|
_POSIX_Semaphore_Manager_initialization();
|
|
_POSIX_Timer_Manager_initialization();
|
|
_POSIX_Barrier_Manager_initialization();
|
|
_POSIX_RWLock_Manager_initialization();
|
|
_POSIX_Spinlock_Manager_initialization();
|
|
}
|
|
|
|
#endif
|
|
/* end of file */
|