On semaphore creation the Initial count in host_rtos_init_semaphore(...) is set to 0.
There are may places the semaphores are used. One example is to synchronized printing from threads are it can be found here, Create, Join and Delete Threads with WICED APIs.
The host_rtos_set_semaphore() always increments the number of the semaphore count. This is a counting semaphore API. Can you provide a binary semaphore API. The host_rtos_set_semaphore() can only set the 1 value of the semaphore.