Lines Matching full:event

143     EmulEvent *event = g_malloc(sizeof(EmulEvent) + len);  in emulated_apdu_from_guest()  local
145 assert(event); in emulated_apdu_from_guest()
146 event->p.data.type = EMUL_GUEST_APDU; in emulated_apdu_from_guest()
147 event->p.data.len = len; in emulated_apdu_from_guest()
148 memcpy(event->p.data.data, apdu, len); in emulated_apdu_from_guest()
150 QSIMPLEQ_INSERT_TAIL(&card->guest_apdu_list, event, entry); in emulated_apdu_from_guest()
165 static void emulated_push_event(EmulatedState *card, EmulEvent *event) in emulated_push_event() argument
168 QSIMPLEQ_INSERT_TAIL(&(card->event_list), event, entry); in emulated_push_event()
175 EmulEvent *event = g_new(EmulEvent, 1); in emulated_push_type() local
177 assert(event); in emulated_push_type()
178 event->p.gen.type = type; in emulated_push_type()
179 emulated_push_event(card, event); in emulated_push_type()
184 EmulEvent *event = g_new(EmulEvent, 1); in emulated_push_error() local
186 assert(event); in emulated_push_error()
187 event->p.error.type = EMUL_ERROR; in emulated_push_error()
188 event->p.error.code = code; in emulated_push_error()
189 emulated_push_event(card, event); in emulated_push_error()
195 EmulEvent *event = (EmulEvent *)g_malloc(sizeof(EmulEvent) + len); in emulated_push_data_type() local
197 assert(event); in emulated_push_data_type()
198 event->p.data.type = type; in emulated_push_data_type()
199 event->p.data.len = len; in emulated_push_data_type()
200 memcpy(event->p.data.data, data, len); in emulated_push_data_type()
201 emulated_push_event(card, event); in emulated_push_data_type()
238 EmulEvent *event; in handle_apdu_thread() local
250 event = QSIMPLEQ_FIRST(&card->guest_apdu_list); in handle_apdu_thread()
251 assert(event != NULL); in handle_apdu_thread()
253 if (event->p.data.type != EMUL_GUEST_APDU) { in handle_apdu_thread()
255 g_free(event); in handle_apdu_thread()
260 g_free(event); in handle_apdu_thread()
265 event->p.data.data, event->p.data.len, in handle_apdu_thread()
273 g_free(event); in handle_apdu_thread()
284 VEvent *event = NULL; in event_thread() local
290 event = vevent_wait_next_vevent(); in event_thread()
291 if (event == NULL || event->type == VEVENT_LAST) { in event_thread()
294 if (event->type != VEVENT_READER_INSERT) { in event_thread()
295 if (card->reader == NULL && event->reader != NULL) { in event_thread()
300 card->reader = vreader_reference(event->reader); in event_thread()
302 if (event->reader != card->reader) { in event_thread()
309 switch (event->type) { in event_thread()
315 reader_name = vreader_get_name(event->reader); in event_thread()
326 card->reader = vreader_reference(event->reader); in event_thread()
332 vreader_get_name(event->reader)); in event_thread()
343 vreader_power_on(event->reader, atr, &atr_len); in event_thread()
353 vevent_delete(event); in event_thread()
358 vevent_delete(event); in event_thread()
366 EmulEvent *event, *next; in card_event_handler() local
370 QSIMPLEQ_FOREACH_SAFE(event, &card->event_list, entry, next) { in card_event_handler()
371 DPRINTF(card, 2, "event %s\n", emul_event_to_string(event->p.gen.type)); in card_event_handler()
372 switch (event->p.gen.type) { in card_event_handler()
374 ccid_card_send_apdu_to_guest(&card->base, event->p.data.data, in card_event_handler()
375 event->p.data.len); in card_event_handler()
384 assert(event->p.data.len <= MAX_ATR_SIZE); in card_event_handler()
385 card->atr_length = event->p.data.len; in card_event_handler()
386 memcpy(card->atr, event->p.data.data, card->atr_length); in card_event_handler()
393 ccid_card_card_error(&card->base, event->p.error.code); in card_event_handler()
396 DPRINTF(card, 2, "unexpected event\n"); in card_event_handler()
399 g_free(event); in card_event_handler()
407 error_setg(errp, "ccid-card-emul: event notifier creation failed"); in init_event_notifier()
549 qemu_thread_create(&card->event_thread_id, "ccid/event", event_thread, in emulated_realize()