mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-23 07:39:22 +00:00
merge bootcheck and mainline into newreloc
This commit is contained in:
commit
3c83bc50db
165 files changed
+4132
-665
No files matched your search
+14
-3
@@ -172,7 +172,7 @@ grub_elf32_phdr_iterate (grub_elf_t elf,
|
||||
|
||||
/* Calculate the amount of memory spanned by the segments. */
|
||||
grub_size_t
|
||||
grub_elf32_size (grub_elf_t elf)
|
||||
grub_elf32_size (grub_elf_t elf, Elf32_Addr *base)
|
||||
{
|
||||
Elf32_Addr segments_start = (Elf32_Addr) -1;
|
||||
Elf32_Addr segments_end = 0;
|
||||
@@ -198,6 +198,9 @@ grub_elf32_size (grub_elf_t elf)
|
||||
|
||||
grub_elf32_phdr_iterate (elf, calcsize, 0);
|
||||
|
||||
if (base)
|
||||
*base = 0;
|
||||
|
||||
if (nr_phdrs == 0)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_OS, "no program headers present");
|
||||
@@ -211,10 +214,12 @@ grub_elf32_size (grub_elf_t elf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (base)
|
||||
*base = segments_start;
|
||||
|
||||
return segments_end - segments_start;
|
||||
}
|
||||
|
||||
|
||||
/* Load every loadable segment into memory specified by `_load_hook'. */
|
||||
grub_err_t
|
||||
grub_elf32_load (grub_elf_t _elf, grub_elf32_load_hook_t _load_hook,
|
||||
@@ -353,7 +358,7 @@ grub_elf64_phdr_iterate (grub_elf_t elf,
|
||||
|
||||
/* Calculate the amount of memory spanned by the segments. */
|
||||
grub_size_t
|
||||
grub_elf64_size (grub_elf_t elf)
|
||||
grub_elf64_size (grub_elf_t elf, Elf64_Addr *base)
|
||||
{
|
||||
Elf64_Addr segments_start = (Elf64_Addr) -1;
|
||||
Elf64_Addr segments_end = 0;
|
||||
@@ -379,6 +384,9 @@ grub_elf64_size (grub_elf_t elf)
|
||||
|
||||
grub_elf64_phdr_iterate (elf, calcsize, 0);
|
||||
|
||||
if (base)
|
||||
*base = 0;
|
||||
|
||||
if (nr_phdrs == 0)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_OS, "no program headers present");
|
||||
@@ -392,6 +400,9 @@ grub_elf64_size (grub_elf_t elf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (base)
|
||||
*base = segments_start;
|
||||
|
||||
return segments_end - segments_start;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user