39 lines
1.1 KiB
Diff
39 lines
1.1 KiB
Diff
diff --git a/core/fs/iso9660/iso9660.c b/core/fs/iso9660/iso9660.c
|
|
index 3cd3ac4..9bbc299 100644
|
|
--- a/core/fs/iso9660/iso9660.c
|
|
+++ b/core/fs/iso9660/iso9660.c
|
|
@@ -228,14 +228,25 @@ static int iso_readdir(struct file *file, struct dirent *dirent)
|
|
/* Load the config file, return 1 if failed, or 0 */
|
|
static int iso_load_config(void)
|
|
{
|
|
- static const char *search_directories[] = {
|
|
- "/boot/isolinux",
|
|
- "/isolinux",
|
|
- "/boot/syslinux",
|
|
- "/syslinux",
|
|
- "/",
|
|
- NULL
|
|
- };
|
|
+ /*
|
|
+ * Put search_directories[] to different section so it
|
|
+ * won't be compressed (and we can patch it later).
|
|
+ */
|
|
+ __asm__(
|
|
+ ".section .data16\n"
|
|
+ ".s1: .ascii \"/boot\"\n"
|
|
+ ".s2: .string \"/isolinux\"\n"
|
|
+ ".fill 64, 1, 0\n"
|
|
+ ".s3: .ascii \"/boot\"\n"
|
|
+ ".s4: .string \"/syslinux\"\n"
|
|
+ ".s5: .string \"/\"\n"
|
|
+ ".align 4\n"
|
|
+ "search_directories:\n"
|
|
+ ".long .s1, .s2, .s3, .s4, .s5, 0\n"
|
|
+ ".text\n"
|
|
+ );
|
|
+ extern const char *search_directories[];
|
|
+
|
|
static const char *filenames[] = {
|
|
"isolinux.cfg",
|
|
"syslinux.cfg",
|