discover: Recognise and open LUKS encrypted partitions
[petitboot] / discover / boot.h
index 21904950c0cb74f077919210876fcb2ce6a1aa45..7fe285b7b831c3c5ec7e33ea7474e7b48287c4a3 100644 (file)
@@ -7,7 +7,7 @@
 struct boot_option;
 struct boot_command;
 
-typedef void (*boot_status_fn)(void *arg, struct boot_status *);
+typedef void (*boot_status_fn)(void *arg, struct status *);
 
 struct boot_task *boot(void *ctx, struct discover_boot_option *opt,
                struct boot_command *cmd, int dry_run,
@@ -16,9 +16,6 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt,
 void boot_cancel(struct boot_task *task);
 
 struct boot_task {
-       struct load_url_result *image;
-       struct load_url_result *initrd;
-       struct load_url_result *dtb;
        const char *local_image;
        const char *local_initrd;
        const char *local_dtb;
@@ -26,23 +23,31 @@ struct boot_task {
        char *local_initrd_override;
        char *local_dtb_override;
        const char *args;
-       const char *boot_tty;
+       const char *boot_console;
        boot_status_fn status_fn;
        void *status_arg;
        bool dry_run;
        bool cancelled;
        bool verify_signature;
-       struct load_url_result *image_signature;
-       struct load_url_result *initrd_signature;
-       struct load_url_result *dtb_signature;
-       struct load_url_result *cmdline_signature;
+       bool decrypt_files;
        const char *local_image_signature;
        const char *local_initrd_signature;
        const char *local_dtb_signature;
        const char *local_cmdline_signature;
+       struct list resources;
+};
+
+struct boot_resource {
+       struct load_url_result *result;
+       struct pb_url *url;
+       const char **local_path;
+       const char *name;
+
+       struct list_item list;
 };
 
 enum {
+       KEXEC_LOAD_DECRYPTION_FALURE = 252,
        KEXEC_LOAD_SIG_SETUP_INVALID = 253,
        KEXEC_LOAD_SIGNATURE_FAILURE = 254,
 };