summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel@rtems.org>2016-03-09 15:15:37 -0600
committerJoel Sherrill <joel@rtems.org>2016-06-16 09:04:11 -0500
commit6131b849081335e101f92b4a99e01572153d44f5 (patch)
tree453f987a20252c55b7084e030508a8a02d1f348a /cpukit
parentmptests/mp03/task1.c: Make method static to fix warning (diff)
downloadrtems-6131b849081335e101f92b4a99e01572153d44f5.tar.bz2
Add pthread_condattr_getclock() and pthread_condattr_setclock()
updates #2608.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/posix/Makefile.am4
-rw-r--r--cpukit/posix/src/condattrgetclock.c39
-rw-r--r--cpukit/posix/src/condattrsetclock.c45
3 files changed, 87 insertions, 1 deletions
diff --git a/cpukit/posix/Makefile.am b/cpukit/posix/Makefile.am
index 873ad11226..2442f0ce57 100644
--- a/cpukit/posix/Makefile.am
+++ b/cpukit/posix/Makefile.am
@@ -83,7 +83,9 @@ libposix_a_SOURCES += src/cancel.c \
## CONDITION_VARIABLE_C_FILES
libposix_a_SOURCES += src/cond.c src/condattrdestroy.c \
- src/condattrgetpshared.c src/condattrinit.c src/condattrsetpshared.c \
+ src/condattrinit.c \
+ src/condattrgetpshared.c src/condattrsetpshared.c \
+ src/condattrgetclock.c src/condattrsetclock.c \
src/condbroadcast.c src/conddefaultattributes.c src/conddestroy.c \
src/condinit.c src/condsignal.c src/condsignalsupp.c \
src/condtimedwait.c src/condwait.c src/condwaitsupp.c src/condget.c
diff --git a/cpukit/posix/src/condattrgetclock.c b/cpukit/posix/src/condattrgetclock.c
new file mode 100644
index 0000000000..4ff455d1f3
--- /dev/null
+++ b/cpukit/posix/src/condattrgetclock.c
@@ -0,0 +1,39 @@
+/**
+ * @file
+ *
+ * @brief Get the Clock Condition Variable Attributes
+ * @ingroup POSIXAPI
+ */
+
+/*
+ * COPYRIGHT (c) 2016
+ * 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.org/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pthread.h>
+#include <errno.h>
+
+int pthread_condattr_getclock(
+ const pthread_condattr_t *__restrict attr,
+ clockid_t *__restrict clock
+)
+{
+ if ( attr == NULL ) {
+ return EINVAL;
+ }
+
+ if ( clock == NULL ) {
+ return EINVAL;
+ }
+
+ *clock = attr->clock;
+ return 0;
+}
diff --git a/cpukit/posix/src/condattrsetclock.c b/cpukit/posix/src/condattrsetclock.c
new file mode 100644
index 0000000000..1b47b97464
--- /dev/null
+++ b/cpukit/posix/src/condattrsetclock.c
@@ -0,0 +1,45 @@
+/**
+ * @file
+ *
+ * @brief Set the Clock Condition Variable Attributes
+ * @ingroup POSIXAPI
+ */
+
+/*
+ * COPYRIGHT (c) 2016.
+ * 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.org/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pthread.h>
+#include <errno.h>
+
+int pthread_condattr_setclock(
+ pthread_condattr_t *attr,
+ clockid_t clock
+)
+{
+ if ( attr == NULL ) {
+ return EINVAL;
+ }
+
+ switch ( clock ) {
+ case CLOCK_REALTIME:
+ case CLOCK_MONOTONIC:
+ attr->clock = clock;
+ return 0;
+
+ case CLOCK_PROCESS_CPUTIME_ID:
+ case CLOCK_THREAD_CPUTIME_ID:
+ default:
+ break;
+ }
+ return EINVAL;
+}