Lines Matching refs:entry

37 static void emlxs_event_destroy(emlxs_hba_t *hba, emlxs_event_entry_t *entry);
152 emlxs_event_destroy(emlxs_hba_t *hba, emlxs_event_entry_t *entry) in emlxs_event_destroy() argument
158 port = (emlxs_port_t *)entry->port; in emlxs_event_destroy()
165 if (entry->prev) { in emlxs_event_destroy()
166 entry->prev->next = entry->next; in emlxs_event_destroy()
168 if (entry->next) { in emlxs_event_destroy()
169 entry->next->prev = entry->prev; in emlxs_event_destroy()
171 if (eventq->first == entry) { in emlxs_event_destroy()
172 eventq->first = entry->next; in emlxs_event_destroy()
174 if (eventq->last == entry) { in emlxs_event_destroy()
175 eventq->last = entry->prev; in emlxs_event_destroy()
179 entry->prev = NULL; in emlxs_event_destroy()
180 entry->next = NULL; in emlxs_event_destroy()
182 if ((entry->evt->mask == EVT_LINK) || in emlxs_event_destroy()
183 (entry->evt->mask == EVT_RSCN)) { in emlxs_event_destroy()
184 if (!(entry->flag & EMLXS_DFC_EVENT_DONE)) { in emlxs_event_destroy()
192 entry->evt->label, entry->id, entry->flag, missed, eventq->count); in emlxs_event_destroy()
195 if (entry->evt->destroy != emlxs_null_func) { in emlxs_event_destroy()
196 entry->evt->destroy(entry); in emlxs_event_destroy()
200 if (entry->bp && entry->size) { in emlxs_event_destroy()
201 kmem_free(entry->bp, entry->size); in emlxs_event_destroy()
205 kmem_free(entry, sizeof (emlxs_event_entry_t)); in emlxs_event_destroy()
217 emlxs_event_entry_t *entry; in emlxs_event() local
226 if (!(entry = (emlxs_event_entry_t *)kmem_alloc( in emlxs_event()
235 bzero(entry, sizeof (emlxs_event_entry_t)); in emlxs_event()
237 entry->evt = evt; in emlxs_event()
238 entry->port = (void *)port; in emlxs_event()
239 entry->bp = bp; in emlxs_event()
240 entry->size = size; in emlxs_event()
245 entry->timestamp = hba->timer_tics; in emlxs_event()
247 entry->timer = entry->timestamp + evt->timeout; in emlxs_event()
256 entry->id = eventq->next_id++; in emlxs_event()
262 eventq->last_id[i] = entry->id; in emlxs_event()
268 entry->next = NULL; in emlxs_event()
270 entry->prev = NULL; in emlxs_event()
271 eventq->first = entry; in emlxs_event()
272 eventq->last = entry; in emlxs_event()
274 entry->prev = eventq->last; in emlxs_event()
275 entry->prev->next = entry; in emlxs_event()
276 eventq->last = entry; in emlxs_event()
280 if ((entry->evt->mask == EVT_LINK) || in emlxs_event()
281 (entry->evt->mask == EVT_RSCN)) { in emlxs_event()
286 "%s[%d]: bp=%p size=%d cnt=%d", entry->evt->label, in emlxs_event()
287 entry->id, bp, size, eventq->count); in emlxs_event()
312 emlxs_event_entry_t *entry; in emlxs_timer_check_events() local
326 entry = eventq->first; in emlxs_timer_check_events()
327 while (entry) { in emlxs_timer_check_events()
328 if ((!entry->timer) || in emlxs_timer_check_events()
329 (entry->timer > hba->timer_tics)) { in emlxs_timer_check_events()
330 entry = entry->next; in emlxs_timer_check_events()
335 next = entry->next; in emlxs_timer_check_events()
336 emlxs_event_destroy(hba, entry); in emlxs_timer_check_events()
337 entry = next; in emlxs_timer_check_events()
440 emlxs_event_entry_t *entry; in emlxs_flush_ct_event() local
446 for (entry = eventq->first; entry != NULL; entry = entry->next) { in emlxs_flush_ct_event()
447 if ((entry->port != port) || in emlxs_flush_ct_event()
448 (entry->evt != &emlxs_ct_event)) { in emlxs_flush_ct_event()
452 ptr = (uint32_t *)entry->bp; in emlxs_flush_ct_event()
456 entry->flag |= EMLXS_DFC_EVENT_DONE; in emlxs_flush_ct_event()
458 emlxs_event_destroy(hba, entry); in emlxs_flush_ct_event()
514 emlxs_ct_event_destroy(emlxs_event_entry_t *entry) in emlxs_ct_event_destroy() argument
516 emlxs_port_t *port = (emlxs_port_t *)entry->port; in emlxs_ct_event_destroy()
520 if (!(entry->flag & EMLXS_DFC_EVENT_DONE)) { in emlxs_ct_event_destroy()
522 rxid = *(uint32_t *)entry->bp; in emlxs_ct_event_destroy()
526 entry->port, (void *)(unsigned long)rxid); in emlxs_ct_event_destroy()
804 emlxs_event_entry_t *entry; in emlxs_get_dfc_eventinfo() local
844 entry = eventq->first; in emlxs_get_dfc_eventinfo()
845 while (entry && (events < max_events)) { in emlxs_get_dfc_eventinfo()
848 if (entry->id <= hba->hba_event.last_id) { in emlxs_get_dfc_eventinfo()
849 entry = entry->next; in emlxs_get_dfc_eventinfo()
854 switch (entry->evt->mask) { in emlxs_get_dfc_eventinfo()
856 byte = (uint8_t *)entry->bp; in emlxs_get_dfc_eventinfo()
903 word = (uint32_t *)entry->bp; in emlxs_get_dfc_eventinfo()
948 hba->hba_event.last_id = entry->id; in emlxs_get_dfc_eventinfo()
949 entry = entry->next; in emlxs_get_dfc_eventinfo()
968 emlxs_event_entry_t *entry; in emlxs_get_dfc_event() local
1043 entry = eventq->first; in emlxs_get_dfc_event()
1044 while (entry) { in emlxs_get_dfc_event()
1045 if ((entry->id > dfc_event->last_id) && in emlxs_get_dfc_event()
1046 (entry->evt->mask == dfc_event->event)) { in emlxs_get_dfc_event()
1051 entry = entry->next; in emlxs_get_dfc_event()
1065 if (entry->bp && entry->size) { in emlxs_get_dfc_event()
1066 if (entry->size < size) { in emlxs_get_dfc_event()
1067 size = entry->size; in emlxs_get_dfc_event()
1070 bcopy((void *)entry->bp, dfc_event->dataout, size); in emlxs_get_dfc_event()
1073 entry->flag |= EMLXS_DFC_EVENT_DONE; in emlxs_get_dfc_event()
1078 dfc_event->last_id = entry->id; in emlxs_get_dfc_event()
1393 emlxs_event_entry_t *entry; in emlxs_get_sd_event() local
1465 entry = eventq->first; in emlxs_get_sd_event()
1466 while (entry) { in emlxs_get_sd_event()
1467 if ((entry->id > dfc_event->last_id) && in emlxs_get_sd_event()
1468 (entry->port == (void *)port) && in emlxs_get_sd_event()
1469 (entry->evt->mask == dfc_event->event)) { in emlxs_get_sd_event()
1474 entry = entry->next; in emlxs_get_sd_event()
1488 if (entry->bp && entry->size) { in emlxs_get_sd_event()
1489 if (entry->size < size) { in emlxs_get_sd_event()
1490 size = entry->size; in emlxs_get_sd_event()
1493 bcopy((void *)entry->bp, dfc_event->dataout, size); in emlxs_get_sd_event()
1496 entry->flag |= EMLXS_SD_EVENT_DONE; in emlxs_get_sd_event()
1501 dfc_event->last_id = entry->id; in emlxs_get_sd_event()