From patchwork Mon Dec 19 04:18:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Mendoza-Jonas X-Patchwork-Id: 706910 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3thnkY3zTCz9t1Q for ; Mon, 19 Dec 2016 15:19:49 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=mendozajonas.com header.i=@mendozajonas.com header.b="k+UUpc8t"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3thnkX70frzDwHX for ; Mon, 19 Dec 2016 15:19:48 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=mendozajonas.com header.i=@mendozajonas.com header.b="k+UUpc8t"; dkim-atps=neutral X-Original-To: petitboot@lists.ozlabs.org Delivered-To: petitboot@lists.ozlabs.org Received: from mendozajonas.com (mendozajonas.com [188.166.185.233]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3thnkH4FYlzDw5h for ; Mon, 19 Dec 2016 15:19:35 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=mendozajonas.com header.i=@mendozajonas.com header.b="k+UUpc8t"; dkim-atps=neutral Received: from skellige.ozlabs.ibm.com (unknown [122.99.82.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: sam@mendozajonas.com) by mendozajonas.com (Postfix) with ESMTPSA id 1A7DE143FAE; Mon, 19 Dec 2016 12:19:29 +0800 (SGT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mendozajonas.com; s=mail; t=1482121171; bh=RPjKr+qs2aXugfCI7ZKaAIJMpYZMDV/LBY6I0MRNuts=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k+UUpc8t0aSERcfT1/T103U9lmAqqJp5iK+ZsI8z27Dr66YVkxrvxQLNbhwCCnyCy E2eLkyGeMX5xv3eWFuKduTwIx8ZrcpBAWtFX4NSpatUPbbC90Ifaqtu+0D7dE8tj1K bvUx80erpggOSLcWeRvCGx9WllCnA0OrP/RPEiUc= From: Samuel Mendoza-Jonas To: petitboot@lists.ozlabs.org Subject: [PATCH 01/29] types: shorten boot_status definitions Date: Mon, 19 Dec 2016 15:18:47 +1100 Message-Id: <20161219041915.30497-2-sam@mendozajonas.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161219041915.30497-1-sam@mendozajonas.com> References: <20161219041915.30497-1-sam@mendozajonas.com> X-BeenThere: petitboot@lists.ozlabs.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Petitboot bootloader development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Samuel Mendoza-Jonas MIME-Version: 1.0 Errors-To: petitboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Petitboot" From: Jeremy Kerr struct boot_status is a bit misnamed; we report status on things that aren't just the boot status (eg, discovery). This change refactors struct boot_status into just struct status. We give the type enum a name, and shorten the enum values to suit. Signed-off-by: Jeremy Kerr Signed-off-by: Samuel Mendoza-Jonas --- discover/boot.c | 33 +++++++++++++++------------------ discover/boot.h | 2 +- discover/device-handler.c | 30 +++++++++++++++--------------- discover/device-handler.h | 2 +- discover/discover-server.c | 4 ++-- discover/discover-server.h | 4 ++-- discover/pxe-parser.c | 4 ++-- lib/pb-protocol/pb-protocol.c | 10 +++++----- lib/pb-protocol/pb-protocol.h | 6 +++--- lib/types/types.h | 8 ++++---- test/parser/handler.c | 4 ++-- ui/common/discover-client.c | 6 +++--- ui/common/discover-client.h | 4 ++-- ui/ncurses/nc-cui.c | 4 ++-- ui/test/discover-test.c | 2 +- 15 files changed, 60 insertions(+), 63 deletions(-) diff --git a/discover/boot.c b/discover/boot.c index dc6da7d..70e9d41 100644 --- a/discover/boot.c +++ b/discover/boot.c @@ -146,7 +146,7 @@ static int kexec_reboot(struct boot_task *task) static void __attribute__((format(__printf__, 4, 5))) update_status( boot_status_fn fn, void *arg, int type, char *fmt, ...) { - struct boot_status status; + struct status status; va_list ap; va_start(ap, fmt); @@ -252,7 +252,7 @@ static void run_boot_hooks(struct boot_task *task) if (n < 1) return; - update_status(task->status_fn, task->status_arg, BOOT_STATUS_INFO, + update_status(task->status_fn, task->status_arg, STATUS_INFO, _("running boot hooks")); boot_hook_setenv(task); @@ -315,7 +315,7 @@ static int check_load(struct boot_task *task, const char *name, return 0; update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, + STATUS_ERROR, _("Couldn't load %s"), name); return -1; } @@ -443,28 +443,27 @@ static void boot_process(struct load_url_result *result, void *data) run_boot_hooks(task); - update_status(task->status_fn, task->status_arg, BOOT_STATUS_INFO, + update_status(task->status_fn, task->status_arg, STATUS_INFO, _("performing kexec_load")); rc = kexec_load(task); if (rc == KEXEC_LOAD_DECRYPTION_FALURE) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, _("decryption failed")); + STATUS_ERROR, _("decryption failed")); } else if (rc == KEXEC_LOAD_SIGNATURE_FAILURE) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, + STATUS_ERROR, _("signature verification failed")); } else if (rc == KEXEC_LOAD_SIG_SETUP_INVALID) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, + STATUS_ERROR, _("invalid signature configuration")); } else if (rc) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, - _("kexec load failed")); + STATUS_ERROR, _("kexec load failed")); } no_sig_load: @@ -482,13 +481,12 @@ no_load: if (!rc) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_INFO, - _("performing kexec reboot")); + STATUS_INFO, _("performing kexec reboot")); rc = kexec_reboot(task); if (rc) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, + STATUS_ERROR, _("kexec reboot failed")); } } @@ -503,8 +501,7 @@ static int start_url_load(struct boot_task *task, const char *name, *result = load_url_async(task, url, boot_process, task); if (!*result) { update_status(task->status_fn, task->status_arg, - BOOT_STATUS_ERROR, - _("Error loading %s"), name); + STATUS_ERROR, _("Error loading %s"), name); return -1; } return 0; @@ -530,7 +527,7 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, else boot_desc = _("(unknown)"); - update_status(status_fn, status_arg, BOOT_STATUS_INFO, + update_status(status_fn, status_arg, STATUS_INFO, _("Booting %s."), boot_desc); if (cmd && cmd->boot_image_file) { @@ -539,7 +536,7 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, image = opt->boot_image->url; } else { pb_log("%s: no image specified\n", __func__); - update_status(status_fn, status_arg, BOOT_STATUS_INFO, + update_status(status_fn, status_arg, STATUS_INFO, _("Boot failed: no image specified")); return NULL; } @@ -587,7 +584,7 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, } else { pb_log("%s: no command line signature file" " specified\n", __func__); - update_status(status_fn, status_arg, BOOT_STATUS_INFO, + update_status(status_fn, status_arg, STATUS_INFO, _("Boot failed: no command line" " signature file specified")); talloc_free(boot_task); @@ -643,7 +640,7 @@ void boot_cancel(struct boot_task *task) { task->cancelled = true; - update_status(task->status_fn, task->status_arg, BOOT_STATUS_INFO, + update_status(task->status_fn, task->status_arg, STATUS_INFO, _("Boot cancelled")); cleanup_cancellations(task, NULL); diff --git a/discover/boot.h b/discover/boot.h index 0f27341..69643bf 100644 --- a/discover/boot.h +++ b/discover/boot.h @@ -7,7 +7,7 @@ struct boot_option; struct boot_command; -typedef void (*boot_status_fn)(void *arg, struct boot_status *); +typedef void (*boot_status_fn)(void *arg, struct status *); struct boot_task *boot(void *ctx, struct discover_boot_option *opt, struct boot_command *cmd, int dry_run, diff --git a/discover/device-handler.c b/discover/device-handler.c index 70e4506..20df8d1 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -410,7 +410,7 @@ void device_handler_remove(struct device_handler *handler, talloc_free(device); } -void device_handler_boot_status(void *arg, struct boot_status *status) +void device_handler_boot_status(void *arg, struct status *status) { struct device_handler *handler = arg; @@ -420,9 +420,9 @@ void device_handler_boot_status(void *arg, struct boot_status *status) static void countdown_status(struct device_handler *handler, struct discover_boot_option *opt, unsigned int sec) { - struct boot_status status; + struct status status; - status.type = BOOT_STATUS_INFO; + status.type = STATUS_INFO; status.progress = -1; status.detail = NULL; status.message = talloc_asprintf(handler, @@ -836,11 +836,11 @@ int device_handler_discover(struct device_handler *handler, struct discover_device *dev) { struct discover_context *ctx; - struct boot_status *status; + struct status *status; int rc; - status = talloc_zero(handler, struct boot_status); - status->type = BOOT_STATUS_INFO; + status = talloc_zero(handler, struct status); + status->type = STATUS_INFO; /* * TRANSLATORS: this string will be passed the type and identifier * of the device. For example, the first parameter could be "Disk", @@ -891,10 +891,10 @@ int device_handler_dhcp(struct device_handler *handler, struct discover_device *dev, struct event *event) { struct discover_context *ctx; - struct boot_status *status; + struct status *status; - status = talloc_zero(handler, struct boot_status); - status->type = BOOT_STATUS_INFO; + status = talloc_zero(handler, struct status); + status->type = STATUS_INFO; /* * TRANSLATORS: this format specifier will be the name of a network * device, like 'eth0'. @@ -963,7 +963,7 @@ void device_handler_boot(struct device_handler *handler, void device_handler_cancel_default(struct device_handler *handler) { - struct boot_status status; + struct status status; if (handler->timeout_waiter) waiter_remove(handler->timeout_waiter); @@ -985,7 +985,7 @@ void device_handler_cancel_default(struct device_handler *handler) handler->default_boot_option = NULL; - status.type = BOOT_STATUS_INFO; + status.type = STATUS_INFO; status.progress = -1; status.detail = NULL; status.message = _("Default boot cancelled"); @@ -1082,14 +1082,14 @@ void device_handler_process_url(struct device_handler *handler, { struct discover_context *ctx; struct discover_device *dev; - struct boot_status *status; + struct status *status; struct pb_url *pb_url; struct event *event; struct param *param; - status = talloc(handler, struct boot_status); + status = talloc(handler, struct status); - status->type = BOOT_STATUS_ERROR; + status->type = STATUS_ERROR; status->progress = 0; status->detail = talloc_asprintf(status, _("Received config URL %s"), url); @@ -1156,7 +1156,7 @@ void device_handler_process_url(struct device_handler *handler, talloc_unlink(handler, ctx); - status->type = BOOT_STATUS_INFO; + status->type = STATUS_INFO; status->message = talloc_asprintf(status, _("Config file %s parsed"), pb_url->file); msg: diff --git a/discover/device-handler.h b/discover/device-handler.h index d2e3baf..c6f3ad1 100644 --- a/discover/device-handler.h +++ b/discover/device-handler.h @@ -96,7 +96,7 @@ int device_handler_dhcp(struct device_handler *handler, void device_handler_remove(struct device_handler *handler, struct discover_device *device); -void device_handler_boot_status(void *arg, struct boot_status *status); +void device_handler_boot_status(void *arg, struct status *status); struct discover_context *device_handler_discover_context_create( struct device_handler *handler, diff --git a/discover/discover-server.c b/discover/discover-server.c index 5f6f4d5..ad184f6 100644 --- a/discover/discover-server.c +++ b/discover/discover-server.c @@ -157,7 +157,7 @@ static int write_device_remove_message(struct discover_server *server, } static int write_boot_status_message(struct discover_server *server, - struct client *client, const struct boot_status *status) + struct client *client, const struct status *status) { struct pb_protocol_message *message; int len; @@ -366,7 +366,7 @@ void discover_server_notify_device_remove(struct discover_server *server, } void discover_server_notify_boot_status(struct discover_server *server, - struct boot_status *status) + struct status *status) { struct client *client; diff --git a/discover/discover-server.h b/discover/discover-server.h index 97f53b9..97d07e6 100644 --- a/discover/discover-server.h +++ b/discover/discover-server.h @@ -6,7 +6,7 @@ struct discover_server; struct device_handler; struct boot_option; -struct boot_status; +struct status; struct system_info; struct device; struct config; @@ -25,7 +25,7 @@ void discover_server_notify_boot_option_add(struct discover_server *server, void discover_server_notify_device_remove(struct discover_server *server, struct device *device); void discover_server_notify_boot_status(struct discover_server *server, - struct boot_status *status); + struct status *status); void discover_server_notify_system_info(struct discover_server *server, const struct system_info *sysinfo); void discover_server_notify_config(struct discover_server *server, diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c index 4352036..221fc30 100644 --- a/discover/pxe-parser.c +++ b/discover/pxe-parser.c @@ -241,7 +241,7 @@ static void pxe_conf_parse_cb(struct load_url_result *result, void *data) { struct conf_context *conf = data; struct device_handler *handler; - struct boot_status status = {0}; + struct status status = {0}; struct pxe_parser_info *info; char *buf = NULL; int len, rc = 0; @@ -279,7 +279,7 @@ static void pxe_conf_parse_cb(struct load_url_result *result, void *data) handler = talloc_parent(conf); device_handler_discover_context_commit(handler, conf->dc); - status.type = BOOT_STATUS_INFO; + status.type = STATUS_INFO; /* * TRANSLATORS: the format specifier in this string in an IP address, * eg. 192.168.1.1 diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c index 64bd161..1e72d19 100644 --- a/lib/pb-protocol/pb-protocol.c +++ b/lib/pb-protocol/pb-protocol.c @@ -215,7 +215,7 @@ int pb_protocol_boot_len(const struct boot_command *boot) 4 + optional_strlen(boot->console); } -int pb_protocol_boot_status_len(const struct boot_status *status) +int pb_protocol_boot_status_len(const struct status *status) { return 4 + 4 + optional_strlen(status->message) + @@ -401,7 +401,7 @@ int pb_protocol_serialise_boot_command(const struct boot_command *boot, return 0; } -int pb_protocol_serialise_boot_status(const struct boot_status *status, +int pb_protocol_serialise_boot_status(const struct status *status, char *buf, int buf_len) { char *pos = buf; @@ -821,7 +821,7 @@ out: return rc; } -int pb_protocol_deserialise_boot_status(struct boot_status *status, +int pb_protocol_deserialise_boot_status(struct status *status, const struct pb_protocol_message *message) { unsigned int len; @@ -838,8 +838,8 @@ int pb_protocol_deserialise_boot_status(struct boot_status *status, status->type = __be32_to_cpu(*(uint32_t *)(pos)); switch (status->type) { - case BOOT_STATUS_ERROR: - case BOOT_STATUS_INFO: + case STATUS_ERROR: + case STATUS_INFO: break; default: goto out; diff --git a/lib/pb-protocol/pb-protocol.h b/lib/pb-protocol/pb-protocol.h index f850520..a8cd206 100644 --- a/lib/pb-protocol/pb-protocol.h +++ b/lib/pb-protocol/pb-protocol.h @@ -36,7 +36,7 @@ void pb_protocol_dump_device(const struct device *dev, const char *text, int pb_protocol_device_len(const struct device *dev); int pb_protocol_boot_option_len(const struct boot_option *opt); int pb_protocol_boot_len(const struct boot_command *boot); -int pb_protocol_boot_status_len(const struct boot_status *status); +int pb_protocol_boot_status_len(const struct status *status); int pb_protocol_system_info_len(const struct system_info *sysinfo); int pb_protocol_config_len(const struct config *config); int pb_protocol_url_len(const char *url); @@ -55,7 +55,7 @@ int pb_protocol_serialise_boot_option(const struct boot_option *opt, char *buf, int buf_len); int pb_protocol_serialise_boot_command(const struct boot_command *boot, char *buf, int buf_len); -int pb_protocol_serialise_boot_status(const struct boot_status *status, +int pb_protocol_serialise_boot_status(const struct status *status, char *buf, int buf_len); int pb_protocol_serialise_system_info(const struct system_info *sysinfo, char *buf, int buf_len); @@ -79,7 +79,7 @@ int pb_protocol_deserialise_boot_option(struct boot_option *opt, int pb_protocol_deserialise_boot_command(struct boot_command *cmd, const struct pb_protocol_message *message); -int pb_protocol_deserialise_boot_status(struct boot_status *status, +int pb_protocol_deserialise_boot_status(struct status *status, const struct pb_protocol_message *message); int pb_protocol_deserialise_system_info(struct system_info *sysinfo, diff --git a/lib/types/types.h b/lib/types/types.h index d660d6b..b22c0b0 100644 --- a/lib/types/types.h +++ b/lib/types/types.h @@ -70,10 +70,10 @@ struct boot_command { char *console; }; -struct boot_status { - enum { - BOOT_STATUS_INFO, - BOOT_STATUS_ERROR, +struct status { + enum status_type { + STATUS_INFO, + STATUS_ERROR, } type; char *message; char *detail; diff --git a/test/parser/handler.c b/test/parser/handler.c index bfb6108..43e9d71 100644 --- a/test/parser/handler.c +++ b/test/parser/handler.c @@ -8,7 +8,7 @@ struct network; -typedef void (*boot_status_fn)(void *arg, struct boot_status *); +typedef void (*boot_status_fn)(void *arg, struct status *); void discover_server_notify_device_add(struct discover_server *server, struct device *device) @@ -32,7 +32,7 @@ void discover_server_notify_device_remove(struct discover_server *server, } void discover_server_notify_boot_status(struct discover_server *server, - struct boot_status *status) + struct status *status) { (void)server; (void)status; diff --git a/ui/common/discover-client.c b/ui/common/discover-client.c index 27bba32..dce74f9 100644 --- a/ui/common/discover-client.c +++ b/ui/common/discover-client.c @@ -131,7 +131,7 @@ void discover_client_enumerate(struct discover_client *client) } static void update_status(struct discover_client *client, - struct boot_status *status) + struct status *status) { if (client->ops.update_status) client->ops.update_status(status, client->ops.cb_arg); @@ -156,8 +156,8 @@ static int discover_client_process(void *arg) struct discover_client *client = arg; struct pb_protocol_message *message; struct system_info *sysinfo; - struct boot_status *status; struct boot_option *opt; + struct status *status; struct config *config; struct device *dev; char *dev_id; @@ -206,7 +206,7 @@ static int discover_client_process(void *arg) device_remove(client, dev_id); break; case PB_PROTOCOL_ACTION_STATUS: - status = talloc_zero(ctx, struct boot_status); + status = talloc_zero(ctx, struct status); rc = pb_protocol_deserialise_boot_status(status, message); if (rc) { diff --git a/ui/common/discover-client.h b/ui/common/discover-client.h index 59d2df9..95a5d9e 100644 --- a/ui/common/discover-client.h +++ b/ui/common/discover-client.h @@ -24,7 +24,7 @@ struct pb_boot_data { * devices' boot options), so callbacks may store boot options and devices * as long as the client remains allocated. * - * The boot_status and system_info structs are allocated by the client, + * The status and system_info structs are allocated by the client, * and will be free()ed after the callback is invoked. If the callback * stores these structures for usage beyond the duration of the callback, * it must talloc_steal() them. @@ -35,7 +35,7 @@ struct discover_client_ops { int (*boot_option_add)(struct device *dev, struct boot_option *option, void *arg); void (*device_remove)(struct device *device, void *arg); - void (*update_status)(struct boot_status *status, void *arg); + void (*update_status)(struct status *status, void *arg); void (*update_sysinfo)(struct system_info *sysinfo, void *arg); void (*update_config)(struct config *sysinfo, void *arg); void *cb_arg; diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c index 304371c..a6537cb 100644 --- a/ui/ncurses/nc-cui.c +++ b/ui/ncurses/nc-cui.c @@ -694,13 +694,13 @@ static void cui_device_remove(struct device *dev, void *arg) nc_scr_post(cui->current); } -static void cui_update_status(struct boot_status *status, void *arg) +static void cui_update_status(struct status *status, void *arg) { struct cui *cui = cui_from_arg(arg); nc_scr_status_printf(cui->current, "%s: %s", - status->type == BOOT_STATUS_ERROR ? + status->type == STATUS_ERROR ? _("Error") : _("Info"), status->message); diff --git a/ui/test/discover-test.c b/ui/test/discover-test.c index b099b59..ea76764 100644 --- a/ui/test/discover-test.c +++ b/ui/test/discover-test.c @@ -75,7 +75,7 @@ static void print_device_remove(struct device *device, printf("\tname: %s\n", device->name); } -static void print_status(struct boot_status *status, +static void print_status(struct status *status, void __attribute__((unused)) *arg) { printf("status:\n");