summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cpukit/ChangeLog6
-rw-r--r--cpukit/posix/src/clockgettime.c30
-rw-r--r--cpukit/posix/src/clocksettime.c33
-rw-r--r--cpukit/posix/src/pthreadcreate.c3
4 files changed, 32 insertions, 40 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index 8833090871..e11f2fd03f 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,5 +1,11 @@
2008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com>
+ * posix/src/clockgettime.c, posix/src/clocksettime.c,
+ Minor modifications to improve testability.
+ * posix/src/pthreadcreate.c: Add NULL check for thread entry.
+
+2008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com>
+
* posix/src/pthreadinitthreads.c: Clean up error paths.
2008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com>
diff --git a/cpukit/posix/src/clockgettime.c b/cpukit/posix/src/clockgettime.c
index d87503e2cf..d94bd16f98 100644
--- a/cpukit/posix/src/clockgettime.c
+++ b/cpukit/posix/src/clockgettime.c
@@ -36,32 +36,22 @@ int clock_gettime(
if ( !tp )
rtems_set_errno_and_return_minus_one( EINVAL );
- switch ( clock_id ) {
-
- case CLOCK_REALTIME:
- _TOD_Get(tp);
- break;
-
+ if ( clock_id == CLOCK_REALTIME )
+ _TOD_Get(tp);
#ifdef CLOCK_MONOTONIC
- case CLOCK_MONOTONIC:
- _TOD_Get_uptime(tp);
- break;
+ else if ( clock_id == CLOCK_MONOTONIC )
+ _TOD_Get_uptime(tp);
#endif
-
#ifdef _POSIX_CPUTIME
- case CLOCK_PROCESS_CPUTIME:
- _TOD_Get_uptime(tp);
- break;
+ else if ( clock_id == CLOCK_PROCESS_CPUTIME )
+ _TOD_Get_uptime(tp);
#endif
-
#ifdef _POSIX_THREAD_CPUTIME
- case CLOCK_THREAD_CPUTIME:
- rtems_set_errno_and_return_minus_one( ENOSYS );
- break;
+ else if ( clock_id == CLOCK_THREAD_CPUTIME )
+ rtems_set_errno_and_return_minus_one( ENOSYS );
#endif
- default:
- rtems_set_errno_and_return_minus_one( EINVAL );
+ else
+ rtems_set_errno_and_return_minus_one( EINVAL );
- }
return 0;
}
diff --git a/cpukit/posix/src/clocksettime.c b/cpukit/posix/src/clocksettime.c
index 64cd5c4110..aa3743d9f9 100644
--- a/cpukit/posix/src/clocksettime.c
+++ b/cpukit/posix/src/clocksettime.c
@@ -36,31 +36,24 @@ int clock_settime(
if ( !tp )
rtems_set_errno_and_return_minus_one( EINVAL );
- switch ( clock_id ) {
-
- case CLOCK_REALTIME:
- if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 )
- rtems_set_errno_and_return_minus_one( EINVAL );
-
- _Thread_Disable_dispatch();
- _TOD_Set( tp );
- _Thread_Enable_dispatch();
- break;
+ if ( clock_id == CLOCK_REALTIME ) {
+ if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 )
+ rtems_set_errno_and_return_minus_one( EINVAL );
+ _Thread_Disable_dispatch();
+ _TOD_Set( tp );
+ _Thread_Enable_dispatch();
+ }
#ifdef _POSIX_CPUTIME
- case CLOCK_PROCESS_CPUTIME:
- rtems_set_errno_and_return_minus_one( ENOSYS );
- break;
+ else if ( clock_id == CLOCK_PROCESS_CPUTIME )
+ rtems_set_errno_and_return_minus_one( ENOSYS );
#endif
-
#ifdef _POSIX_THREAD_CPUTIME
- case CLOCK_THREAD_CPUTIME:
- rtems_set_errno_and_return_minus_one( ENOSYS );
- break;
+ else if ( clock_id == CLOCK_THREAD_CPUTIME )
+ rtems_set_errno_and_return_minus_one( ENOSYS );
#endif
- default:
- rtems_set_errno_and_return_minus_one( EINVAL );
+ else
+ rtems_set_errno_and_return_minus_one( EINVAL );
- }
return 0;
}
diff --git a/cpukit/posix/src/pthreadcreate.c b/cpukit/posix/src/pthreadcreate.c
index c239036e1b..e6bd5bc549 100644
--- a/cpukit/posix/src/pthreadcreate.c
+++ b/cpukit/posix/src/pthreadcreate.c
@@ -44,6 +44,9 @@ int pthread_create(
struct sched_param schedparam;
Objects_Name name;
+ if ( !start_routine )
+ return EFAULT;
+
the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes;
if ( !the_attr->is_initialized )