Lines Matching defs:entry

36 static void emlxs_event_destroy(emlxs_hba_t *hba, emlxs_event_entry_t *entry);
151 emlxs_event_destroy(emlxs_hba_t *hba, emlxs_event_entry_t *entry)
157 port = (emlxs_port_t *)entry->port;
164 if (entry->prev) {
165 entry->prev->next = entry->next;
167 if (entry->next) {
168 entry->next->prev = entry->prev;
170 if (eventq->first == entry) {
171 eventq->first = entry->next;
173 if (eventq->last == entry) {
174 eventq->last = entry->prev;
178 entry->prev = NULL;
179 entry->next = NULL;
181 if ((entry->evt->mask == EVT_LINK) ||
182 (entry->evt->mask == EVT_RSCN)) {
183 if (!(entry->flag & EMLXS_DFC_EVENT_DONE)) {
191 entry->evt->label, entry->id, entry->flag, missed, eventq->count);
194 if (entry->evt->destroy != emlxs_null_func) {
195 entry->evt->destroy(entry);
199 if (entry->bp && entry->size) {
200 kmem_free(entry->bp, entry->size);
203 /* Free entry buffer */
204 kmem_free(entry, sizeof (emlxs_event_entry_t));
216 emlxs_event_entry_t *entry;
224 /* Create event entry */
225 if (!(entry = (emlxs_event_entry_t *)kmem_alloc(
228 "%s: Unable to allocate event entry.", evt->label);
234 bzero(entry, sizeof (emlxs_event_entry_t));
236 entry->evt = evt;
237 entry->port = (void *)port;
238 entry->bp = bp;
239 entry->size = size;
244 entry->timestamp = hba->timer_tics;
246 entry->timer = entry->timestamp + evt->timeout;
255 entry->id = eventq->next_id++;
261 eventq->last_id[i] = entry->id;
267 entry->next = NULL;
269 entry->prev = NULL;
270 eventq->first = entry;
271 eventq->last = entry;
273 entry->prev = eventq->last;
274 entry->prev->next = entry;
275 eventq->last = entry;
279 if ((entry->evt->mask == EVT_LINK) ||
280 (entry->evt->mask == EVT_RSCN)) {
285 "%s[%d]: bp=%p size=%d cnt=%d", entry->evt->label,
286 entry->id, bp, size, eventq->count);
311 emlxs_event_entry_t *entry;
325 entry = eventq->first;
326 while (entry) {
327 if ((!entry->timer) ||
328 (entry->timer > hba->timer_tics)) {
329 entry = entry->next;
334 next = entry->next;
335 emlxs_event_destroy(hba, entry);
336 entry = next;
439 emlxs_event_entry_t *entry;
445 for (entry = eventq->first; entry != NULL; entry = entry->next) {
446 if ((entry->port != port) ||
447 (entry->evt != &emlxs_ct_event)) {
451 ptr = (uint32_t *)entry->bp;
455 entry->flag |= EMLXS_DFC_EVENT_DONE;
457 emlxs_event_destroy(hba, entry);
513 emlxs_ct_event_destroy(emlxs_event_entry_t *entry)
515 emlxs_port_t *port = (emlxs_port_t *)entry->port;
519 if (!(entry->flag & EMLXS_DFC_EVENT_DONE)) {
521 rxid = *(uint32_t *)entry->bp;
525 entry->port, (void *)(unsigned long)rxid);
801 emlxs_event_entry_t *entry;
841 entry = eventq->first;
842 while (entry && (events < max_events)) {
845 if (entry->id <= hba->hba_event.last_id) {
846 entry = entry->next;
850 /* Process this entry */
851 switch (entry->evt->mask) {
853 byte = (uint8_t *)entry->bp;
900 word = (uint32_t *)entry->bp;
945 hba->hba_event.last_id = entry->id;
946 entry = entry->next;
965 emlxs_event_entry_t *entry;
1040 entry = eventq->first;
1041 while (entry) {
1042 if ((entry->id > dfc_event->last_id) &&
1043 (entry->evt->mask == dfc_event->event)) {
1048 entry = entry->next;
1062 if (entry->bp && entry->size) {
1063 if (entry->size < size) {
1064 size = entry->size;
1067 bcopy((void *)entry->bp, dfc_event->dataout, size);
1070 entry->flag |= EMLXS_DFC_EVENT_DONE;
1075 dfc_event->last_id = entry->id;
1390 emlxs_event_entry_t *entry;
1462 entry = eventq->first;
1463 while (entry) {
1464 if ((entry->id > dfc_event->last_id) &&
1465 (entry->port == (void *)port) &&
1466 (entry->evt->mask == dfc_event->event)) {
1471 entry = entry->next;
1485 if (entry->bp && entry->size) {
1486 if (entry->size < size) {
1487 size = entry->size;
1490 bcopy((void *)entry->bp, dfc_event->dataout, size);
1493 entry->flag |= EMLXS_SD_EVENT_DONE;
1498 dfc_event->last_id = entry->id;