void qemu_sem_post(QemuSemaphore *sem)

{

    int rc;



#if defined(__APPLE__) || defined(__NetBSD__)

    pthread_mutex_lock(&sem->lock);

    if (sem->count == INT_MAX) {

        rc = EINVAL;

    } else if (sem->count++ < 0) {

        rc = pthread_cond_signal(&sem->cond);

    } else {

        rc = 0;

    }

    pthread_mutex_unlock(&sem->lock);

    if (rc != 0) {

        error_exit(rc, __func__);

    }

#else

    rc = sem_post(&sem->sem);

    if (rc < 0) {

        error_exit(errno, __func__);

    }

#endif

}

void qemu_sem_post(QemuSemaphore *sem)

{

    int rc;



#if defined(__APPLE__) || defined(__NetBSD__)

    pthread_mutex_lock(&sem->lock);

    if (sem->count == INT_MAX) {

        rc = EINVAL;

    } else if (sem->count++ < 0) {

        rc = pthread_cond_signal(&sem->cond);

    } else {

        rc = 0;

    }

    pthread_mutex_unlock(&sem->lock);

    if (rc != 0) {

        error_exit(rc, __func__);

    }

#else

    rc = sem_post(&sem->sem);

    if (rc < 0) {

        error_exit(errno, __func__);

    }

#endif

}

    if (sem->count == INT_MAX) {     } else if (sem->count++ < 0) {         rc = pthread_cond_signal(&sem->cond);         rc = 0;     int rc;
void FUNC_0(QemuSemaphore *VAR_0)

{

    int VAR_1;



#if defined(__APPLE__) || defined(__NetBSD__)

    pthread_mutex_lock(&VAR_0->lock);

    if (VAR_0->count == INT_MAX) {

        VAR_1 = EINVAL;

    } else if (VAR_0->count++ < 0) {

        VAR_1 = pthread_cond_signal(&VAR_0->cond);

    } else {

        VAR_1 = 0;

    }

    pthread_mutex_unlock(&VAR_0->lock);

    if (VAR_1 != 0) {

        error_exit(VAR_1, __func__);

    }

#else

    VAR_1 = sem_post(&VAR_0->VAR_0);

    if (VAR_1 < 0) {

        error_exit(errno, __func__);

    }

#endif

}

void FUNC_0(QemuSemaphore *VAR_0)
{ int VAR_1; #if defined(__APPLE__) || defined(__NetBSD__)
pthread_mutex_lock(&VAR_0->lock); if (VAR_0->count == INT_MAX) { VAR_1 = EINVAL; } else if (VAR_0->count++ < 0) { VAR_1 = pthread_cond_signal(&VAR_0->cond); } else { VAR_1 = 0; } pthread_mutex_unlock(&VAR_0->lock); if (VAR_1 != 0) { error_exit(VAR_1, __func__); } #else
VAR_1 = sem_post(&VAR_0->VAR_0); if (VAR_1 < 0) { error_exit(errno, __func__); } #endif
}