[PATCH 01/29] types: shorten boot_status definitions

Samuel Mendoza-Jonas sam at mendozajonas.com
Mon Dec 19 15:18:47 AEDT 2016


From: Jeremy Kerr <jk at ozlabs.org>

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 <jk at ozlabs.org>
Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 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");
-- 
2.10.2



More information about the Petitboot mailing list