aboutsummaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2017-05-26 12:54:21 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-06-06 17:59:45 +1000
commit05dd64a57788a44df406a4553a75ee57c2b7cd82 (patch)
treebcc5d1ccbc64e63a0820df9f60d51c7f070e932e /external
parentb537752cf694dac00871ab66e1ee2b82b61786b1 (diff)
downloadskiboot-05dd64a57788a44df406a4553a75ee57c2b7cd82.zip
skiboot-05dd64a57788a44df406a4553a75ee57c2b7cd82.tar.gz
skiboot-05dd64a57788a44df406a4553a75ee57c2b7cd82.tar.bz2
opal-prd: split type-specific fields of control messages
We'd like to add other type-specific fields, so introduce a union to populate with these. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'external')
-rw-r--r--external/opal-prd/opal-prd.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/external/opal-prd/opal-prd.c b/external/opal-prd/opal-prd.c
index 93419e3..5e8f798 100644
--- a/external/opal-prd/opal-prd.c
+++ b/external/opal-prd/opal-prd.c
@@ -96,9 +96,14 @@ enum control_msg_type {
struct control_msg {
enum control_msg_type type;
int response;
- uint32_t argc;
- uint32_t data_len;
- uint8_t data[];
+ union {
+ struct {
+ unsigned int argc;
+ } run_cmd;
+ };
+ unsigned int data_len;
+ unsigned char data[];
+
};
#define MAX_CONTROL_MSG_BUF 4096
@@ -1339,7 +1344,7 @@ static void handle_prd_control_run_cmd(struct control_msg *send_msg,
return;
}
- argc = recv_msg->argc;
+ argc = recv_msg->run_cmd.argc;
pr_debug("CTRL: run_command, argc:%d\n", argc);
argv = malloc(argc * sizeof(*argv));
@@ -1895,7 +1900,7 @@ static int send_run_command(struct opal_prd_ctx *ctx, int argc, char *argv[])
/* Setup message */
send_msg->type = CONTROL_MSG_RUN_CMD;
- send_msg->argc = argc;
+ send_msg->run_cmd.argc = argc;
send_msg->data_len = size;
s = (char *)send_msg->data;
for (i = 0; i < argc; i++) {