From db606889a94fc4760cfef51dcb74177fe42cf388 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 4 Feb 2012 14:00:23 +0100 Subject: [PATCH] * grub-core/kern/ieee1275/openfw.c (grub_claimmap): Change to grub_error framework. All users updated. --- ChangeLog | 5 +++++ grub-core/kern/ieee1275/init.c | 8 ++++---- grub-core/kern/ieee1275/openfw.c | 10 +++++----- grub-core/lib/ieee1275/relocator.c | 5 ++++- grub-core/loader/powerpc/ieee1275/linux.c | 2 ++ include/grub/ieee1275/ieee1275.h | 2 +- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 864aa7271..1d88c4cf2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-02-04 Vladimir Serbinenko + + * grub-core/kern/ieee1275/openfw.c (grub_claimmap): Change to + grub_error framework. All users updated. + 2012-02-04 Vladimir Serbinenko * grub-core/gettext/gettext.c: Mostly rewritten to avoid using diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c index 76f932d09..bf59dc822 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -192,11 +192,11 @@ grub_claim_heap (void) if (len) { + grub_err_t err; /* Claim and use it. */ - if (grub_claimmap (addr, len) < 0) - return grub_error (GRUB_ERR_OUT_OF_MEMORY, - "failed to claim heap at 0x%llx, len 0x%llx", - addr, len); + err = grub_claimmap (addr, len); + if (err) + return err; grub_mm_init_region ((void *) (grub_addr_t) addr, len); } diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c index 1dc932e49..caf820df5 100644 --- a/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c @@ -255,7 +255,7 @@ grub_ieee1275_map (grub_addr_t phys, grub_addr_t virt, grub_size_t size, return args.catch_result; } -int +grub_err_t grub_claimmap (grub_addr_t addr, grub_size_t size) { if (grub_ieee1275_claim (addr, size, 0, 0)) @@ -264,13 +264,13 @@ grub_claimmap (grub_addr_t addr, grub_size_t size) if (! grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_REAL_MODE) && grub_ieee1275_map (addr, addr, size, 0x00)) { - grub_printf ("map failed: address 0x%llx, size 0x%llx\n", - (long long) addr, (long long) size); + grub_error (GRUB_ERR_OUT_OF_MEMORY, "map failed: address 0x%llx, size 0x%llx\n", + (long long) addr, (long long) size); grub_ieee1275_release (addr, size); - return -1; + return grub_errno; } - return 0; + return GRUB_ERR_NONE; } /* Get the device arguments of the Open Firmware node name `path'. */ diff --git a/grub-core/lib/ieee1275/relocator.c b/grub-core/lib/ieee1275/relocator.c index c09f1e9c5..021f0ce71 100644 --- a/grub-core/lib/ieee1275/relocator.c +++ b/grub-core/lib/ieee1275/relocator.c @@ -85,7 +85,10 @@ grub_relocator_firmware_fill_events (struct grub_relocator_mmap_event *events) int grub_relocator_firmware_alloc_region (grub_addr_t start, grub_size_t size) { - return (grub_claimmap (start, size) >= 0); + grub_err_t err; + err = grub_claimmap (start, size); + grub_errno = 0; + return (err == 0); } void diff --git a/grub-core/loader/powerpc/ieee1275/linux.c b/grub-core/loader/powerpc/ieee1275/linux.c index b0af5f75d..1ec3a4d96 100644 --- a/grub-core/loader/powerpc/ieee1275/linux.c +++ b/grub-core/loader/powerpc/ieee1275/linux.c @@ -76,6 +76,7 @@ grub_linux_claimmap_iterate (grub_addr_t target, grub_size_t size, found_addr = target; return 1; } + grub_print_error (); } /* Target below the memory chunk. */ if (target < addr && addr + size <= end) @@ -85,6 +86,7 @@ grub_linux_claimmap_iterate (grub_addr_t target, grub_size_t size, found_addr = addr; return 1; } + grub_print_error (); } return 0; } diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h index 647374d0e..fb85db9f1 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -186,7 +186,7 @@ int EXPORT_FUNC(grub_devalias_iterate) (int (*hook) (struct grub_ieee1275_devalias *alias)); int EXPORT_FUNC(grub_children_iterate) (const char *devpath, int (*hook) (struct grub_ieee1275_devalias *alias)); -int EXPORT_FUNC(grub_claimmap) (grub_addr_t addr, grub_size_t size); +grub_err_t EXPORT_FUNC(grub_claimmap) (grub_addr_t addr, grub_size_t size); int EXPORT_FUNC(grub_ieee1275_map) (grub_addr_t phys, grub_addr_t virt,