}
#endif // _di_f_thread_mutex_lock_try_
-#ifndef _di_f_thread_mutex_priority_ceiling_get_
+#if defined(_pthread_mutex_prioceiling_unsupported_) && !defined(_di_f_thread_mutex_priority_ceiling_get_)
+ f_status_t f_thread_mutex_priority_ceiling_get(f_thread_mutex_t * const mutex, int * const ceiling) {
+ #ifndef _di_level_0_parameter_checking_
+ if (!mutex) return F_status_set_error(F_parameter);
+ if (!ceiling) 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_mutex_priority_ceiling_get_)
f_status_t f_thread_mutex_priority_ceiling_get(f_thread_mutex_t * const mutex, int * const ceiling) {
#ifndef _di_level_0_parameter_checking_
if (!mutex) return F_status_set_error(F_parameter);
return F_okay;
}
-#endif // _di_f_thread_mutex_priority_ceiling_get_
+#endif // defined(_pthread_mutex_prioceiling_unsupported_) && !defined(_di_f_thread_mutex_priority_ceiling_get_)
-#ifndef _di_f_thread_mutex_priority_ceiling_set_
+#if defined(_pthread_mutex_prioceiling_unsupported_) && !defined(_di_f_thread_mutex_priority_ceiling_set_)
+ f_status_t f_thread_mutex_priority_ceiling_set(const int ceiling, f_thread_mutex_t * const mutex, int * const previous) {
+ #ifndef _di_level_0_parameter_checking_
+ if (!mutex) 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_mutex_priority_ceiling_set_)
f_status_t f_thread_mutex_priority_ceiling_set(const int ceiling, f_thread_mutex_t * const mutex, int * const previous) {
#ifndef _di_level_0_parameter_checking_
if (!mutex) return F_status_set_error(F_parameter);
return F_okay;
}
-#endif // _di_f_thread_mutex_priority_ceiling_set_
+#endif // defined(_pthread_mutex_prioceiling_unsupported_) && !defined(_di_f_thread_mutex_priority_ceiling_set_)
#ifndef _di_f_thread_mutex_unlock_
f_status_t f_thread_mutex_unlock(f_thread_mutex_t * const mutex) {
_di_thread_support_ disables thread support, which is intended to disable this entire f_thread project. This is not directly used by this library, but is instead used by other libraries to not include f_thread (such as special compilations like monolithic). Future versions may potentially support this, providing stubs.
_pthread_attr_unsupported_ Disable non-portable functionality associated with pthread_attr.
+_pthread_mutex_prioceiling_unsupported_ Disable mutex_prioceiling related functionality for systems that do not support it.
_pthread_sigqueue_unsupported_ Disable GNU specific sigqueue().