release_sem_etc
extern status_t release_sem_etc(sem_id id, int32 count, uint32 flags);
#define wakeup(i) release_sem_etc(i->Sem, 0, B_RELEASE_IF_WAITING_ONLY | B_RELEASE_ALL)
release_sem_etc(fNotify, 0, B_RELEASE_ALL);
release_sem_etc(fNotify, 1, B_RELEASE_IF_WAITING_ONLY
release_sem_etc(fNotify, 1, B_RELEASE_IF_WAITING_ONLY
#define UNLOCKM(l,cnt) release_sem_etc(l.s, cnt, 0)
release_sem_etc(fThreadSem, fThreads.size(), 0);
result = release_sem_etc(handle, units, B_DO_NOT_RESCHEDULE);
if (release_sem_etc(device->read_sem, 1, B_RELEASE_IF_WAITING_ONLY) == B_OK)
release_sem_etc(sTimerSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sTimerSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fChannelQueueSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fChannelQueueSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(cookie->sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev->result_sem, cnt, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev->result_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev->result_sem, -sem_count, 0);
release_sem_etc(cookie->sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sKeyboardSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sKeyboardSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sServiceSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sServiceSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sServiceSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(cookie->standard_mouse_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(cookie->synaptics_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(bus->start_service, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc( bus->start_service, 1, 0/*B_DO_NOT_RESCHEDULE*/ );
release_sem_etc( bus->start_service, 1, 0/*B_DO_NOT_RESCHEDULE*/ );
release_sem_etc(bus->start_service, 1, 0/*B_DO_NOT_RESCHEDULE*/);
release_sem_etc(bus->start_service, 1, 0/*B_DO_NOT_RESCHEDULE*/);
release_sem_etc(bus->start_service, 1, 0/*B_DO_NOT_RESCHEDULE*/);
release_sem_etc(fNotifySem, 1, B_RELEASE_IF_WAITING_ONLY);
release_sem_etc(fScanSemaphore, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(s->startqueue->sem_done, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(s->active->sem_done, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(s->startqueue->sem_done, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(s->active->sem_done, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fResponseSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fResponseSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(bl_ccb->done, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishIsochronousTransfersSem, 1 /*frameCount*/,
release_sem_etc(fAsyncAdvanceSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishIsochronousTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fEventSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fCmdCompSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sRequestSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sRequestSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fBuffersReadySem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(port->write_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(port->wr_time_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(port->write_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(port->rd_time_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(port->read_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(card->midi.midi_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(controller->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(codec->unsol_response_sem, 1,
release_sem_etc(codec->response_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(ice->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->playback_stream.buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->record_stream.buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(stream->fDevice->fBuffersReadySem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(d->rqSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->capture_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->capture_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sem, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(info.shared_info->vblank_sem, -count,
release_sem_etc(si->vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(si->vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(si->vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(si->crtc[0].vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(si->crtc[1].vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(di->dma_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(di->cap_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sem, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(si->vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(si->vblank, -blocked, B_DO_NOT_RESCHEDULE);
release_sem_etc(info->commandDone, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(dev->sem_cb.Get(), 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(mpu_device->readsemaphore, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(port->open_fd->sem_cb, pktlen,
#define io_unlock(data) release_sem_etc(data->iolock, 1, B_DO_NOT_RESCHEDULE)
#define output_unwait(data, c) release_sem_etc(data->olock, c, B_DO_NOT_RESCHEDULE)
#define input_unwait(data, c) release_sem_etc(data->ilock, c, B_DO_NOT_RESCHEDULE)
release_sem_etc(fLinkStateChangeSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyReadSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyWriteSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fLinkStateChangeSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fLinkStateChangeSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fLinkStateChangeSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyReadSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyWriteSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fLinkStateChangeSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fLinkStateChangeSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyReadSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyWriteSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fNotifyControlSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(info->rxDone, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(info->txDone, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->rxSem, releaseRxSem, B_DO_NOT_RESCHEDULE);
release_sem_etc(info->txSem, releaseTxSem, B_DO_NOT_RESCHEDULE);
release_sem_etc(fDoneWrite, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fDoneRead, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fDoneWrite, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fDoneRead, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(device->fDoneWrite, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(hpetCookie->sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(usb_vision_lock, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sLogEntrySem, sCurrentEntry, B_DO_NOT_RESCHEDULE);
error = release_sem_etc(fData->semaphore, -count, 0);
#define UNLOCKM(l,cnt) release_sem_etc(l.s, cnt, 0)
#define UNLOCKM(l,cnt) release_sem_etc(l.s, cnt, 0)
status = release_sem_etc(queue->wakeup_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(cookie->device->send_queue.notify, B_INTERRUPTED, B_RELEASE_ALL);
release_sem_etc(device->receive_queue.notify, B_INTERRUPTED, B_RELEASE_ALL);
release_sem_etc(fAcceptSemaphore, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(event,-c,0);
release_sem_etc(event,-c,0);
release_sem_etc(fContentPopulatorSem, 1, 0);
release_sem_etc(fWaitForThreads, fN, 0);
err = release_sem_etc(semid, count, 0);
return release_sem_etc(id, 1, 0);
release_sem_etc(data->lock, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(data->lock, 1, B_DO_NOT_RESCHEDULE);
return release_sem_etc(fReclaimSem, count, 0);
return release_sem_etc(groupReclaimSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(groupReclaimSem, count, 0);
release_sem_etc(groupReclaimSem, count - 1,
release_sem_etc(groupReclaimSem, count, B_DO_NOT_RESCHEDULE);
release_sem_etc(fInfos[i].reclaim_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fPrivateData->fMessageWaiters, 1, B_RELEASE_ALL);
release_sem_etc(data->fMessageWaiters, 1, B_RELEASE_ALL);
release_sem_etc(data->fMessageWaiters, 1, B_RELEASE_ALL);
release_sem_etc(intr->sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(ifp->receive_sem, 1, B_RELEASE_ALL);
release_sem_etc(ifp->link_state_sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(ifp->receive_sem, count, B_DO_NOT_RESCHEDULE);
release_sem_etc((*tqp)->tq_sem, 1, B_DO_NOT_RESCHEDULE);
return release_sem_etc(ifp->scan_done_sem, 1, B_RELEASE_ALL);
release_sem_etc(vap->iv_ifp->scan_done_sem, 1,
release_sem_etc(vap->iv_ifp->scan_done_sem, 1,
unlocked = release_sem_etc(fLock, 1, B_DO_NOT_RESCHEDULE) == B_OK;
unlocked = release_sem_etc(fLock, LARGE_NUMBER,
release_sem_etc(fSemaphore, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fWriterNotifier, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fReaderNotifier, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(fWriterNotifier, 1, 0);
release_sem_etc(fReaderNotifier, 1, 0);
release_sem_etc(sChunkAvailableSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sEventSemaphore, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sSyslogNotify, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sSyslogNotify, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sHeapGrowSem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(sHeapGrownNotify, -1, B_RELEASE_ALL);
release_sem_etc(sHeapGrowSem, 1, B_DO_NOT_RESCHEDULE);
return release_sem_etc(sem, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(locking->wait_sem, 1, B_RELEASE_ALL);
release_sem_etc(locking->lock, 1, B_DO_NOT_RESCHEDULE);
return release_sem_etc(id, 1, B_CHECK_PERMISSION);
return release_sem_etc(id, count, flags | B_CHECK_PERMISSION);
release_sem_etc(semToBeReleased, 1, B_DO_NOT_RESCHEDULE);
release_sem_etc(semToBeReleased, 1, B_DO_NOT_RESCHEDULE);
return release_sem_etc(id, 1, 0);
return release_sem_etc(sem, MAX_READER_COUNT, 0);
#define UNLOCKM(l,cnt) release_sem_etc(l.s, cnt, 0)
unlocked = (release_sem_etc(fWriteSem, 1,
unlocked = (release_sem_etc(fReadSem, readersWaiting,
unlocked = (release_sem_etc(fWriterLock, 1,
return release_sem_etc(id, count, flags);