diff options
author | Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> | 2014-07-24 15:05:37 +1000 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2014-07-28 16:03:39 +0800 |
commit | e79f9f88f59ad3b8a9cf85a37b6c64095b2af0c3 (patch) | |
tree | 06f8d682bfdabc670801e9d405616ede6313646c /lib/pb-protocol | |
parent | e1f6ffb9ca9e35738385a3524ba46896a0b519e6 (diff) | |
download | petitboot-e79f9f88f59ad3b8a9cf85a37b6c64095b2af0c3.zip petitboot-e79f9f88f59ad3b8a9cf85a37b6c64095b2af0c3.tar.gz |
lib/pb-protocol: Define new 'add-url' action
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'lib/pb-protocol')
-rw-r--r-- | lib/pb-protocol/pb-protocol.c | 18 | ||||
-rw-r--r-- | lib/pb-protocol/pb-protocol.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c index c184719..866673d 100644 --- a/lib/pb-protocol/pb-protocol.c +++ b/lib/pb-protocol/pb-protocol.c @@ -289,6 +289,12 @@ int pb_protocol_config_len(const struct config *config) return len; } +int pb_protocol_url_len(const char *url) +{ + /* url + length field */ + return 4 + optional_strlen(url); +} + int pb_protocol_serialise_device(const struct device *dev, char *buf, int buf_len) { @@ -490,6 +496,18 @@ int pb_protocol_serialise_config(const struct config *config, return 0; } +int pb_protocol_serialise_url(const char *url, char *buf, int buf_len) +{ + char *pos = buf; + + pos += pb_protocol_serialise_string(pos, url); + + assert(pos <=buf+buf_len); + (void)buf_len; + + return 0; +} + int pb_protocol_write_message(int fd, struct pb_protocol_message *message) { int total_len, rc; diff --git a/lib/pb-protocol/pb-protocol.h b/lib/pb-protocol/pb-protocol.h index d6f149c..f850520 100644 --- a/lib/pb-protocol/pb-protocol.h +++ b/lib/pb-protocol/pb-protocol.h @@ -22,6 +22,7 @@ enum pb_protocol_action { PB_PROTOCOL_ACTION_SYSTEM_INFO = 0x8, PB_PROTOCOL_ACTION_CONFIG = 0x9, PB_PROTOCOL_ACTION_REINIT = 0xa, + PB_PROTOCOL_ACTION_ADD_URL = 0xb, }; struct pb_protocol_message { @@ -38,6 +39,7 @@ int pb_protocol_boot_len(const struct boot_command *boot); int pb_protocol_boot_status_len(const struct boot_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); int pb_protocol_device_cmp(const struct device *a, const struct device *b); int pb_protocol_boot_option_cmp(const struct boot_option *a, @@ -59,6 +61,7 @@ int pb_protocol_serialise_system_info(const struct system_info *sysinfo, char *buf, int buf_len); int pb_protocol_serialise_config(const struct config *config, char *buf, int buf_len); +int pb_protocol_serialise_url(const char *url, char *buf, int buf_len); int pb_protocol_write_message(int fd, struct pb_protocol_message *message); |