#endif // defined(_pthread_attr_unsupported_) && !defined(_di_f_thread_attribute_affinity_get_)
#if defined(_pthread_attr_unsupported_) && !defined(_di_f_thread_attribute_affinity_set_)
- f_status_t f_thread_attribute_affinity_set(const size_t affinity_size, const cpu_set_t *affinity_set, f_thread_attribute_t * const attribute) {
+ f_status_t f_thread_attribute_affinity_set(const size_t affinity_size, const cpu_set_t * const affinity_set, f_thread_attribute_t * const attribute) {
#ifndef _di_level_0_parameter_checking_
if (!attribute) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
return F_status_set_error(F_implement_not);
}
#elif !defined(_di_f_thread_attribute_affinity_set_)
- f_status_t f_thread_attribute_affinity_set(const size_t affinity_size, const cpu_set_t *affinity_set, f_thread_attribute_t * const attribute) {
+ f_status_t f_thread_attribute_affinity_set(const size_t affinity_size, const cpu_set_t * const affinity_set, f_thread_attribute_t * const attribute) {
#ifndef _di_level_0_parameter_checking_
if (!attribute) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_attribute_scope_set_
#ifndef _di_f_thread_attribute_stack_get_
- f_status_t f_thread_attribute_stack_get(const f_thread_attribute_t attribute, size_t * const stack_size, void **stack) {
+ f_status_t f_thread_attribute_stack_get(const f_thread_attribute_t attribute, size_t * const stack_size, void ** const stack) {
#ifndef _di_level_0_parameter_checking_
if (!stack_size) return F_status_set_error(F_parameter);
if (!stack) return F_status_set_error(F_parameter);
#endif // _di_f_thread_barrier_attribute_create_
#ifndef _di_f_thread_barrier_attribute_delete_
- f_status_t f_thread_barrier_attribute_delete(f_thread_barrier_attribute_t *attribute) {
+ f_status_t f_thread_barrier_attribute_delete(f_thread_barrier_attribute_t * const attribute) {
#ifndef _di_level_0_parameter_checking_
if (!attribute) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_barrier_attribute_shared_set_
#ifndef _di_f_thread_barrier_create_
- f_status_t f_thread_barrier_create(const unsigned int count, f_thread_barrier_attribute_t * const attribute, f_thread_barrier_t *barrier) {
+ f_status_t f_thread_barrier_create(const unsigned int count, f_thread_barrier_attribute_t * const attribute, f_thread_barrier_t * const barrier) {
#ifndef _di_level_0_parameter_checking_
if (!barrier) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_barrier_create_
#ifndef _di_f_thread_barrier_delete_
- f_status_t f_thread_barrier_delete(f_thread_barrier_t *barrier) {
+ f_status_t f_thread_barrier_delete(f_thread_barrier_t * const barrier) {
#ifndef _di_level_0_parameter_checking_
if (!barrier) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_condition_attribute_create_
#ifndef _di_f_thread_condition_attribute_delete_
- f_status_t f_thread_condition_attribute_delete(f_thread_condition_attribute_t *condition_attribute) {
+ f_status_t f_thread_condition_attribute_delete(f_thread_condition_attribute_t * const condition_attribute) {
#ifndef _di_level_0_parameter_checking_
if (!condition_attribute) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_condition_create_
#ifndef _di_f_thread_condition_delete_
- f_status_t f_thread_condition_delete(f_thread_condition_t *condition) {
+ f_status_t f_thread_condition_delete(f_thread_condition_t * const condition) {
#ifndef _di_level_0_parameter_checking_
if (!condition) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_condition_wait_
#ifndef _di_f_thread_condition_wait_timed_
- f_status_t f_thread_condition_wait_timed(const f_time_spec_t *wait, f_thread_condition_t * const condition, f_thread_mutex_t * const mutex) {
+ f_status_t f_thread_condition_wait_timed(const f_time_spec_t * const wait, f_thread_condition_t * const condition, f_thread_mutex_t * const mutex) {
#ifndef _di_level_0_parameter_checking_
if (!condition) return F_status_set_error(F_parameter);
if (!mutex) return F_status_set_error(F_parameter);
#endif // _di_f_thread_condition_wait_timed_
#ifndef _di_f_thread_create_
- f_status_t f_thread_create(const f_thread_attribute_t * const attribute, f_thread_id_t * const id, void *(*routine) (void *), void *argument) {
+ f_status_t f_thread_create(const f_thread_attribute_t * const attribute, f_thread_id_t * const id, void *(*routine) (void *), void * const argument) {
#ifndef _di_level_0_parameter_checking_
if (!id) return F_status_set_error(F_parameter);
if (!routine) return F_status_set_error(F_parameter);
#endif // _di_f_thread_detach_
#ifndef _di_f_thread_exit_
- f_status_t f_thread_exit(int *result) {
+ f_status_t f_thread_exit(int * const result) {
#ifndef _di_level_0_parameter_checking_
if (!result) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_exit_
#ifndef _di_f_thread_join_
- f_status_t f_thread_join(const f_thread_id_t id, void **result) {
+ f_status_t f_thread_join(const f_thread_id_t id, void ** const result) {
const int error = pthread_join(id, result);
#endif // _di_f_thread_join_
#ifndef _di_f_thread_join_try_
- f_status_t f_thread_join_try(const f_thread_id_t id, void **result) {
+ f_status_t f_thread_join_try(const f_thread_id_t id, void ** const result) {
const int error = pthread_tryjoin_np(id, result);
#endif // _di_f_thread_join_try_
#ifndef _di_f_thread_join_timed_
- f_status_t f_thread_join_timed(const f_thread_id_t id, const f_time_spec_t wait, void **result) {
+ f_status_t f_thread_join_timed(const f_thread_id_t id, const f_time_spec_t wait, void ** const result) {
const int error = pthread_timedjoin_np(id, result, &wait);
#endif // _di_f_thread_key_delete_
#ifndef _di_f_thread_key_get_
- f_status_t f_thread_key_get(const f_thread_key_t key, void **value) {
+ f_status_t f_thread_key_get(const f_thread_key_t key, void ** const value) {
#ifndef _di_level_0_parameter_checking_
if (!value) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_key_get_
#ifndef _di_f_thread_key_set_
- f_status_t f_thread_key_set(const f_thread_key_t key, const void *value) {
+ f_status_t f_thread_key_set(const f_thread_key_t key, const void * const value) {
#ifndef _di_level_0_parameter_checking_
if (!value) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_lock_attribute_create_
#ifndef _di_f_thread_lock_attribute_delete_
- f_status_t f_thread_lock_attribute_delete(f_thread_lock_attribute_t *attribute) {
+ f_status_t f_thread_lock_attribute_delete(f_thread_lock_attribute_t * const attribute) {
#ifndef _di_level_0_parameter_checking_
if (!attribute) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_lock_create_
#ifndef _di_f_thread_lock_delete_
- f_status_t f_thread_lock_delete(f_thread_lock_t *lock) {
+ f_status_t f_thread_lock_delete(f_thread_lock_t * const lock) {
#ifndef _di_level_0_parameter_checking_
if (!lock) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_mutex_attribute_create_
#ifndef _di_f_thread_mutex_attribute_delete_
- f_status_t f_thread_mutex_attribute_delete(f_thread_mutex_attribute_t *attribute) {
+ f_status_t f_thread_mutex_attribute_delete(f_thread_mutex_attribute_t * const attribute) {
#ifndef _di_level_0_parameter_checking_
if (!attribute) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_mutex_create_
#ifndef _di_f_thread_mutex_delete_
- f_status_t f_thread_mutex_delete(f_thread_mutex_t *mutex) {
+ f_status_t f_thread_mutex_delete(f_thread_mutex_t * const mutex) {
#ifndef _di_level_0_parameter_checking_
if (!mutex) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_semaphore_create_
#ifndef _di_f_thread_semaphore_delete_
- f_status_t f_thread_semaphore_delete(f_thread_semaphore_t *semaphore) {
+ f_status_t f_thread_semaphore_delete(f_thread_semaphore_t * const semaphore) {
#ifndef _di_level_0_parameter_checking_
if (!semaphore) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_semaphore_delete_
#ifndef _di_f_thread_semaphore_file_close_
- f_status_t f_thread_semaphore_file_close(f_thread_semaphore_t *semaphore) {
+ f_status_t f_thread_semaphore_file_close(f_thread_semaphore_t * const semaphore) {
#ifndef _di_level_0_parameter_checking_
if (!semaphore) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
#endif // _di_f_thread_semaphore_file_delete_
#ifndef _di_f_thread_semaphore_file_open_
- f_status_t f_thread_semaphore_file_open(const f_string_static_t name, const int flag, mode_t * const mode, unsigned int value, f_thread_semaphore_t **semaphore) {
+ f_status_t f_thread_semaphore_file_open(const f_string_static_t name, const int flag, mode_t * const mode, unsigned int value, f_thread_semaphore_t ** const semaphore) {
#ifndef _di_level_0_parameter_checking_
if (!semaphore) return F_status_set_error(F_parameter);
if ((flag & O_CREAT) && !mode) return F_status_set_error(F_parameter);
#endif // _di_f_thread_spin_create_
#ifndef _di_f_thread_spin_delete_
- f_status_t f_thread_spin_delete(f_thread_spin_t *spin) {
+ f_status_t f_thread_spin_delete(f_thread_spin_t * const spin) {
#ifndef _di_level_0_parameter_checking_
if (!spin) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
*
* @param before
* The function to call before forking.
+ * Must not be NULL.
* @param after_parent
* The function called after forking, for the parent process.
+ * Must not be NULL.
* @param after_child
* The function called after forking, for the child process.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The size of the affinity_set.
* @param affinity_set
* The assigned affinity information.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The affinity information to assign.
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param level
* The concurrency level.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* Create (initialize) a thread attribute structure.
*
* @param attribute
- * (optional) The attribute to set.
- * Set to NULL to not use (in which case the default attribute is used).
+ * The attribute to set.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The thread attributes to process.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The thread attributes to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param state
* The currently assigned state.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The state to assign (such as PTHREAD_CREATE_DETACHED or PTHREAD_CREATE_JOINABLE).
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param guard
* The currently assigned guard size.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The guard size to assign.
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param inherit
* The currently assigned scheduler inherit state.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The inherit state of the scheduler (such as PTHREAD_INHERIT_SCHED or PTHREAD_EXPLICIT_SCHED).
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param parameter
* The currently assigned scheduler parameters.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The parameters of the scheduler.
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param policy
* The currently assigned scheduler policy state.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The policy state of the scheduler (such as SCHED_FIFO, SCHED_RR, or SCHED_OTHER).
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param scope
* The currently assigned scheduler scope state.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The scope state of the scheduler (such as PTHREAD_SCOPE_SYSTEM or PTHREAD_SCOPE_PROCESS).
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param stack_size
* The size of the stack.
+ * Must not be NULL.
* @param stack
* The assigned stack.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_attr_getstack()
*/
#ifndef _di_f_thread_attribute_stack_get_
- extern f_status_t f_thread_attribute_stack_get(const f_thread_attribute_t attribute, size_t * const stack_size, void **stack);
+ extern f_status_t f_thread_attribute_stack_get(const f_thread_attribute_t attribute, size_t * const stack_size, void ** const stack);
#endif // _di_f_thread_attribute_stack_get_
/**
* The size of the stack.
* @param stack
* The stack to assign.
+ * Must not be NULL.
* @param attribute
- * The thread attributes to update.
+ * The thread attributes to update
+ * Must not be NULL..
*
* @return
* F_okay on success.
* The thread attributes to process.
* @param stack_size
* The assigned size of the stack.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The size of the stack.
* @param attribute
* The thread attributes to update.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* Create (initialize) a thread barrier attribute structure.
*
* @param attribute
- * (optional) The attribute to set.
- * Set to NULL to not use (in which case the default attribute is used).
+ * The attribute to set.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The thread barrier_attributes to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_barrierattr_destroy()
*/
#ifndef _di_f_thread_barrier_attribute_delete_
- extern f_status_t f_thread_barrier_attribute_delete(f_thread_barrier_attribute_t *attribute);
+ extern f_status_t f_thread_barrier_attribute_delete(f_thread_barrier_attribute_t * const attribute);
#endif // _di_f_thread_barrier_attribute_delete_
/**
*
* @param attribute
* The barrier thread attribute.
+ * Must not be NULL.
* @param shared
* The process shared attribute value.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The process shared attribute value.
* @param attribute
* The barrier thread attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* Set to NULL to not use (in which case the default barrier attributes are used).
* @param barrier
* The barrier to set.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_barrier_init()
*/
#ifndef _di_f_thread_barrier_create_
- extern f_status_t f_thread_barrier_create(const unsigned int count, f_thread_barrier_attribute_t * const attribute, f_thread_barrier_t *barrier);
+ extern f_status_t f_thread_barrier_create(const unsigned int count, f_thread_barrier_attribute_t * const attribute, f_thread_barrier_t * const barrier);
#endif // _di_f_thread_barrier_create_
/**
*
* @param barrier
* The thread barriers to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_barrier_destroy()
*/
#ifndef _di_f_thread_barrier_delete_
- extern f_status_t f_thread_barrier_delete(f_thread_barrier_t *barrier);
+ extern f_status_t f_thread_barrier_delete(f_thread_barrier_t * const barrier);
#endif // _di_f_thread_barrier_delete_
/**
*
* @param barrier
* The barrier to wait on.
+ * Must not be NULL.
* @param result
* (optional) the return value, which will be PTHREAD_BARRIER_SERIAL_THREAD for one thread and 0 for others.
* Set to NULL to not use.
* The ID of the thread to use.
* @param id_clock
* The retrieved clock ID.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @param attribute
* The attribute to set.
* This assigns the default to the attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The thread condition attribute.
+ * Must not be NULL.
* @param id
* The clock ID.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The clock ID.
* @param attribute
* The thread condition attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The attribute to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_condattr_destroy()
*/
#ifndef _di_f_thread_condition_attribute_delete_
- extern f_status_t f_thread_condition_attribute_delete(f_thread_condition_attribute_t *attribute);
+ extern f_status_t f_thread_condition_attribute_delete(f_thread_condition_attribute_t * const attribute);
#endif // _di_f_thread_condition_attribute_delete_
/**
*
* @param condition
* The condition to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_cond_destroy()
*/
#ifndef _di_f_thread_condition_delete_
- extern f_status_t f_thread_condition_delete(f_thread_condition_t *condition);
+ extern f_status_t f_thread_condition_delete(f_thread_condition_t * const condition);
#endif // _di_f_thread_condition_delete_
/**
* The wait time is relative to the clock, so consider calling clock_gettime() or gettimeofday() and then adding the amount of wait time.
* @param condition
* The condition to wait on.
+ * Must not be NULL.
* @param mutex
* The mutex to use for waiting on condition.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_cond_timedwait()
*/
#ifndef _di_f_thread_condition_wait_timed_
- extern f_status_t f_thread_condition_wait_timed(const f_time_spec_t *wait, f_thread_condition_t * const condition, f_thread_mutex_t * const mutex);
+ extern f_status_t f_thread_condition_wait_timed(const f_time_spec_t * const wait, f_thread_condition_t * const condition, f_thread_mutex_t * const mutex);
#endif // _di_f_thread_condition_wait_timed_
/**
* @param id
* The thread ID.
* This gets populated with the created thread ID (aka: the "child" thread).
+ * Must not be NULL.
* @param routine
* The function to execute.
+ * Must not be NULL.
* @param argument
* (optional) The structure containing all arguments to pass to the routine.
* Set to NULL to not pass an argument.
* @see pthread_create()
*/
#ifndef _di_f_thread_create_
- extern f_status_t f_thread_create(const f_thread_attribute_t * const attribute, f_thread_id_t * const id, void *(*routine) (void *), void *argument);
+ extern f_status_t f_thread_create(const f_thread_attribute_t * const attribute, f_thread_id_t * const id, void *(*routine) (void *), void * const argument);
#endif // _di_f_thread_create_
/**
*
* @param result
* The code returned by the exited thread.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_exit()
*/
#ifndef _di_f_thread_exit_
- extern f_status_t f_thread_exit(int *result);
+ extern f_status_t f_thread_exit(int * const result);
#endif // _di_f_thread_exit_
/**
* @see pthread_join()
*/
#ifndef _di_f_thread_join_
- extern f_status_t f_thread_join(const f_thread_id_t id, void **result);
+ extern f_status_t f_thread_join(const f_thread_id_t id, void ** const result);
#endif // _di_f_thread_join_
/**
* @see pthread_tryjoin_np()
*/
#ifndef _di_f_thread_join_try_
- extern f_status_t f_thread_join_try(const f_thread_id_t id, void **result);
+ extern f_status_t f_thread_join_try(const f_thread_id_t id, void ** const result);
#endif // _di_f_thread_join_try_
/**
* @see pthread_timedjoin_np()
*/
#ifndef _di_f_thread_join_timed_
- extern f_status_t f_thread_join_timed(const f_thread_id_t id, const f_time_spec_t wait, void **result);
+ extern f_status_t f_thread_join_timed(const f_thread_id_t id, const f_time_spec_t wait, void ** const result);
#endif // _di_f_thread_join_timed_
/**
*
* @param routine
* The function to execute for deallocation/deleting.
+ * Must not be NULL.
* @param key
* The thread key.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param key
* The key to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread key.
* @param value
* The assigned thread key value.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_getspecific()
*/
#ifndef _di_f_thread_key_get_
- extern f_status_t f_thread_key_get(const f_thread_key_t key, void **value);
+ extern f_status_t f_thread_key_get(const f_thread_key_t key, void ** const value);
#endif // _di_f_thread_key_get_
/**
* The thread key.
* @param value
* The thread key value to assign.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_setspecific()
*/
#ifndef _di_f_thread_key_set_
- extern f_status_t f_thread_key_set(const f_thread_key_t key, const void *value);
+ extern f_status_t f_thread_key_set(const f_thread_key_t key, const void * const value);
#endif // _di_f_thread_key_set_
/**
*
* @param attribute
* The lock attributes to create.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The attribute to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_rwlockattr_destroy()
*/
#ifndef _di_f_thread_lock_attribute_delete_
- extern f_status_t f_thread_lock_attribute_delete(f_thread_lock_attribute_t *attribute);
+ extern f_status_t f_thread_lock_attribute_delete(f_thread_lock_attribute_t * const attribute);
#endif // _di_f_thread_lock_attribute_delete_
/**
*
* @param attribute
* The lock attribute.
+ * Must not be NULL.
* @param shared
* The lock shared attribute value.
+ * Must not be NULL.
*
* @return
* F_okay on success.
/**
* Set the lock attribute process shared thread attribute.
*
- * @param attribute
- * The lock attribute.
* @param shared
* The lock shared attribute value.
+ * @param attribute
+ * The lock attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The lock attribute.
+ * Must not be NULL.
* @param lock
* The lock to create.
*
*
* @param lock
* The lock to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_rwlock_destroy()
*/
#ifndef _di_f_thread_lock_delete_
- extern f_status_t f_thread_lock_delete(f_thread_lock_t *lock);
+ extern f_status_t f_thread_lock_delete(f_thread_lock_t * const lock);
#endif // _di_f_thread_lock_delete_
/**
*
* @param lock
* The thread lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param timeout
* The timeout.
+ * Must not be NULL.
* @param lock
* The read/write lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param lock
* The thread lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param lock
* The thread lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param timeout
* The timeout.
+ * Must not be NULL.
* @param lock
* The read/write lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param lock
* The thread lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The mutex attributes to create.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The attribute to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_mutexattr_destroy()
*/
#ifndef _di_f_thread_mutex_attribute_delete_
- extern f_status_t f_thread_mutex_attribute_delete(f_thread_mutex_attribute_t *attribute);
+ extern f_status_t f_thread_mutex_attribute_delete(f_thread_mutex_attribute_t * const attribute);
#endif // _di_f_thread_mutex_attribute_delete_
/**
*
* @param attribute
* The thread mutex attribute.
+ * Must not be NULL.
* @param ceiling
* The priority ceiling.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The priority ceiling.
* @param attribute
* The thread mutex attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The thread mutex attribute.
+ * Must not be NULL.
* @param protocol
* The protocol.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The protocol.
* @param attribute
* The thread mutex attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The mutex attribute.
+ * Must not be NULL.
* @param shared
* The mutex shared attribute value.
+ * Must not be NULL.
*
* @return
* F_okay on success.
/**
* Set the mutex attribute process shared thread attribute.
*
- * @param attribute
- * The mutex attribute.
* @param shared
* The mutex shared attribute value.
+ * @param attribute
+ * The mutex attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param attribute
* The mutex attribute.
+ * Must not be NULL.
* @param type
* The type.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The type.
* @param attribute
* The mutex attribute.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* Set to NULL to not use (in which case the default attributes are used).
* @param mutex
* The mutex to create.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param mutex
* The mutex to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_mutex_destroy()
*/
#ifndef _di_f_thread_mutex_delete_
- extern f_status_t f_thread_mutex_delete(f_thread_mutex_t *mutex);
+ extern f_status_t f_thread_mutex_delete(f_thread_mutex_t * const mutex);
#endif // _di_f_thread_mutex_delete_
/**
*
* @param mutex
* The thread mutex.
+ * Must not be NULL.
* @param ceiling
* The priority ceiling.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The priority ceiling.
* @param mutex
* The thread mutex.
+ * Must not be NULL.
* @param previous
* (optional) The previous priority ceiling.
* Set to NULL to not use.
*
* @param mutex
* The thread mutex.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param mutex
* The thread mutex.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param timeout
* The timeout.
+ * Must not be NULL.
* @param mutex
* The thread mutex.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param mutex
* The thread mutex.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The callback.
* @param once
* The once variable designating that the given routine will be called only once.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The thread ID.
* @param policy
* The scheduler policy
+ * Must not be NULL.
* @param parameter
* The scheduler parameter
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The scheduler policy
* @param parameter
* The scheduler parameter
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_setschedparam()
*/
#ifndef _di_f_thread_scheduler_parameter_set_
- extern f_status_t f_thread_scheduler_parameter_set(const f_thread_id_t id, const int policy, const struct sched_param *parameter);
+ extern f_status_t f_thread_scheduler_parameter_set(const f_thread_id_t id, const int policy, const struct sched_param * const parameter);
#endif // _di_f_thread_scheduler_parameter_set_
/**
* The value to initially assign the semaphore on creation.
* @param semaphore
* The semaphore to create.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param semaphore
* The semaphore to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see sem_destroy()
*/
#ifndef _di_f_thread_semaphore_delete_
- extern f_status_t f_thread_semaphore_delete(f_thread_semaphore_t *semaphore);
+ extern f_status_t f_thread_semaphore_delete(f_thread_semaphore_t * const semaphore);
#endif // _di_f_thread_semaphore_delete_
/**
*
* @param semaphore
* The semaphore to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see sem_close()
*/
#ifndef _di_f_thread_semaphore_file_close_
- extern f_status_t f_thread_semaphore_file_close(f_thread_semaphore_t *semaphore);
+ extern f_status_t f_thread_semaphore_file_close(f_thread_semaphore_t * const semaphore);
#endif // _di_f_thread_semaphore_file_close_
/**
* Ignored when mode is NULL.
* @param semaphore
* The thread semaphore.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see sem_open()
*/
#ifndef _di_f_thread_semaphore_file_open_
- extern f_status_t f_thread_semaphore_file_open(const f_string_static_t name, const int flag, mode_t * const mode, unsigned int value, f_thread_semaphore_t **semaphore);
+ extern f_status_t f_thread_semaphore_file_open(const f_string_static_t name, const int flag, mode_t * const mode, unsigned int value, f_thread_semaphore_t ** const semaphore);
#endif // _di_f_thread_semaphore_file_open_
/**
*
* @param semaphore
* The thread semaphore.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The timeout.
* @param semaphore
* The thread semaphore.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param semaphore
* The thread semaphore.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param semaphore
* The thread semaphore.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param semaphore
* The thread semaphore.
+ * Must not be NULL.
* @param value
* The semaphore's value.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* The shared process setting.
* @param spin
* The spin to create.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param spin
* The spin to delete.
+ * Must not be NULL.
*
* @return
* F_okay on success.
* @see pthread_spin_destroy()
*/
#ifndef _di_f_thread_spin_delete_
- extern f_status_t f_thread_spin_delete(f_thread_spin_t *spin);
+ extern f_status_t f_thread_spin_delete(f_thread_spin_t * const spin);
#endif // _di_f_thread_spin_delete_
/**
*
* @param spin
* The thread spin.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param spin
* The thread spin.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param spin
* The thread spin.
+ * Must not be NULL.
*
* @return
* F_okay on success.
*
* @param lock
* The thread lock.
+ * Must not be NULL.
*
* @return
* F_okay on success.