Interface: Refine OS wrapper APIs

For the following OS wrapper APIs
    os_wrapper_thread_new
    os_wrapper_thread_get_id
    os_wrapper_thread_get_priority
    os_wrapper_semaphore_create
    os_wrapper_mutex_create
They return the corresponding IDs or priorities on success and
OS_WRAPPER_ERROR on failure.
This makes the "OS_WRAPPER_ERROR" value invalid for thread IDs,
mutex IDs...etc on all OSes.
But it could be a valid value on some OSes.

This patch fixes this problem by
1. Changing mutex, semaphore and thread IDs to handles
2. For os_wrapper_thread_get_priority, putting outputs to
   parameters and returning only success or error.
   For the others, treating NULL return as error and others for
   valid handles.

Change-Id: I19aa0415ce0ba4388fb96602fea8f10f702d8c45
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
diff --git a/interface/include/os_wrapper/thread.h b/interface/include/os_wrapper/thread.h
index cfd2e13..8386bd5 100644
--- a/interface/include/os_wrapper/thread.h
+++ b/interface/include/os_wrapper/thread.h
@@ -28,27 +28,28 @@
  * \param[in] arg         Argument to pass to the function invoked by thread
  * \param[in] priority    Initial thread priority
  *
- * \return Returns thread ID, or \ref OS_WRAPPER_ERROR in case of error
+ * \return Returns the thread handle created, or NULL in case of error
  */
-uint32_t os_wrapper_thread_new(const char *name, int32_t stack_size,
-                               os_wrapper_thread_func func, void *arg,
-                               uint32_t priority);
+void *os_wrapper_thread_new(const char *name, int32_t stack_size,
+                            os_wrapper_thread_func func, void *arg,
+                            uint32_t priority);
 /**
- * \brief Gets current thread ID
+ * \brief Gets current thread handle
  *
- * \return Returns thread ID, or \ref OS_WRAPPER_ERROR in case of error
+ * \return Returns the thread handle, or NULL in case of error
  */
-uint32_t os_wrapper_thread_get_id(void);
+void *os_wrapper_thread_get_handle(void);
 
 /**
  * \brief Gets thread priority
  *
- * \param[in] id Thread ID
+ * \param[in]  handle   Thread handle
+ * \param[out] priority The priority of the thread
  *
- * \return Returns thread priority value, or \ref OS_WRAPPER_ERROR in case of
- *         error
+ * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
+ *                 in case of error
  */
-uint32_t os_wrapper_thread_get_priority(uint32_t id);
+uint32_t os_wrapper_thread_get_priority(void *handle, uint32_t *priority);
 
 /**
  * \brief Exits the calling thread