From df49c60c9671e4a28e636964d744c1f59fb6cb68 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 12 Jun 2000 15:00:15 +0000 Subject: Merged from 4.5.0-beta3a --- c/src/exec/posix/include/Makefile.am | 13 +- c/src/exec/posix/include/pthread.h | 509 ----------------------- c/src/exec/posix/include/rtems/posix/Makefile.am | 11 +- c/src/exec/posix/include/sys/Makefile.am | 9 +- c/src/exec/posix/inline/rtems/posix/Makefile.am | 12 +- c/src/exec/posix/inline/rtems/posix/cond.inl | 9 +- c/src/exec/posix/macros/rtems/posix/Makefile.am | 9 +- c/src/exec/posix/optman/Makefile.am | 3 +- c/src/exec/posix/src/Makefile.am | 5 +- c/src/exec/posix/src/mqueuecreatesupp.c | 8 +- c/src/exec/posix/src/mqueuedeletesupp.c | 2 +- c/src/exec/posix/src/mqueueunlink.c | 2 +- c/src/exec/posix/src/pthread.c | 4 +- c/src/exec/posix/src/pthreadcreate.c | 3 +- c/src/exec/posix/src/sigtimedwait.c | 42 +- c/src/exec/posix/src/waitpid.c | 6 +- 16 files changed, 71 insertions(+), 576 deletions(-) delete mode 100644 c/src/exec/posix/include/pthread.h (limited to 'c/src/exec/posix') diff --git a/c/src/exec/posix/include/Makefile.am b/c/src/exec/posix/include/Makefile.am index 4abe5df1ee..387e599641 100644 --- a/c/src/exec/posix/include/Makefile.am +++ b/c/src/exec/posix/include/Makefile.am @@ -7,22 +7,21 @@ AUTOMAKE_OPTIONS = foreign 1.4 ## RTEMS unistd.h needs to be checked against newlib's and removed UNUSED_H_FILES = devctl.h intr.h unistd.h -H_FILES = pthread.h sched.h aio.h mqueue.h semaphore.h +H_FILES = sched.h aio.h mqueue.h semaphore.h + +# H_FILES = pthread.h sched.h aio.h mqueue.h semaphore.h noinst_HEADERS = $(H_FILES) -PREINSTALL_FILES = \ -$(PROJECT_INCLUDE) \ -$(noinst_HEADERS:%=$(PROJECT_INCLUDE)/%) +PREINSTALL_FILES += $(PROJECT_INCLUDE) \ + $(noinst_HEADERS:%=$(PROJECT_INCLUDE)/%) $(PROJECT_INCLUDE): @$(mkinstalldirs) $@ $(PROJECT_INCLUDE)/%.h: %.h $(INSTALL_DATA) $< $@ -all-am: $(PREINSTALL_FILES) -debug-am: $(PREINSTALL_FILES) -profile-am: $(PREINSTALL_FILES) +all-local: $(PREINSTALL_FILES) SUBDIRS = rtems sys diff --git a/c/src/exec/posix/include/pthread.h b/c/src/exec/posix/include/pthread.h deleted file mode 100644 index 8141a53548..0000000000 --- a/c/src/exec/posix/include/pthread.h +++ /dev/null @@ -1,509 +0,0 @@ -/* pthread.h - * - * $Id$ - */ - -#ifndef __PTHREAD_h -#define __PTHREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if defined(_POSIX_THREADS) - -#include -#include -#include - -/* - * 3.1.3 Register Fork Handlers, P1003.1c/Draft 10, P1003.1c/Draft 10, p. 27 - * - * RTEMS does not support processes, so we fall under this and do not - * provide this routine: - * - * "Either the implementation shall support the pthread_atfork() function - * as described above or the pthread_atfork() funciton shall not be - * provided." - */ - -/* - * 11.3.1 Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 - */ - -int pthread_mutexattr_init( - pthread_mutexattr_t *attr -); - -int pthread_mutexattr_destroy( - pthread_mutexattr_t *attr -); - -int pthread_mutexattr_getpshared( - const pthread_mutexattr_t *attr, - int *pshared -); - -int pthread_mutexattr_setpshared( - pthread_mutexattr_t *attr, - int pshared -); - -/* - * 11.3.2 Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 - */ - -int pthread_mutex_init( - pthread_mutex_t *mutex, - const pthread_mutexattr_t *attr -); - -int pthread_mutex_destroy( - pthread_mutex_t *mutex -); - -/* - * This is used to statically initialize a pthread_mutex_t. Example: - * - * pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - */ - -#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) - -/* - * 11.3.3 Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 - * - * NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 - */ - -int pthread_mutex_lock( - pthread_mutex_t *mutex -); - -int pthread_mutex_trylock( - pthread_mutex_t *mutex -); - -int pthread_mutex_unlock( - pthread_mutex_t *mutex -); - -#if defined(_POSIX_TIMEOUTS) - -int pthread_mutex_timedlock( - pthread_mutex_t *mutex, - const struct timespec *timeout -); - -#endif /* _POSIX_TIMEOUTS */ - -/* - * 11.4.1 Condition Variable Initialization Attributes, - * P1003.1c/Draft 10, p. 96 - */ - -int pthread_condattr_init( - pthread_condattr_t *attr -); - -int pthread_condattr_destroy( - pthread_condattr_t *attr -); - -int pthread_condattr_getpshared( - const pthread_condattr_t *attr, - int *pshared -); - -int pthread_condattr_setpshared( - pthread_condattr_t *attr, - int pshared -); - -/* - * 11.4.2 Initializing and Destroying a Condition Variable, - * P1003.1c/Draft 10, p. 87 - */ - -int pthread_cond_init( - pthread_cond_t *cond, - const pthread_condattr_t *attr -); - -int pthread_cond_destroy( - pthread_cond_t *mutex -); - -/* - * This is used to statically initialize a pthread_cond_t. Example: - * - * pthread_cond_t cond = PTHREAD_COND_INITIALIZER; - */ - -#define PTHREAD_COND_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) - -/* - * 11.4.3 Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 - */ - -int pthread_cond_signal( - pthread_cond_t *cond -); - -int pthread_cond_broadcast( - pthread_cond_t *cond -); - -/* - * 11.4.4 Waiting on a Condition, P1003.1c/Draft 10, p. 105 - */ - -int pthread_cond_wait( - pthread_cond_t *cond, - pthread_mutex_t *mutex -); - -int pthread_cond_timedwait( - pthread_cond_t *cond, - pthread_mutex_t *mutex, - const struct timespec *abstime -); - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* - * 13.5.1 Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 - */ - -int pthread_attr_setscope( - pthread_attr_t *attr, - int contentionscope -); - -int pthread_attr_getscope( - const pthread_attr_t *attr, - int *contentionscope -); - -int pthread_attr_setinheritsched( - pthread_attr_t *attr, - int inheritsched -); - -int pthread_attr_getinheritsched( - const pthread_attr_t *attr, - int *inheritsched -); - -int pthread_attr_setschedpolicy( - pthread_attr_t *attr, - int policy -); - -int pthread_attr_getschedpolicy( - const pthread_attr_t *attr, - int *policy -); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -int pthread_attr_setschedparam( - pthread_attr_t *attr, - const struct sched_param *param -); - -int pthread_attr_getschedparam( - const pthread_attr_t *attr, - struct sched_param *param -); - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* - * 13.5.2 Dynamic Thread Scheduling Parameters Access, - * P1003.1c/Draft 10, p. 124 - */ - -int pthread_getschedparam( - pthread_t thread, - int *policy, - struct sched_param *param -); - -int pthread_setschedparam( - pthread_t thread, - int policy, - struct sched_param *param -); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) - -/* - * 13.6.1 Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 - */ - -int pthread_mutexattr_setprotocol( - pthread_mutexattr_t *attr, - int protocol -); - -int pthread_mutexattr_getprotocol( - const pthread_mutexattr_t *attr, - int *protocol -); - -int pthread_mutexattr_setprioceiling( - pthread_mutexattr_t *attr, - int prioceiling -); - -int pthread_mutexattr_getprioceiling( - const pthread_mutexattr_t *attr, - int *prioceiling -); - -#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ - -#if defined(_POSIX_THREAD_PRIO_PROTECT) - -/* - * 13.6.2 Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 - */ - -int pthread_mutex_setprioceiling( - pthread_mutex_t *mutex, - int prioceiling, - int *old_ceiling -); - -int pthread_mutex_getprioceiling( - pthread_mutex_t *mutex, - int *prioceiling -); - -#endif /* _POSIX_THREAD_PRIO_PROTECT */ - -/* - * 16.1.1 Thread Creation Attributes, P1003.1c/Draft 10, p, 140 - */ - -int pthread_attr_init( - pthread_attr_t *attr -); - -int pthread_attr_destroy( - pthread_attr_t *attr -); - -int pthread_attr_getstacksize( - const pthread_attr_t *attr, - size_t *stacksize -); - -int pthread_attr_setstacksize( - pthread_attr_t *attr, - size_t stacksize -); - -int pthread_attr_getstackaddr( - const pthread_attr_t *attr, - void **stackaddr -); - -int pthread_attr_setstackaddr( - pthread_attr_t *attr, - void *stackaddr -); - -int pthread_attr_getdetachstate( - const pthread_attr_t *attr, - int *detachstate -); - -int pthread_attr_setdetachstate( - pthread_attr_t *attr, - int detachstate -); - -/* - * 16.1.2 Thread Creation, P1003.1c/Draft 10, p. 144 - */ - -int pthread_create( - pthread_t *thread, - const pthread_attr_t *attr, - void *(*start_routine)( void * ), - void *arg -); - -/* - * 16.1.3 Wait for Thread Termination, P1003.1c/Draft 10, p. 147 - */ - -int pthread_join( - pthread_t thread, - void **value_ptr -); - -/* - * 16.1.4 Detaching a Thread, P1003.1c/Draft 10, p. 149 - */ - -int pthread_detach( - pthread_t thread -); - -/* - * 16.1.5.1 Thread Termination, p1003.1c/Draft 10, p. 150 - */ - -void pthread_exit( - void *value_ptr -); - -/* - * 16.1.6 Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX - */ - -pthread_t pthread_self( void ); - -/* - * 16.1.7 Compare Thread IDs, p1003.1c/Draft 10, p. 153 - */ - -int pthread_equal( - pthread_t t1, - pthread_t t2 -); - -/* - * 16.1.8 Dynamic Package Initialization - */ - -/* - * This is used to statically initialize a pthread_once_t. Example: - * - * pthread_once_t once = PTHREAD_ONCE_INIT; - * - * NOTE: This is named inconsistently -- it should be INITIALIZER. - */ - -#define PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ - -int pthread_once( - pthread_once_t *once_control, - void (*init_routine)(void) -); - -/* - * 17.1.1 Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 - */ - -int pthread_key_create( - pthread_key_t *key, - void (*destructor)( void * ) -); - -/* - * 17.1.2 Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 - */ - -int pthread_setspecific( - pthread_key_t key, - const void *value -); - -void *pthread_getspecific( - pthread_key_t key -); - -/* - * 17.1.3 Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 - */ - -int pthread_key_delete( - pthread_key_t key -); - -/* - * 18.2.1 Canceling Execution of a Thread, P1003.1c/Draft 10, p. 181 - */ - -#define PTHREAD_CANCEL_ENABLE 0 -#define PTHREAD_CANCEL_DISABLE 1 - -#define PTHREAD_CANCEL_DEFERRED 0 -#define PTHREAD_CANCEL_ASYNCHRONOUS 1 - -int pthread_cancel( - pthread_t thread -); - -/* - * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 - */ - -int pthread_setcancelstate( - int state, - int *oldstate -); - -int pthread_setcanceltype( - int type, - int *oldtype -); - -void pthread_testcancel( void ); - -/* - * 18.2.3.1 Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 - */ - -void pthread_cleanup_push( - void (*routine)( void * ), - void *arg -); - -void pthread_cleanup_pop( - int execute -); - -#if defined(_POSIX_THREAD_CPUTIME) - -/* - * 20.1.6 Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 - */ - -int pthread_getcpuclockid( - pthread_t thread_id, - clockid_t *clock_id -); - -/* - * 20.1.7 CPU-time Clock Thread Creation Attribute, P1003.4b/D8, p. 59 - */ - -int pthread_attr_setcputime( - pthread_attr_t *attr, - int clock_allowed -); - -int pthread_attr_getcputime( - pthread_attr_t *attr, - int *clock_allowed -); - -#endif /* defined(_POSIX_THREAD_CPUTIME) */ - -#endif /* defined(_POSIX_THREADS) */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/posix/include/rtems/posix/Makefile.am b/c/src/exec/posix/include/rtems/posix/Makefile.am index 96b9bad59b..c66a0015c9 100644 --- a/c/src/exec/posix/include/rtems/posix/Makefile.am +++ b/c/src/exec/posix/include/rtems/posix/Makefile.am @@ -10,7 +10,7 @@ STD_H_FILES = cancel.h cond.h config.h key.h mqueue.h mutex.h posixapi.h \ priority.h psignal.h pthread.h ptimer.h semaphore.h seterr.h threadsup.h \ time.h timer.h $(MP_H_FILES) -UNUSED_H_FILES= intr.h threadsup.h +UNUSED_H_FILES = intr.h threadsup.h if HAS_MP H_FILES = $(STD_H_FILES) $(MP_H_FILES) @@ -20,18 +20,15 @@ endif noinst_HEADERS = $(STD_H_FILES) $(MP_H_FILES) -PREINSTALL_FILES = \ -$(PROJECT_INCLUDE)/rtems/posix \ -$(H_FILES:%=$(PROJECT_INCLUDE)/rtems/posix/%) +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix \ + $(H_FILES:%=$(PROJECT_INCLUDE)/rtems/posix/%) $(PROJECT_INCLUDE)/rtems/posix: @$(mkinstalldirs) $@ $(PROJECT_INCLUDE)/rtems/posix/%.h: %.h $(INSTALL_DATA) $< $@ -all-am: $(PREINSTALL_FILES) -debug-am: $(PREINSTALL_FILES) -profile-am: $(PREINSTALL_FILES) +all-local: $(PREINSTALL_FILES) EXTRA_DIST = $(UNUSED_H_FILES) diff --git a/c/src/exec/posix/include/sys/Makefile.am b/c/src/exec/posix/include/sys/Makefile.am index 2ac2975304..f07a7218b3 100644 --- a/c/src/exec/posix/include/sys/Makefile.am +++ b/c/src/exec/posix/include/sys/Makefile.am @@ -8,17 +8,14 @@ H_FILES = utsname.h noinst_HEADERS = $(H_FILES) -PREINSTALL_FILES = \ -$(PROJECT_INCLUDE)/sys \ -$(noinst_HEADERS:%=$(PROJECT_INCLUDE)/sys/%) +PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys \ + $(noinst_HEADERS:%=$(PROJECT_INCLUDE)/sys/%) $(PROJECT_INCLUDE)/sys: @$(mkinstalldirs) $@ $(PROJECT_INCLUDE)/sys/%.h: %.h $(INSTALL_DATA) $< $@ -all-am: $(PREINSTALL_FILES) -debug-am: $(PREINSTALL_FILES) -profile-am: $(PREINSTALL_FILES) +all-local: $(PREINSTALL_FILES) include $(top_srcdir)/../../../../automake/local.am diff --git a/c/src/exec/posix/inline/rtems/posix/Makefile.am b/c/src/exec/posix/inline/rtems/posix/Makefile.am index 89b3c87d3b..a38f1fa8f1 100644 --- a/c/src/exec/posix/inline/rtems/posix/Makefile.am +++ b/c/src/exec/posix/inline/rtems/posix/Makefile.am @@ -3,16 +3,16 @@ ## AUTOMAKE_OPTIONS = foreign 1.4 + #I_FILES= intr.inl I_FILES = cond.inl key.inl mqueue.inl mutex.inl pthread.inl priority.inl \ - semaphore.inl + semaphore.inl noinst_HEADERS = $(I_FILES) if INLINE -PREINSTALL_FILES = \ -$(PROJECT_INCLUDE)/rtems/posix \ -$(I_FILES:%=$(PROJECT_INCLUDE)/rtems/posix/%) +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix \ + $(I_FILES:%=$(PROJECT_INCLUDE)/rtems/posix/%) $(PROJECT_INCLUDE)/rtems/posix: @$(mkinstalldirs) $@ @@ -20,9 +20,7 @@ $(PROJECT_INCLUDE)/rtems/posix/%.inl: %.inl $(INSTALL_DATA) $< $@ endif -all-am: $(PREINSTALL_FILES) -debug-am: $(PREINSTALL_FILES) -profile-am: $(PREINSTALL_FILES) +all-local: $(PREINSTALL_FILES) EXTRA_DIST = intr.inl diff --git a/c/src/exec/posix/inline/rtems/posix/cond.inl b/c/src/exec/posix/inline/rtems/posix/cond.inl index d718ef514f..19d5c6ec4b 100644 --- a/c/src/exec/posix/inline/rtems/posix/cond.inl +++ b/c/src/exec/posix/inline/rtems/posix/cond.inl @@ -53,10 +53,13 @@ RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control *_POSIX_Condition_variabl Objects_Locations *location ) { -/* XXX really should validate pointer */ /* XXX should support COND_INITIALIZER */ - return (POSIX_Condition_variables_Control *) - _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); + if ( id ) + return (POSIX_Condition_variables_Control *) + _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); + + *location = OBJECTS_ERROR; + return NULL; } /*PAGE diff --git a/c/src/exec/posix/macros/rtems/posix/Makefile.am b/c/src/exec/posix/macros/rtems/posix/Makefile.am index 32f810b57c..48f00c8a30 100644 --- a/c/src/exec/posix/macros/rtems/posix/Makefile.am +++ b/c/src/exec/posix/macros/rtems/posix/Makefile.am @@ -9,9 +9,8 @@ I_FILES = noinst_HEADERS = $(I_FILES) -PREINSTALL_FILES = \ -$(PROJECT_INCLUDE)/rtems/posix \ -$(I_FILES:%=$(PROJECT_INCLUDE)/rtems/posix/%) +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix \ + $(I_FILES:%=$(PROJECT_INCLUDE)/rtems/posix/%) $(PROJECT_INCLUDE)/rtems/posix: @$(mkinstalldirs) $@ @@ -19,8 +18,6 @@ $(PROJECT_INCLUDE)/rtems/posix/%.inl: %.inl $(INSTALL_DATA) $< $@ endif -all-am: $(PREINSTALL_FILES) -debug-am: $(PREINSTALL_FILES) -profile-am: $(PREINSTALL_FILES) +all-local: $(PREINSTALL_FILES) include $(top_srcdir)/../../../../automake/local.am diff --git a/c/src/exec/posix/optman/Makefile.am b/c/src/exec/posix/optman/Makefile.am index bf02adffdd..c6277ca054 100644 --- a/c/src/exec/posix/optman/Makefile.am +++ b/c/src/exec/posix/optman/Makefile.am @@ -13,7 +13,7 @@ include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg include $(top_srcdir)/../../../../automake/lib.am TMPINSTALL_FILES += \ -$(C_FILES:%.c=$(PROJECT_RELEASE)/lib/%$(LIB_VARIANT).rel) + $(C_FILES:%.c=$(PROJECT_RELEASE)/lib/%$(LIB_VARIANT).rel) $(PROJECT_RELEASE)/lib/%$(LIB_VARIANT).rel: $(ARCH)/%.rel $(INSTALL_DATA) $< $@ @@ -22,7 +22,6 @@ $(PROJECT_RELEASE)/lib/%$(LIB_VARIANT).rel: $(ARCH)/%.rel # (OPTIONAL) Add local stuff here using += # -AM_CFLAGS += $(CFLAGS_OS_V) ASM4FLAGS += -I$(PROJECT_INCLUDE)/rtems all-local: ${ARCH} $(PGMS) $(TMPINSTALL_FILES) diff --git a/c/src/exec/posix/src/Makefile.am b/c/src/exec/posix/src/Makefile.am index 63fd5adc0f..506d9c53fa 100644 --- a/c/src/exec/posix/src/Makefile.am +++ b/c/src/exec/posix/src/Makefile.am @@ -91,12 +91,11 @@ include $(top_srcdir)/../../../../automake/lib.am # AM_CPPFLAGS += -D__RTEMS_INSIDE__ -AM_CFLAGS += $(CFLAGS_OS_V) -all: ${ARCH} ${OBJS} +all-local: ${ARCH} ${OBJS} # temporary so we can see how many things are left to implement -not: +not: grep -i NOT_IMPL $(C_FILES) | grep -v MP_NOT_IMPL @echo @echo diff --git a/c/src/exec/posix/src/mqueuecreatesupp.c b/c/src/exec/posix/src/mqueuecreatesupp.c index 148f5b54cb..6b3e5dbe58 100644 --- a/c/src/exec/posix/src/mqueuecreatesupp.c +++ b/c/src/exec/posix/src/mqueuecreatesupp.c @@ -74,7 +74,7 @@ int _POSIX_Message_queue_Create_support( attr = *attr_ptr; } -#if defined(RTEMS_MULTIPROCESSING) +#if 0 && defined(RTEMS_MULTIPROCESSING) if ( pshared == PTHREAD_PROCESS_SHARED && !( _Objects_MP_Allocate_and_open( &_POSIX_Message_queue_Information, 0, the_mq->Object.id, FALSE ) ) ) { @@ -112,14 +112,14 @@ int _POSIX_Message_queue_Create_support( the_mq_attr, attr.mq_maxmsg, attr.mq_msgsize, -#if defined(RTEMS_MULTIPROCESSING) +#if 0 && defined(RTEMS_MULTIPROCESSING) _POSIX_Message_queue_MP_Send_extract_proxy #else NULL #endif ) ) { -#if defined(RTEMS_MULTIPROCESSING) +#if 0 && defined(RTEMS_MULTIPROCESSING) if ( pshared == PTHREAD_PROCESS_SHARED ) _Objects_MP_Close( &_POSIX_Message_queue_Information, the_mq->Object.id ); #endif @@ -137,7 +137,7 @@ int _POSIX_Message_queue_Create_support( *message_queue = the_mq; -#if defined(RTEMS_MULTIPROCESSING) +#if 0 && defined(RTEMS_MULTIPROCESSING) if ( pshared == PTHREAD_PROCESS_SHARED ) _POSIX_Message_queue_MP_Send_process_packet( POSIX_MESSAGE_QUEUE_MP_ANNOUNCE_CREATE, diff --git a/c/src/exec/posix/src/mqueuedeletesupp.c b/c/src/exec/posix/src/mqueuedeletesupp.c index ec717aedad..f8076d601a 100644 --- a/c/src/exec/posix/src/mqueuedeletesupp.c +++ b/c/src/exec/posix/src/mqueuedeletesupp.c @@ -48,7 +48,7 @@ void _POSIX_Message_queue_Delete( _POSIX_Message_queue_Free( the_mq ); -#if defined(RTEMS_MULTIPROCESSING) +#if 0 && defined(RTEMS_MULTIPROCESSING) if ( the_mq->process_shared == PTHREAD_PROCESS_SHARED ) { _Objects_MP_Close( diff --git a/c/src/exec/posix/src/mqueueunlink.c b/c/src/exec/posix/src/mqueueunlink.c index 4c219eecea..26399386a7 100644 --- a/c/src/exec/posix/src/mqueueunlink.c +++ b/c/src/exec/posix/src/mqueueunlink.c @@ -63,7 +63,7 @@ int mq_unlink( _Objects_Get_index( the_mq_id ) ); -#if defined(RTEMS_MULTIPROCESSING) +#if 0 && defined(RTEMS_MULTIPROCESSING) if ( the_mq->process_shared == PTHREAD_PROCESS_SHARED ) { _Objects_MP_Close( &_POSIX_Message_queue_Information, the_mq_id ); } diff --git a/c/src/exec/posix/src/pthread.c b/c/src/exec/posix/src/pthread.c index 49f6273a71..46a41a1da5 100644 --- a/c/src/exec/posix/src/pthread.c +++ b/c/src/exec/posix/src/pthread.c @@ -356,8 +356,8 @@ void _POSIX_Threads_Manager_initialization( FALSE, /* does not support global */ maximum_pthreads, sizeof( Thread_Control ), - TRUE, - 5, /* length is arbitrary for now */ + FALSE, + 0, /* length is arbitrary for now */ TRUE /* this class is threads */ ); diff --git a/c/src/exec/posix/src/pthreadcreate.c b/c/src/exec/posix/src/pthreadcreate.c index b4e4788f2e..c936e6ec65 100644 --- a/c/src/exec/posix/src/pthreadcreate.c +++ b/c/src/exec/posix/src/pthreadcreate.c @@ -34,7 +34,6 @@ int pthread_create( boolean is_fp; boolean status; Thread_Control *the_thread; - char *default_name = "psx"; POSIX_API_Control *api; int schedpolicy = SCHED_RR; struct sched_param schedparam; @@ -177,7 +176,7 @@ int pthread_create( budget_algorithm, budget_callout, 0, /* isr level */ - &default_name /* posix threads don't have a name */ + NULL /* posix threads don't have a name */ ); if ( !status ) { diff --git a/c/src/exec/posix/src/sigtimedwait.c b/c/src/exec/posix/src/sigtimedwait.c index b3b2de247d..276b9b61af 100644 --- a/c/src/exec/posix/src/sigtimedwait.c +++ b/c/src/exec/posix/src/sigtimedwait.c @@ -21,6 +21,7 @@ #include #include #include +#include int _POSIX_signals_Get_highest( sigset_t set @@ -55,7 +56,27 @@ int sigtimedwait( siginfo_t signal_information; siginfo_t *the_info; int signo; + ISR_Level level; + /* + * Error check parameters before disabling interrupts. + */ + + interval = 0; + if ( timeout ) { + + if ( timeout->tv_nsec < 0 || + timeout->tv_nsec >= TOD_NANOSECONDS_PER_SECOND) { + set_errno_and_return_minus_one( EINVAL ); + } + + interval = _POSIX_Timespec_to_interval( timeout ); + } + + /* + * Initialize local variables. + */ + the_info = ( info ) ? info : &signal_information; the_thread = _Thread_Executing; @@ -68,11 +89,13 @@ int sigtimedwait( /* API signals pending? */ + _ISR_Disable( level ); if ( *set & api->signals_pending ) { /* XXX real info later */ the_info->si_signo = _POSIX_signals_Get_highest( api->signals_pending ); - _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, - FALSE, FALSE ); + _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, FALSE, FALSE ); + _ISR_Enable( level ); + the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; return the_info->si_signo; @@ -83,6 +106,7 @@ int sigtimedwait( if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); _POSIX_signals_Clear_signals( api, signo, the_info, TRUE, FALSE ); + _ISR_Enable( level ); the_info->si_signo = signo; the_info->si_code = SI_USER; @@ -90,15 +114,6 @@ int sigtimedwait( return signo; } - interval = 0; - if ( timeout ) { - - if (timeout->tv_nsec < 0 || timeout->tv_nsec >= TOD_NANOSECONDS_PER_SECOND) - set_errno_and_return_minus_one( EINVAL ); - - interval = _POSIX_Timespec_to_interval( timeout ); - } - the_info->si_signo = -1; _Thread_Disable_dispatch(); @@ -107,6 +122,7 @@ int sigtimedwait( the_thread->Wait.option = *set; the_thread->Wait.return_argument = (void *) the_info; _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue ); + _ISR_Enable( level ); _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval ); _Thread_Enable_dispatch(); @@ -115,9 +131,7 @@ int sigtimedwait( * the signal. */ - _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, - FALSE, FALSE ); - + _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, FALSE, FALSE ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } diff --git a/c/src/exec/posix/src/waitpid.c b/c/src/exec/posix/src/waitpid.c index f20161b5a9..d52177961d 100644 --- a/c/src/exec/posix/src/waitpid.c +++ b/c/src/exec/posix/src/waitpid.c @@ -8,8 +8,10 @@ #include #include -int wait( - int *stat_loc +int waitpid( + pid_t pid, + int *stat_loc, + int options ) { errno = ENOSYS; -- cgit v1.2.3