unsigned ctl_mutex_lock_nb(CTL_MUTEX_t *m);
ctl_mutex_lock_nb locks the mutex pointed to by m to the calling task. If the mutex is already locked by the calling task then the mutex lock count is incremented. If the mutex is already locked by a different task then zero is returned otherwise 1 is returned.
ctl_mutex_lock_nb must not be called from an interrupt service routine.