diff options
Diffstat (limited to 'lib/pb-protocol/pb-protocol.c')
-rw-r--r-- | lib/pb-protocol/pb-protocol.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c index d5f8b2f..0252b9a 100644 --- a/lib/pb-protocol/pb-protocol.c +++ b/lib/pb-protocol/pb-protocol.c @@ -38,6 +38,25 @@ * 4-byte len, id */ +/* Deep copy a boot_option. +*/ +struct boot_option *boot_option_copy(void* ctx, const struct boot_option *opt) +{ + struct boot_option *new = talloc(ctx, struct boot_option); + + if (new) { + new->id = talloc_strdup(new, opt->id); + new->name = talloc_strdup(new, opt->name); + new->description = talloc_strdup(new, opt->description); + new->icon_file = talloc_strdup(new, opt->icon_file); + new->boot_image_file = talloc_strdup(new, opt->boot_image_file); + new->initrd_file = talloc_strdup(new, opt->initrd_file); + new->boot_args = talloc_strdup(new, opt->boot_args); + memset(&new->list, 0, sizeof(new->list)); + } + + return new; +} /* Write a string into the buffer, starting at pos. * |