[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
hurd-l4/laden ia32-cmain.c loader.c
From: |
Marcus Brinkmann |
Subject: |
hurd-l4/laden ia32-cmain.c loader.c |
Date: |
Sun, 07 Sep 2003 20:00:23 -0400 |
CVSROOT: /cvsroot/hurd
Module name: hurd-l4
Branch:
Changes by: Marcus Brinkmann <address@hidden> 03/09/07 20:00:23
Modified files:
laden : ia32-cmain.c loader.c
Log message:
Correct check for overlapping regions, make grub check finer.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/laden/ia32-cmain.c.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/laden/loader.c.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: hurd-l4/laden/ia32-cmain.c
diff -u hurd-l4/laden/ia32-cmain.c:1.4 hurd-l4/laden/ia32-cmain.c:1.5
--- hurd-l4/laden/ia32-cmain.c:1.4 Sun Sep 7 19:35:44 2003
+++ hurd-l4/laden/ia32-cmain.c Sun Sep 7 20:00:22 2003
@@ -127,16 +127,19 @@
start = (l4_word_t) mbi;
end = start + sizeof (*mbi) - 1;
+ loader_add_region ("grub-mbi", start, end, 1);
+
if (CHECK_FLAG (mbi->flags, 3))
{
module_t *mod = (module_t *) mbi->mods_addr;
int nr;
- if (((l4_word_t) mod) < start)
- start = (l4_word_t) mod;
- if (((l4_word_t) mod) + mbi->mods_count * sizeof (*mod) > end)
- end = ((l4_word_t) mod) + mbi->mods_count * sizeof (*mod);
+ start = (l4_word_t) mod;
+ end = ((l4_word_t) mod) + mbi->mods_count * sizeof (*mod);
+ loader_add_region ("grub-mods", start, end, 1);
+ start = (l4_word_t) mod[0].string;
+ end = start;
for (nr = 0; nr < mbi->mods_count; nr++)
{
char *str = (char *) mod[nr].string;
@@ -151,8 +154,8 @@
end = (l4_word_t) str;
}
}
+ loader_add_region ("grub-mods-cmdlines", start, end, 1);
}
- loader_add_region ("grub-mbi", start, end, 1);
/* Now invoke the main function. */
main (argc, argv);
Index: hurd-l4/laden/loader.c
diff -u hurd-l4/laden/loader.c:1.3 hurd-l4/laden/loader.c:1.4
--- hurd-l4/laden/loader.c:1.3 Sun Sep 7 19:35:44 2003
+++ hurd-l4/laden/loader.c Sun Sep 7 20:00:23 2003
@@ -97,7 +97,8 @@
for (i = 0; i < nr_regions; i++)
{
if ((start >= used_regions[i].start && start < used_regions[i].end)
- || (end >= used_regions[i].start && end < used_regions[i].end))
+ || (end >= used_regions[i].start && end < used_regions[i].end)
+ || (start < used_regions[i].start && end >= used_regions[i].start))
panic ("%s (0x%x - 0x%x) conflicts with %s (0x%x - 0x%x)",
name, start, end, used_regions[i].name, used_regions[i].start,
used_regions[i].end);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- hurd-l4/laden ia32-cmain.c loader.c,
Marcus Brinkmann <=