X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=lib%2Fpb-protocol%2Fpb-protocol.c;h=dbbda406fe5a022c518c656c4b44e11b692010da;hp=ed61fe149b1bbac074dae847cb7d359a3417d3cd;hb=17d9d54a46beab44db751b9bcf7f289b9bf101cf;hpb=98b04aa42a4f1dc8e585f00d75c3b28d9e9aa2a9 diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c index ed61fe1..dbbda40 100644 --- a/lib/pb-protocol/pb-protocol.c +++ b/lib/pb-protocol/pb-protocol.c @@ -75,6 +75,8 @@ void pb_protocol_dump_device(const struct device *dev, const char *text, fprintf(stream, "%s\t\tdtb: %s\n", text, opt->dtb_file); fprintf(stream, "%s\t\targs: %s\n", text, opt->boot_args); fprintf(stream, "%s\t\tasig: %s\n", text, opt->args_sig_file); + fprintf(stream, "%s\t\ttype: %s\n", text, + opt->type == DISCOVER_BOOT_OPTION ? "boot" : "plugin"); } } @@ -201,7 +203,8 @@ int pb_protocol_boot_option_len(const struct boot_option *opt) 4 + optional_strlen(opt->dtb_file) + 4 + optional_strlen(opt->boot_args) + 4 + optional_strlen(opt->args_sig_file) + - sizeof(opt->is_default); + sizeof(opt->is_default) + + sizeof(opt->type); } int pb_protocol_boot_len(const struct boot_command *boot) @@ -397,6 +400,9 @@ int pb_protocol_serialise_boot_option(const struct boot_option *opt, *(bool *)pos = opt->is_default; pos += sizeof(bool); + *(uint32_t *)pos = __cpu_to_be32(opt->type); + pos += 4; + assert(pos <= buf + buf_len); (void)buf_len; @@ -825,6 +831,11 @@ int pb_protocol_deserialise_boot_option(struct boot_option *opt, if (len < sizeof(bool)) goto out; opt->is_default = *(bool *)(pos); + pos += sizeof(bool); + len -= sizeof(bool); + + if (read_u32(&pos, &len, &opt->type)) + return -1; rc = 0;