[PATCH V2 2/4] lib/pb-protocol: Define new 'add-url' action

Samuel Mendoza-Jonas sam.mj at au1.ibm.com
Thu Jul 24 15:05:37 EST 2014


Signed-off-by: Samuel Mendoza-Jonas <sam.mj at au1.ibm.com>
---
 lib/pb-protocol/pb-protocol.c | 18 ++++++++++++++++++
 lib/pb-protocol/pb-protocol.h |  3 +++
 2 files changed, 21 insertions(+)

diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c
index 67e1f9e..6d81de1 100644
--- a/lib/pb-protocol/pb-protocol.c
+++ b/lib/pb-protocol/pb-protocol.c
@@ -286,6 +286,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)
 {
@@ -482,6 +488,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);
 
-- 
1.9.3



More information about the Petitboot mailing list