eventq
scp->eventq = NULL;
struct event_dispatchq *eventq, *eventq_next;
eventq = scp->eventq;
while (eventq) {
d_pkg = eventq->d_pkg;
eventq_next = eventq->next;
free(eventq);
eventq = eventq_next;
scp->eventq = eventq;
struct event_dispatchq *eventq;
while (scp->eventq == NULL) {
eventq = scp->eventq;
while (eventq != NULL) {
d_pkg = eventq->d_pkg;
scp->eventq = eventq->next;
free(eventq);
eventq = scp->eventq;
if (scp->eventq != NULL) {
tmp = scp->eventq;
scp->eventq = newq;
struct event_dispatchq *eventq; /* Client event queue */
struct eventq *next;
typedef struct eventq eventq_t;
emlxs_event_queue_t *eventq = &EVENTQ;
mutex_exit(&eventq->lock);
(dfc_event->last_id == eventq->last_id[i])) {
rc = cv_wait_sig(&eventq->lock_cv, &eventq->lock);
mutex_exit(&eventq->lock);
mutex_exit(&eventq->lock);
dfc_event->last_id = eventq->last_id[i];
mutex_exit(&eventq->lock);
mutex_enter(&eventq->lock);
entry = eventq->first;
dfc_event->last_id = eventq->last_id[i];
mutex_exit(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
mutex_enter(&eventq->lock);
cv_broadcast(&eventq->lock_cv);
mutex_exit(&eventq->lock);
cv_broadcast(&eventq->lock_cv);
mutex_exit(&eventq->lock);
mutex_enter(&eventq->lock);
while (eventq->first) {
emlxs_event_destroy(hba, eventq->first);
mutex_exit(&eventq->lock);
mutex_destroy(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
cv_destroy(&eventq->lock_cv);
mutex_enter(&eventq->lock);
if (dfc_event->last_id == eventq->last_id[i]) {
mutex_exit(&eventq->lock);
bzero(eventq, sizeof (emlxs_event_queue_t));
(dfc_event->last_id == eventq->last_id[i])) {
rc = cv_wait_sig(&eventq->lock_cv, &eventq->lock);
mutex_exit(&eventq->lock);
mutex_exit(&eventq->lock);
dfc_event->last_id = eventq->last_id[i];
mutex_exit(&eventq->lock);
entry = eventq->first;
dfc_event->last_id = eventq->last_id[i];
mutex_exit(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
eventq->count--;
if (eventq->count == 0) {
eventq->first = NULL;
eventq->last = NULL;
if (eventq->first == entry) {
eventq->first = entry->next;
if (eventq->last == entry) {
eventq->last = entry->prev;
entry->evt->label, entry->id, entry->flag, missed, eventq->count);
emlxs_event_queue_t *eventq = &EVENTQ;
mutex_enter(&eventq->lock);
if (eventq->next_id == 0) {
eventq->next_id = 1;
entry->id = eventq->next_id++;
eventq->last_id[i] = entry->id;
if (eventq->count == 0) {
eventq->first = entry;
eventq->last = entry;
entry->prev = eventq->last;
eventq->last = entry;
eventq->count++;
entry->id, bp, size, eventq->count);
cv_broadcast(&eventq->lock_cv);
mutex_exit(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
if (eventq->count) {
mutex_enter(&eventq->lock);
entry = eventq->first;
mutex_exit(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
mutex_enter(&eventq->lock);
for (entry = eventq->first; entry != NULL; entry = entry->next) {
mutex_exit(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
bzero(eventq, sizeof (emlxs_event_queue_t));
cv_init(&eventq->lock_cv, NULL, CV_DRIVER, NULL);
emlxs_event_queue_t *eventq = &EVENTQ;
mutex_init(&eventq->lock, NULL, MUTEX_DRIVER, (void *)iblock);
mutex_enter(&eventq->lock);
hba->hba_event.last_id = eventq->next_id - 1;
mutex_exit(&eventq->lock);
entry = eventq->first;
mutex_init(&eventq->lock, NULL, MUTEX_DRIVER,
mutex_exit(&eventq->lock);
emlxs_event_queue_t *eventq = &EVENTQ;
mutex_enter(&eventq->lock);
if (dfc_event->last_id == eventq->last_id[i]) {