summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2016-12-07 11:13:36 +1100
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-12-20 15:04:07 +1100
commit4b06a4645e19830581505a675075773adc0857c2 (patch)
tree94d77cc95f94432277e401763c65d3d7cbcc37d8
parentea8bd5f424a9b01c71e1694bb5b6ffc13e3da4f5 (diff)
downloadtalos-petitboot-4b06a4645e19830581505a675075773adc0857c2.tar.gz
talos-petitboot-4b06a4645e19830581505a675075773adc0857c2.zip
types: shorten boot_status definitions
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@ozlabs.org> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
-rw-r--r--discover/boot.c33
-rw-r--r--discover/boot.h2
-rw-r--r--discover/device-handler.c30
-rw-r--r--discover/device-handler.h2
-rw-r--r--discover/discover-server.c4
-rw-r--r--discover/discover-server.h4
-rw-r--r--discover/pxe-parser.c4
-rw-r--r--lib/pb-protocol/pb-protocol.c10
-rw-r--r--lib/pb-protocol/pb-protocol.h6
-rw-r--r--lib/types/types.h8
-rw-r--r--test/parser/handler.c4
-rw-r--r--ui/common/discover-client.c6
-rw-r--r--ui/common/discover-client.h4
-rw-r--r--ui/ncurses/nc-cui.c4
-rw-r--r--ui/test/discover-test.c2
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");
OpenPOWER on IntegriCloud