:: commit 78beb06cbd0c27d907ad0a12b29e5e43b8c54dea

mintsuki <mintsuki@protonmail.com> — 2024-08-02 15:30

parents: 7b913b6b5c

protos/limine: Drop support for LIMINE_INTERNAL_MODULE_COMPRESSED

diff --git a/PROTOCOL.md b/PROTOCOL.md
index f7bc43ca..4cf8a46e 100644
--- a/PROTOCOL.md
+++ b/PROTOCOL.md
@@ -1027,7 +1027,7 @@ the kernel.
 * `cmdline` - Command line for the given module.
 * `flags` - Flags changing module loading behaviour:
   - `LIMINE_INTERNAL_MODULE_REQUIRED`: Fail if the requested module is not found.
-  - `LIMINE_INTERNAL_MODULE_COMPRESSED`: The module is GZ-compressed and should be decompressed by the bootloader. This is honoured if the response is revision 2 or greater.
+  - `LIMINE_INTERNAL_MODULE_COMPRESSED`: Deprecated. Bootloader may not support it and panic instead (from Limine 8.x onwards). Alternatively: the module is GZ-compressed and should be decompressed by the bootloader. This is honoured if the response is revision 2 or greater.
 
 Internal Limine modules are guaranteed to be loaded *before* user-specified
 (configuration) modules, and thus they are guaranteed to appear before user-specified
diff --git a/common/protos/limine.c b/common/protos/limine.c
index dec7f0cd..eaa62061 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -1074,8 +1074,7 @@ FEAT_START
             char *module_path_abs = ext_mem_alloc(1024);
             char *module_path_abs_p = module_path_abs;
             if (internal_module->flags & LIMINE_INTERNAL_MODULE_COMPRESSED) {
-                strcpy(module_path_abs_p, "$");
-                module_path_abs_p += 1;
+                panic(true, "limine: Compressed internal modules no longer supported");
             }
             strcpy(module_path_abs_p, k_resource);
             module_path_abs_p += strlen(k_resource);
tab: 248 wrap: offon