summaryrefslogtreecommitdiffstats
path: root/pk/kernel/pk_semaphore_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'pk/kernel/pk_semaphore_init.c')
-rw-r--r--pk/kernel/pk_semaphore_init.c82
1 files changed, 0 insertions, 82 deletions
diff --git a/pk/kernel/pk_semaphore_init.c b/pk/kernel/pk_semaphore_init.c
deleted file mode 100644
index bed029da..00000000
--- a/pk/kernel/pk_semaphore_init.c
+++ /dev/null
@@ -1,82 +0,0 @@
-//-----------------------------------------------------------------------------
-// *! (C) Copyright International Business Machines Corp. 2014
-// *! All Rights Reserved -- Property of IBM
-// *! *** IBM Confidential ***
-//-----------------------------------------------------------------------------
-
-/// \file pk_semaphore_init.c
-/// \brief PK semaphore API initialization routines
-///
-/// The entry points in this file are routines that are typically used during
-/// initialization, and their code space could be deallocated and recovered if
-/// no longer needed by the application after initialization.
-
-#include "pk.h"
-
-/// Create (initialize) a semaphore
-///
-/// \param semaphore A pointer to an PkSemaphore structure to initialize
-///
-/// \param initial_count The initial count of the semaphore
-///
-/// \param max_count The maximum count allowed in the semaphore, for error
-/// checking
-///
-/// Semaphores are created (initialized) by a call of \c
-/// pk_semaphore_create(), using an application-provided instance of an \c
-/// PkSemaphore structure. This structure \e is the semaphore, so the
-/// application must never modify the structure if the semaphore is in use.
-/// PK has no way to know if an \c PkSemaphore structure provided to
-/// \c pk_semaphore_create() is safe to use as a semaphore, and will silently
-/// modify whatever memory is provided.
-///
-/// PK provides two simple overflow semantics based on the value of max_count
-/// in the call of \c pk_semaphore_create().
-///
-/// If \a max_count = 0, then posting to the semaphore first increments the
-/// internal count by 1. Overflows are ignored and will wrap the internal
-/// count through 0.
-///
-/// If \a max_count != 0, then posting to the semaphore first increments the
-/// internal count by 1, wrapping through 0 in the event of overflow. If the
-/// resulting count is greater than max_count, \c pk_semaphore_post() will
-/// return the error \c -PK_SEMAPHORE_POST_OVERFLOW to the caller.
-///
-/// In most applications it is probably best to use the \a max_count != 0
-/// semantics to trap programming errors, unless there is a specific
-/// application where overflow is expected and ignorable. As a fine point of
-/// the specification, a \a max_count of 0 is equivalent to a max_count of
-/// 0xFFFFFFFF.
-///
-/// Return values other then PK_OK (0) are errors; see \ref pk_errors
-///
-/// \retval 0 Successful completion
-///
-/// \retval -PK_INVALID_SEMAPHORE_AT_CREATE The \a semaphore is a null (0)
-/// pointer.
-///
-/// \retval -PK_INVALID_ARGUMENT_SEMAPHORE The \a max_count is non-zero
-/// and less than the \a initial_count.
-
-int
-pk_semaphore_create(PkSemaphore *semaphore,
- PkSemaphoreCount initial_count,
- PkSemaphoreCount max_count)
-{
- if (PK_ERROR_CHECK_API) {
- PK_ERROR_IF(semaphore == 0, PK_INVALID_SEMAPHORE_AT_CREATE);
- PK_ERROR_IF((max_count != 0) && (initial_count > max_count),
- PK_INVALID_ARGUMENT_SEMAPHORE);
- }
-
- __pk_thread_queue_clear(&(semaphore->pending_threads));
- semaphore->count = initial_count;
- semaphore->max_count = max_count;
-
- return PK_OK;
-}
-
-
-
-
-
OpenPOWER on IntegriCloud