Looks good except for the minor issue that in the nanosleep file there is a mix of (X) and ( X ) for conditionals and method invocations. Fix that and commit.
FWIW while your head is in clocks, the clock attribute on condition variables has been added but is not currently used. I don't know if it has a ticket offhand. --joel On Thu, Jun 9, 2016 at 10:56 AM, Gedare Bloom <ged...@rtems.org> wrote: > closes #2732 > --- > cpukit/posix/src/nanosleep.c | 55 ++++++++-- > testsuites/psxtests/psxhdrs/Makefile.am | 1 + > testsuites/psxtests/psxhdrs/time/clock_nanosleep.c | 35 +++++++ > testsuites/psxtmtests/Makefile.am | 3 + > testsuites/psxtmtests/configure.ac | 3 + > .../psxtmtests/psxtmclocknanosleep01/Makefile.am | 25 +++++ > testsuites/psxtmtests/psxtmclocknanosleep01/init.c | 59 +++++++++++ > .../psxtmclocknanosleep01.doc | 12 +++ > .../psxtmtests/psxtmclocknanosleep02/Makefile.am | 25 +++++ > testsuites/psxtmtests/psxtmclocknanosleep02/init.c | 109 > ++++++++++++++++++++ > .../psxtmclocknanosleep02.doc | 10 ++ > .../psxtmtests/psxtmclocknanosleep03/Makefile.am | 25 +++++ > testsuites/psxtmtests/psxtmclocknanosleep03/init.c | 114 > +++++++++++++++++++++ > .../psxtmclocknanosleep03.doc | 10 ++ > 14 files changed, 477 insertions(+), 9 deletions(-) > create mode 100644 testsuites/psxtests/psxhdrs/time/clock_nanosleep.c > create mode 100644 testsuites/psxtmtests/psxtmclocknanosleep01/Makefile.am > create mode 100644 testsuites/psxtmtests/psxtmclocknanosleep01/init.c > create mode 100644 > testsuites/psxtmtests/psxtmclocknanosleep01/psxtmclocknanosleep01.doc > create mode 100644 testsuites/psxtmtests/psxtmclocknanosleep02/Makefile.am > create mode 100644 testsuites/psxtmtests/psxtmclocknanosleep02/init.c > create mode 100644 > testsuites/psxtmtests/psxtmclocknanosleep02/psxtmclocknanosleep02.doc > create mode 100644 testsuites/psxtmtests/psxtmclocknanosleep03/Makefile.am > create mode 100644 testsuites/psxtmtests/psxtmclocknanosleep03/init.c > create mode 100644 > testsuites/psxtmtests/psxtmclocknanosleep03/psxtmclocknanosleep03.doc > > diff --git a/cpukit/posix/src/nanosleep.c b/cpukit/posix/src/nanosleep.c > index 8fc86d6..dba5b02 100644 > --- a/cpukit/posix/src/nanosleep.c > +++ b/cpukit/posix/src/nanosleep.c > @@ -8,6 +8,8 @@ > /* > * COPYRIGHT (c) 1989-2015. > * On-Line Applications Research Corporation (OAR). > + * > + * Copyright (c) 2016. Gedare Bloom. > * > * The license and distribution terms for this file may be > * found in the file LICENSE in this distribution or at > @@ -30,12 +32,10 @@ > static Thread_queue_Control _Nanosleep_Pseudo_queue = > THREAD_QUEUE_INITIALIZER( "Nanosleep" ); > > -/* > - * 14.2.5 High Resolution Sleep, P1003.1b-1993, p. 269 > - */ > -int nanosleep( > +static inline int nanosleep_helper( > const struct timespec *rqtp, > - struct timespec *rmtp > + struct timespec *rmtp, > + Watchdog_Clock clock > ) > { > /* > @@ -57,7 +57,7 @@ int nanosleep( > * FSU and GNU/Linux pthreads shares this behavior. > */ > if ( !_Timespec_Is_valid( rqtp ) ) > - rtems_set_errno_and_return_minus_one( EINVAL ); > + return EINVAL; > > /* > * Convert the timespec delay into the appropriate number of clock > ticks. > @@ -93,7 +93,7 @@ int nanosleep( > executing, > STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL, > ticks, > - WATCHDOG_RELATIVE, > + clock, > 1 > ); > > @@ -110,7 +110,7 @@ int nanosleep( > /* > * If the user wants the time remaining, do the conversion. > */ > - if ( rmtp ) { > + if ( rmtp && clock == WATCHDOG_RELATIVE ) { > _Timespec_From_ticks( ticks, rmtp ); > } > > @@ -122,8 +122,45 @@ int nanosleep( > * If there is time remaining, then we were interrupted by a signal. > */ > if ( ticks ) > - rtems_set_errno_and_return_minus_one( EINTR ); > + return EINTR; > #endif > > return 0; > } > +/* > + * 14.2.5 High Resolution Sleep, P1003.1b-1993, p. 269 > + */ > +int nanosleep( > + const struct timespec *rqtp, > + struct timespec *rmtp > +) > +{ > + int err = nanosleep_helper(rqtp, rmtp, WATCHDOG_RELATIVE); > + if (err) { > + rtems_set_errno_and_return_minus_one( err ); > + } > + return 0; > +} > + > +/* > + * High Resolution Sleep with Specifiable Clock, IEEE Std 1003.1, 2001 > + */ > +int clock_nanosleep( > + clockid_t clock_id, > + int flags, > + const struct timespec *rqtp, > + struct timespec *rmtp > +) > +{ > + int err = 0; > + if ( clock_id == CLOCK_REALTIME || clock_id == CLOCK_MONOTONIC ) { > + if ( flags & TIMER_ABSTIME ) { > + err = nanosleep_helper(rqtp, rmtp, WATCHDOG_ABSOLUTE); > + } else { > + err = nanosleep_helper(rqtp, rmtp, WATCHDOG_RELATIVE); > + } > + } else { > + err = ENOTSUP; > + } > + return err; > +} > diff --git a/testsuites/psxtests/psxhdrs/Makefile.am > b/testsuites/psxtests/psxhdrs/Makefile.am > index 3eecd84..3c60f8d 100644 > --- a/testsuites/psxtests/psxhdrs/Makefile.am > +++ b/testsuites/psxtests/psxhdrs/Makefile.am > @@ -95,6 +95,7 @@ lib_a_SOURCES += time/clock.c > lib_a_SOURCES += time/clock_getcpuclockid.c > lib_a_SOURCES += time/clock_getres.c > lib_a_SOURCES += time/clock_gettime.c > +lib_a_SOURCES += time/clock_nanosleep.c > lib_a_SOURCES += time/clock_settime.c > lib_a_SOURCES += time/ctime.c > lib_a_SOURCES += time/ctime_r.c > diff --git a/testsuites/psxtests/psxhdrs/time/clock_nanosleep.c > b/testsuites/psxtests/psxhdrs/time/clock_nanosleep.c > new file mode 100644 > index 0000000..d13100d > --- /dev/null > +++ b/testsuites/psxtests/psxhdrs/time/clock_nanosleep.c > @@ -0,0 +1,35 @@ > +/* > + * This test file is used to verify that the header files associated with > + * invoking this function are correct. > + * > + * Copyright (c) 2016 Gedare Bloom. > + * > + * The license and distribution terms for this file may be > + * found in the file LICENSE in this distribution or at > + * http://www.rtems.org/license/LICENSE. > + */ > + > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > +#include <time.h> > + > +#ifndef _POSIX_TIMERS > +#error "rtems is supposed to have clock_nanosleep" > +#endif > + > +int test( void ); > + > +int test( void ) > +{ > + struct timespec rqtp; > + struct timespec rmtp; > + int result; > + > + rqtp.tv_sec = 0; > + rqtp.tv_nsec = 0; > + result = clock_nanosleep( CLOCK_REALTIME, 0, &rqtp, &rmtp ); > + > + return result; > +} > diff --git a/testsuites/psxtmtests/Makefile.am > b/testsuites/psxtmtests/Makefile.am > index c4276a4..e7e079a 100644 > --- a/testsuites/psxtmtests/Makefile.am > +++ b/testsuites/psxtmtests/Makefile.am > @@ -7,6 +7,9 @@ SUBDIRS += psxtmbarrier01 > SUBDIRS += psxtmbarrier02 > SUBDIRS += psxtmbarrier03 > SUBDIRS += psxtmbarrier04 > +SUBDIRS += psxtmclocknanosleep01 > +SUBDIRS += psxtmclocknanosleep02 > +SUBDIRS += psxtmclocknanosleep03 > SUBDIRS += psxtmcond01 > SUBDIRS += psxtmcond02 > SUBDIRS += psxtmcond03 > diff --git a/testsuites/psxtmtests/configure.ac b/testsuites/psxtmtests/ > configure.ac > index 13cf945..b3ab540 100644 > --- a/testsuites/psxtmtests/configure.ac > +++ b/testsuites/psxtmtests/configure.ac > @@ -81,6 +81,9 @@ psxtmbarrier01/Makefile > psxtmbarrier02/Makefile > psxtmbarrier03/Makefile > psxtmbarrier04/Makefile > +psxtmclocknanosleep01/Makefile > +psxtmclocknanosleep02/Makefile > +psxtmclocknanosleep03/Makefile > psxtmcond01/Makefile > psxtmcond02/Makefile > psxtmcond03/Makefile > diff --git a/testsuites/psxtmtests/psxtmclocknanosleep01/Makefile.am > b/testsuites/psxtmtests/psxtmclocknanosleep01/Makefile.am > new file mode 100644 > index 0000000..2476b6b > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep01/Makefile.am > @@ -0,0 +1,25 @@ > + > +rtems_tests_PROGRAMS = psxtmclocknanosleep01 > +psxtmclocknanosleep01_SOURCES = init.c ../../tmtests/include/timesys.h \ > + ../../support/src/tmtests_empty_function.c \ > + ../../support/src/tmtests_support.c > + > +dist_rtems_tests_DATA = psxtmclocknanosleep01.doc > + > +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg > +include $(top_srcdir)/../automake/compile.am > +include $(top_srcdir)/../automake/leaf.am > + > +OPERATION_COUNT = @OPERATION_COUNT@ > +AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include > +AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT) > +AM_CPPFLAGS += -I$(top_srcdir)/../support/include > + > +LINK_OBJS = $(psxtmclocknanosleep01_OBJECTS) > +LINK_LIBS = $(psxtmclocknanosleep01_LDLIBS) > + > +psxtmclocknanosleep01$(EXEEXT): $(psxtmclocknanosleep01_OBJECTS) > $(psxtmclocknanosleep01_DEPENDENCIES) > + @rm -f psxtmclocknanosleep01$(EXEEXT) > + $(make-exe) > + > +include $(top_srcdir)/../automake/local.am > diff --git a/testsuites/psxtmtests/psxtmclocknanosleep01/init.c > b/testsuites/psxtmtests/psxtmclocknanosleep01/init.c > new file mode 100644 > index 0000000..86c1f5f > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep01/init.c > @@ -0,0 +1,59 @@ > +/* > + * COPYRIGHT (c) 1989-2013. > + * On-Line Applications Research Corporation (OAR). > + * > + * Copyright (c) 2016. Gedare Bloom. > + * > + * The license and distribution terms for this file may be > + * found in the file LICENSE in this distribution or at > + * http://www.rtems.org/license/LICENSE. > + */ > + > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > +#include <timesys.h> > +#include <rtems/btimer.h> > +#include "test_support.h" > + > +const char rtems_test_name[] = "PSXTMCLOCKNANOSLEEP 01"; > + > +/* forward declarations to avoid warnings */ > +void *POSIX_Init(void *argument); > + > +void *POSIX_Init( > + void *argument > +) > +{ > + benchmark_timer_t end_time; > + struct timespec sleepTime; > + > + sleepTime.tv_sec = 0; > + sleepTime.tv_nsec = 0; > + > + TEST_BEGIN(); > + > + benchmark_timer_initialize(); > + clock_nanosleep( CLOCK_REALTIME, 0, &sleepTime, (struct timespec *) > NULL ); > + end_time = benchmark_timer_read(); > + > + put_time( "nanosleep: yield", end_time, 1, 0, 0 ); > + > + TEST_END(); > + > + rtems_test_exit(0); > +} > + > +/* configuration information */ > + > +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER > +#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER > + > +#define CONFIGURE_MAXIMUM_POSIX_THREADS 1 > +#define CONFIGURE_POSIX_INIT_THREAD_TABLE > + > +#define CONFIGURE_INIT > + > +#include <rtems/confdefs.h> > +/* end of file */ > diff --git > a/testsuites/psxtmtests/psxtmclocknanosleep01/psxtmclocknanosleep01.doc > b/testsuites/psxtmtests/psxtmclocknanosleep01/psxtmclocknanosleep01.doc > new file mode 100644 > index 0000000..67370cf > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep01/psxtmclocknanosleep01.doc > @@ -0,0 +1,12 @@ > +# Copyright 2016. Gedare Bloom. > +# > +# The license and distribution terms for this file may be > +# found in the file LICENSE in this distribution or at > +# http://www.rtems.org/license/LICENSE. > +# > + > +This test benchmarks the following operations: > + > ++ Benchmark a call to clock_nanosleep() which yields > + > + > diff --git a/testsuites/psxtmtests/psxtmclocknanosleep02/Makefile.am > b/testsuites/psxtmtests/psxtmclocknanosleep02/Makefile.am > new file mode 100644 > index 0000000..6e651eb > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep02/Makefile.am > @@ -0,0 +1,25 @@ > + > +rtems_tests_PROGRAMS = psxtmclocknanosleep02 > +psxtmclocknanosleep02_SOURCES = init.c ../../tmtests/include/timesys.h \ > + ../../support/src/tmtests_empty_function.c \ > + ../../support/src/tmtests_support.c > + > +dist_rtems_tests_DATA = psxtmclocknanosleep02.doc > + > +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg > +include $(top_srcdir)/../automake/compile.am > +include $(top_srcdir)/../automake/leaf.am > + > +OPERATION_COUNT = @OPERATION_COUNT@ > +AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include > +AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT) > +AM_CPPFLAGS += -I$(top_srcdir)/../support/include > + > +LINK_OBJS = $(psxtmclocknanosleep02_OBJECTS) > +LINK_LIBS = $(psxtmclocknanosleep02_LDLIBS) > + > +psxtmclocknanosleep02$(EXEEXT): $(psxtmclocknanosleep02_OBJECTS) > $(psxtmclocknanosleep02_DEPENDENCIES) > + @rm -f psxtmclocknanosleep02$(EXEEXT) > + $(make-exe) > + > +include $(top_srcdir)/../automake/local.am > diff --git a/testsuites/psxtmtests/psxtmclocknanosleep02/init.c > b/testsuites/psxtmtests/psxtmclocknanosleep02/init.c > new file mode 100644 > index 0000000..b35a82b > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep02/init.c > @@ -0,0 +1,109 @@ > +/* > + * COPYRIGHT (c) 1989-2013. > + * On-Line Applications Research Corporation (OAR). > + * > + * Copyright (c) 2016. Gedare Bloom. > + * > + * The license and distribution terms for this file may be > + * found in the file LICENSE in this distribution or at > + * http://www.rtems.org/license/LICENSE. > + */ > + > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > +#include <timesys.h> > +#include <rtems/btimer.h> > +#include "test_support.h" > + > +#include <pthread.h> > + > +const char rtems_test_name[] = "PSXTMCLOCKNANOSLEEP 02"; > + > +/* forward declarations to avoid warnings */ > +void *POSIX_Init(void *argument); > +void *Middle(void *argument); > +void *Low(void *argument); > + > +void *Low( > + void *argument > +) > +{ > + benchmark_timer_t end_time; > + > + end_time = benchmark_timer_read(); > + > + put_time( > + "clock_nanosleep: blocking", > + end_time, > + OPERATION_COUNT, > + 0, > + 0 > + ); > + > + TEST_END(); > + > + rtems_test_exit( 0 ); > + return NULL; > +} > + > +void *Middle( > + void *argument > +) > +{ > + /* calling nanosleep */ > + struct timespec sleepTime; > + sleepTime.tv_sec = 0; > + sleepTime.tv_nsec = 1; > + > + clock_nanosleep(CLOCK_REALTIME, 0, &sleepTime, (struct timespec *) > NULL); > + > + return NULL; > +} > + > +void *POSIX_Init( > + void *argument > +) > +{ > + int i; > + int status; > + pthread_t threadId; > + struct timespec sleepTime; > + struct timespec remainder; > + > + sleepTime.tv_sec = 0; > + sleepTime.tv_nsec = 1; > + remainder.tv_sec = 0; > + remainder.tv_nsec = 0; > + > + TEST_BEGIN(); > + > + for ( i=0 ; i < OPERATION_COUNT - 1 ; i++ ) { > + status = pthread_create( &threadId, NULL, Middle, NULL ); > + rtems_test_assert( !status ); > + } > + > + status = pthread_create( &threadId, NULL, Low, NULL ); > + rtems_test_assert( !status ); > + > + /* start the timer and switch through all the other tasks */ > + benchmark_timer_initialize(); > + /* calling clock_nanosleep*/ > + clock_nanosleep(CLOCK_REALTIME, 0, &sleepTime, &remainder); > + > + return NULL; > +} > + > +/* configuration information */ > + > +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER > +#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER > + > +#define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 > +#define CONFIGURE_POSIX_INIT_THREAD_TABLE > + > +#define CONFIGURE_INIT > + > +#include <rtems/confdefs.h> > + /* end of file */ > diff --git > a/testsuites/psxtmtests/psxtmclocknanosleep02/psxtmclocknanosleep02.doc > b/testsuites/psxtmtests/psxtmclocknanosleep02/psxtmclocknanosleep02.doc > new file mode 100644 > index 0000000..4724ae5 > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep02/psxtmclocknanosleep02.doc > @@ -0,0 +1,10 @@ > +# Copyright (c) 2016. Gedare Bloom > +# > +# The license and distribution terms for this file may be > +# found in the file LICENSE in this distribution or at > +# http://www.rtems.org/license/LICENSE. > +# > + > +This test benchmarks the following operations: > + > ++ clock_nanosleep - blocking > diff --git a/testsuites/psxtmtests/psxtmclocknanosleep03/Makefile.am > b/testsuites/psxtmtests/psxtmclocknanosleep03/Makefile.am > new file mode 100644 > index 0000000..1c8fb55 > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep03/Makefile.am > @@ -0,0 +1,25 @@ > + > +rtems_tests_PROGRAMS = psxtmclocknanosleep03 > +psxtmclocknanosleep03_SOURCES = init.c ../../tmtests/include/timesys.h \ > + ../../support/src/tmtests_empty_function.c \ > + ../../support/src/tmtests_support.c > + > +dist_rtems_tests_DATA = psxtmclocknanosleep03.doc > + > +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg > +include $(top_srcdir)/../automake/compile.am > +include $(top_srcdir)/../automake/leaf.am > + > +OPERATION_COUNT = @OPERATION_COUNT@ > +AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include > +AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT) > +AM_CPPFLAGS += -I$(top_srcdir)/../support/include > + > +LINK_OBJS = $(psxtmclocknanosleep03_OBJECTS) > +LINK_LIBS = $(psxtmclocknanosleep03_LDLIBS) > + > +psxtmclocknanosleep03$(EXEEXT): $(psxtmclocknanosleep03_OBJECTS) > $(psxtmclocknanosleep03_DEPENDENCIES) > + @rm -f psxtmclocknanosleep03$(EXEEXT) > + $(make-exe) > + > +include $(top_srcdir)/../automake/local.am > diff --git a/testsuites/psxtmtests/psxtmclocknanosleep03/init.c > b/testsuites/psxtmtests/psxtmclocknanosleep03/init.c > new file mode 100644 > index 0000000..ccceada > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep03/init.c > @@ -0,0 +1,114 @@ > +/* > + * COPYRIGHT (c) 1989-2013. > + * On-Line Applications Research Corporation (OAR). > + * > + * Copyright (c) 2016. Gedare Bloom. > + * > + * The license and distribution terms for this file may be > + * found in the file LICENSE in this distribution or at > + * http://www.rtems.org/license/LICENSE. > + */ > + > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > +#include <timesys.h> > +#include <rtems/btimer.h> > +#include "test_support.h" > + > +#include <pthread.h> > + > +const char rtems_test_name[] = "PSXTMCLOCKNANOSLEEP 03"; > + > +/* forward declarations to avoid warnings */ > +void *POSIX_Init(void *argument); > +void *Middle(void *argument); > +void *Low(void *argument); > + > +void *Low( > + void *argument > +) > +{ > + benchmark_timer_t end_time; > + > + end_time = benchmark_timer_read(); > + > + put_time( > + "clock_nanosleep: blocking", > + end_time, > + OPERATION_COUNT, > + 0, > + 0 > + ); > + > + TEST_END(); > + > + rtems_test_exit( 0 ); > + return NULL; > +} > + > +void *Middle( > + void *argument > +) > +{ > + /* calling nanosleep */ > + struct timespec sleepTime; > + sleepTime.tv_sec = 0; > + sleepTime.tv_nsec = 1; > + > + clock_nanosleep( > + CLOCK_REALTIME, > + TIMER_ABSTIME, > + &sleepTime, > + (struct timespec *) NULL > + ); > + > + return NULL; > +} > + > +void *POSIX_Init( > + void *argument > +) > +{ > + int i; > + int status; > + pthread_t threadId; > + struct timespec sleepTime; > + struct timespec remainder; > + > + sleepTime.tv_sec = 0; > + sleepTime.tv_nsec = 1; > + remainder.tv_sec = 0; > + remainder.tv_nsec = 0; > + > + TEST_BEGIN(); > + > + for ( i=0 ; i < OPERATION_COUNT - 1 ; i++ ) { > + status = pthread_create( &threadId, NULL, Middle, NULL ); > + rtems_test_assert( !status ); > + } > + > + status = pthread_create( &threadId, NULL, Low, NULL ); > + rtems_test_assert( !status ); > + > + /* start the timer and switch through all the other tasks */ > + benchmark_timer_initialize(); > + /* calling clock_nanosleep*/ > + clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, &sleepTime, &remainder); > + > + return NULL; > +} > + > +/* configuration information */ > + > +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER > +#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER > + > +#define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 > +#define CONFIGURE_POSIX_INIT_THREAD_TABLE > + > +#define CONFIGURE_INIT > + > +#include <rtems/confdefs.h> > + /* end of file */ > diff --git > a/testsuites/psxtmtests/psxtmclocknanosleep03/psxtmclocknanosleep03.doc > b/testsuites/psxtmtests/psxtmclocknanosleep03/psxtmclocknanosleep03.doc > new file mode 100644 > index 0000000..8ea20f6 > --- /dev/null > +++ b/testsuites/psxtmtests/psxtmclocknanosleep03/psxtmclocknanosleep03.doc > @@ -0,0 +1,10 @@ > +# Copyright (c) 2016. Gedare Bloom > +# > +# The license and distribution terms for this file may be > +# found in the file LICENSE in this distribution or at > +# http://www.rtems.org/license/LICENSE. > +# > + > +This test benchmarks the following operations: > + > ++ clock_nanosleep - blocking with TIMER_ABSTIME > -- > 1.9.1 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel