#define _PB_PROTOCOL_H
#include <stdint.h>
+#include <stdio.h>
#include <list/list.h>
+#include <types/types.h>
#define PB_SOCKET_PATH "/tmp/petitboot.ui"
-#define PB_PROTOCOL_MAX_PAYLOAD_SIZE 4096
+#define PB_PROTOCOL_MAX_PAYLOAD_SIZE (64 * 1024)
enum pb_protocol_action {
PB_PROTOCOL_ACTION_ADD = 0x1,
PB_PROTOCOL_ACTION_REMOVE = 0x2,
+ PB_PROTOCOL_ACTION_BOOT = 0x3,
};
struct pb_protocol_message {
char payload[];
};
-struct device {
- char *id;
- char *name;
- char *description;
- char *icon_file;
-
- struct list boot_options;
-};
-
-struct boot_option {
- char *id;
- char *name;
- char *description;
- char *icon_file;
- char *boot_image_file;
- char *initrd_file;
- char *boot_args;
-
- struct list_item list;
-};
-
-struct boot_option *boot_option_copy(void* ctx, const struct boot_option *opt);
-
+void pb_protocol_dump_device(const struct device *dev, const char *text,
+ FILE *stream);
int pb_protocol_device_len(const struct device *dev);
+int pb_protocol_device_cmp(const struct device *a, const struct device *b);
+
+int pb_protocol_boot_option_cmp(const struct boot_option *a,
+ const struct boot_option *b);
int pb_protocol_serialise_string(char *pos, const char *str);
char *pb_protocol_deserialise_string(void *ctx,