Lines Matching defs:event_cb
471 struct dev_event_callback *event_cb;
482 TAILQ_FOREACH(event_cb, &dev_event_cbs, next) {
483 if (event_cb->cb_fn == cb_fn && event_cb->cb_arg == cb_arg) {
484 if (device_name == NULL && event_cb->dev_name == NULL)
486 if (device_name == NULL || event_cb->dev_name == NULL)
488 if (!strcmp(event_cb->dev_name, device_name))
494 if (event_cb == NULL) {
495 event_cb = malloc(sizeof(struct dev_event_callback));
496 if (event_cb != NULL) {
497 event_cb->cb_fn = cb_fn;
498 event_cb->cb_arg = cb_arg;
499 event_cb->active = 0;
501 event_cb->dev_name = NULL;
503 event_cb->dev_name = strdup(device_name);
504 if (event_cb->dev_name == NULL) {
509 TAILQ_INSERT_TAIL(&dev_event_cbs, event_cb, next);
521 event_cb = NULL;
529 free(event_cb);
540 struct dev_event_callback *event_cb, *next;
547 for (event_cb = TAILQ_FIRST(&dev_event_cbs); event_cb != NULL;
548 event_cb = next) {
550 next = TAILQ_NEXT(event_cb, next);
552 if (device_name != NULL && event_cb->dev_name != NULL) {
553 if (strcmp(event_cb->dev_name, device_name))
560 if (event_cb->cb_fn != cb_fn ||
561 (cb_arg != (void *)-1 && event_cb->cb_arg != cb_arg))
568 if (event_cb->active == 0) {
569 TAILQ_REMOVE(&dev_event_cbs, event_cb, next);
570 free(event_cb->dev_name);
571 free(event_cb);