X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fuser-event.c;h=013357b49bff6340f671af561d0cb25ec12a18fc;hp=afc4c437e8a7809f685a1a03a3e2bb5af31d6819;hb=38d7d1a97d46aacf67675038c927e579bb589310;hpb=fbb2f7a20e5ac7b6d9f578fdb3538fad4310c472 diff --git a/discover/user-event.c b/discover/user-event.c index afc4c43..013357b 100644 --- a/discover/user-event.c +++ b/discover/user-event.c @@ -42,22 +42,32 @@ struct user_event { int socket; }; +static const char *event_action_name(enum event_action action) +{ + switch (action) { + case EVENT_ACTION_ADD: + return "add"; + case EVENT_ACTION_REMOVE: + return "remove"; + case EVENT_ACTION_CONF: + return "conf"; + default: + break; + } + + return "unknown"; +} + static void user_event_print_event(struct event __attribute__((unused)) *event) { - const char *action, *params[] = { - "name", "image", "args", - NULL, - }; int i; - action = event->action == EVENT_ACTION_ADD ? "add" : "remove"; - - pb_log("user_event %s event:\n", action); + pb_log("user_event %s event:\n", event_action_name(event->action)); pb_log("\tdevice: %s\n", event->device); - for (i = 0; params[i]; i++) + for (i = 0; i < event->n_params; i++) pb_log("\t%-12s => %s\n", - params[i], event_get_param(event, params[i])); + event->params[i].name, event->params[i].value); } static void user_event_handle_message(struct user_event *uev, char *buf, @@ -118,7 +128,8 @@ static int user_event_destructor(void *arg) return 0; } -struct user_event *user_event_init(struct device_handler *handler) +struct user_event *user_event_init(struct waitset *waitset, + struct device_handler *handler) { struct sockaddr_un addr; struct user_event *uev; @@ -147,7 +158,8 @@ struct user_event *user_event_init(struct device_handler *handler) strerror(errno)); } - waiter_register(uev->socket, WAIT_IN, user_event_process, uev); + waiter_register_io(waitset, uev->socket, WAIT_IN, + user_event_process, uev); pb_log("%s: waiting on %s\n", __func__, PBOOT_USER_EVENT_SOCKET);