summaryrefslogtreecommitdiffstats
path: root/c/src/exec/posix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/exec/posix/include/Makefile.am13
-rw-r--r--c/src/exec/posix/include/pthread.h509
-rw-r--r--c/src/exec/posix/include/rtems/posix/Makefile.am11
-rw-r--r--c/src/exec/posix/include/sys/Makefile.am9
-rw-r--r--c/src/exec/posix/inline/rtems/posix/Makefile.am12
-rw-r--r--c/src/exec/posix/inline/rtems/posix/cond.inl9
-rw-r--r--c/src/exec/posix/macros/rtems/posix/Makefile.am9
-rw-r--r--c/src/exec/posix/optman/Makefile.am3
-rw-r--r--c/src/exec/posix/src/Makefile.am5
-rw-r--r--c/src/exec/posix/src/mqueuecreatesupp.c8
-rw-r--r--c/src/exec/posix/src/mqueuedeletesupp.c2
-rw-r--r--c/src/exec/posix/src/mqueueunlink.c2
-rw-r--r--c/src/exec/posix/src/pthread.c4
-rw-r--r--c/src/exec/posix/src/pthreadcreate.c3
-rw-r--r--c/src/exec/posix/src/sigtimedwait.c42
-rw-r--r--c/src/exec/posix/src/waitpid.c6
16 files changed, 71 insertions, 576 deletions
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 <sys/features.h>
-
-#if defined(_POSIX_THREADS)
-
-#include <sys/types.h>
-#include <time.h>
-#include <sys/sched.h>
-
-/*
- * 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 <rtems/posix/psignal.h>
#include <rtems/posix/seterr.h>
#include <rtems/posix/time.h>
+#include <rtems/score/isr.h>
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 <sys/wait.h>
#include <errno.h>
-int wait(
- int *stat_loc
+int waitpid(
+ pid_t pid,
+ int *stat_loc,
+ int options
)
{
errno = ENOSYS;