Make purgatory a signed char buffer

The consumer of the purgatory buffer, elf_rel_build_load()
expects a signed char buffer.

Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
Simon Horman
2010-02-02 14:42:02 +11:00
parent 77ee5cf214
commit 3fb7c2ba7a
6 changed files with 7 additions and 7 deletions

View File

@@ -200,10 +200,10 @@ int do_bzImage_load(struct kexec_info *info,
* overflow takes place while applying relocations. * overflow takes place while applying relocations.
*/ */
if (!real_mode_entry && relocatable_kernel) if (!real_mode_entry && relocatable_kernel)
elf_rel_build_load(info, &info->rhdr, (char *) purgatory, purgatory_size, elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size,
0x3000, 0x7fffffff, -1, 0); 0x3000, 0x7fffffff, -1, 0);
else else
elf_rel_build_load(info, &info->rhdr, (char *) purgatory, purgatory_size, elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size,
0x3000, 640*1024, -1, 0); 0x3000, 640*1024, -1, 0);
dbgprintf("Loaded purgatory at addr 0x%lx\n", info->rhdr.rel_addr); dbgprintf("Loaded purgatory at addr 0x%lx\n", info->rhdr.rel_addr);
/* The argument/parameter segment */ /* The argument/parameter segment */

View File

@@ -191,7 +191,7 @@ int elf_x86_load(int argc, char **argv, const char *buf, off_t len,
/* Do we want arguments? */ /* Do we want arguments? */
if (arg_style != ARG_STYLE_NONE) { if (arg_style != ARG_STYLE_NONE) {
/* Load the setup code */ /* Load the setup code */
elf_rel_build_load(info, &info->rhdr, (char *) purgatory, purgatory_size, elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size,
0, ULONG_MAX, 1, 0); 0, ULONG_MAX, 1, 0);
} }
if (arg_style == ARG_STYLE_NONE) { if (arg_style == ARG_STYLE_NONE) {

View File

@@ -217,7 +217,7 @@ int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len,
elf_exec_build_load(info, &ehdr, buf, len, 0); elf_exec_build_load(info, &ehdr, buf, len, 0);
/* Load the setup code */ /* Load the setup code */
elf_rel_build_load(info, &info->rhdr, (char *) purgatory, purgatory_size, 0, elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size, 0,
ULONG_MAX, 1, 0); ULONG_MAX, 1, 0);
/* The first segment will contain the multiboot headers: /* The first segment will contain the multiboot headers:

View File

@@ -207,7 +207,7 @@ int elf_ppc64_load(int argc, char **argv, const char *buf, off_t len,
} }
/* Add v2wrap to the current image */ /* Add v2wrap to the current image */
elf_rel_build_load(info, &info->rhdr, (const char *)purgatory, elf_rel_build_load(info, &info->rhdr, purgatory,
purgatory_size, 0, max_addr, 1, 0); purgatory_size, 0, max_addr, 1, 0);
/* Add a ram-disk to the current image /* Add a ram-disk to the current image

View File

@@ -226,7 +226,7 @@ extern void arch_reuse_initrd(void);
extern int ifdown(void); extern int ifdown(void);
extern unsigned char purgatory[]; extern char purgatory[];
extern size_t purgatory_size; extern size_t purgatory_size;
#define BOOTLOADER "kexec" #define BOOTLOADER "kexec"

View File

@@ -6,7 +6,7 @@ int main(int argc, char **argv)
int i; int i;
const char *name = argv[1]; const char *name = argv[1];
printf("#include <stddef.h>\n"); printf("#include <stddef.h>\n");
printf("const unsigned char %s[] = {\n", name); printf("const char %s[] = {\n", name);
i = 0; i = 0;
while((c = getchar()) != EOF) { while((c = getchar()) != EOF) {
if ((i % 16) != 0) { if ((i % 16) != 0) {