X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Ftwin%2Fpbt-client.c;h=cffb5ded1bf1d0bb1b69622144e82ef849518d6b;hp=09d8e99c2518e5d138b3e3781b76ab7688d02afb;hb=c4be9490a5d94b662370576157b6e0ed73f2fe77;hpb=bd06734362bb727b09b943688d9b69aa0a84590d diff --git a/ui/twin/pbt-client.c b/ui/twin/pbt-client.c index 09d8e99..cffb5de 100644 --- a/ui/twin/pbt-client.c +++ b/ui/twin/pbt-client.c @@ -19,7 +19,6 @@ #include "config.h" #endif -#define _GNU_SOURCE #include #include @@ -30,6 +29,7 @@ #include "log/log.h" #include "talloc/talloc.h" #include "waiter/waiter.h" +#include "process/process.h" #include "ui/common/discover-client.h" static struct pb_opt_data *pbt_opt_data_from_item(struct pbt_item *item) @@ -57,7 +57,7 @@ static int pbt_client_boot(struct pbt_item *item) int result; struct pb_opt_data *opt_data = pbt_opt_data_from_item(item); - pb_log("%s: %s\n", __func__, pbt_item_name(item)); + pb_debug("%s: %s\n", __func__, pbt_item_name(item)); pbt_frame_status_printf(&item->pbt_client->frame, "Booting %s...", pbt_item_name(item)); @@ -66,7 +66,7 @@ static int pbt_client_boot(struct pbt_item *item) NULL, opt_data->opt, opt_data->bd); if (result) { - pb_log("%s: failed: %s\n", __func__, opt_data->bd->image); + pb_log_fn("failed: %s\n", opt_data->bd->image); pbt_frame_status_printf(&item->pbt_client->frame, "Failed: kexec %s", opt_data->bd->image); } @@ -87,7 +87,7 @@ static int pbt_device_add(struct device *dev, struct pbt_client *client) struct pbt_quad q; const char *icon_file; - pb_log("%s: %p %s: n_options %d\n", __func__, dev, dev->id, + pb_debug("%s: %p %s: n_options %d\n", __func__, dev, dev->id, dev->n_options); pb_protocol_dump_device(dev, "", pb_log_get_stream()); @@ -147,6 +147,8 @@ static int pbt_boot_option_add(struct device *dev, struct boot_option *opt, opt->boot_image_file); opt_data->bd->initrd = talloc_strdup(opt_data->bd, opt->initrd_file); + opt_data->bd->dtb = talloc_strdup(opt_data->bd, + opt->dtb_file); opt_data->bd->args = talloc_strdup(opt_data->bd, opt->boot_args); opt_data->opt = opt; @@ -178,7 +180,7 @@ static void pbt_device_remove(struct device *dev, struct pbt_client *client) struct pbt_item *next_item; struct pbt_item *i; - pb_log("%s: %p %s: n_options %d\n", __func__, dev, dev->id, + pb_debug("%s: %p %s: n_options %d\n", __func__, dev, dev->id, dev->n_options); pb_protocol_dump_device(dev, "", pb_log_get_stream()); @@ -192,7 +194,7 @@ static void pbt_device_remove(struct device *dev, struct pbt_client *client) } if (!removed_item) { - pb_log("%s: %p %s: unknown device\n", __func__, dev, dev->id); + pb_log_fn("%p %s: unknown device\n", dev, dev->id); assert(0 && "unknown device"); return; } @@ -242,7 +244,7 @@ static struct discover_client_ops pbt_client_ops = { static void pbt_client_destructor(struct pbt_client *client) { - pb_log("%s\n", __func__); + pb_debug("%s\n", __func__); // move to screen twin_x11_destroy(twin_ctx); talloc_free(client->discover_client); @@ -250,7 +252,7 @@ static void pbt_client_destructor(struct pbt_client *client) } struct pbt_client *pbt_client_init(enum pbt_twin_backend backend, - unsigned int width, unsigned int height, int start_deamon) + unsigned int width, unsigned int height, int start_daemon) { struct pbt_client *pbt_client; unsigned int i; @@ -258,7 +260,7 @@ struct pbt_client *pbt_client_init(enum pbt_twin_backend backend, pbt_client = talloc_zero(NULL, struct pbt_client); if (!pbt_client) { - pb_log("%s: alloc pbt_client failed.\n", __func__); + pb_log_fn("alloc pbt_client failed.\n"); fprintf(stderr, "%s: alloc pbt_client failed.\n", __func__); goto fail_alloc; } @@ -267,6 +269,8 @@ struct pbt_client *pbt_client_init(enum pbt_twin_backend backend, pbt_client->waitset = waitset_create(pbt_client); + process_init(pbt_client, pbt_client->waitset, false); + pbt_client->sig = "pbt_client"; pbt_client->frame.scr = pbt_scr_init(pbt_client, pbt_client->waitset, backend, width, height, NULL, NULL); @@ -278,27 +282,27 @@ struct pbt_client *pbt_client_init(enum pbt_twin_backend backend, /* Loop here for scripts that just started the server. */ retry_start: - for (i = start_deamon ? 2 : 10; i; i--) { + for (i = start_daemon ? 2 : 10; i; i--) { pbt_client->discover_client = discover_client_init(pbt_client->waitset, &pbt_client_ops, pbt_client); if (pbt_client->discover_client || !i) break; - pb_log("%s: waiting for server %d\n", __func__, i); + pb_log_fn("waiting for server %d\n", i); sleep(1); } - if (!pbt_client->discover_client && start_deamon) { + if (!pbt_client->discover_client && start_daemon) { int result; - start_deamon = 0; + start_daemon = 0; - result = pb_start_daemon(); + result = pb_start_daemon(pbt_client); if (!result) goto retry_start; - pb_log("%s: discover_client_init failed.\n", __func__); + pb_log_fn("discover_client_init failed.\n"); fprintf(stderr, "%s: error: discover_client_init failed.\n", __func__); fprintf(stderr, "could not start pb-discover, the petitboot " @@ -307,7 +311,7 @@ retry_start: } if (!pbt_client->discover_client) { - pb_log("%s: discover_client_init failed.\n", __func__); + pb_log_fn("discover_client_init failed.\n"); fprintf(stderr, "%s: error: discover_client_init failed.\n", __func__); fprintf(stderr, "check that pb-discover, "