typedef struct { CTL_SEMAPHORE_t readers; CTL_MUTEX_t writer; unsigned max_readers; } CTL_RWLOCK_t;
CTL_RWLOCK_t defines a read-write lock. All members are private.