[1924]

Robert Millan <[email protected]>
Newsgroups gmane.comp.boot-loaders.grub.cvs
Message-ID <[email protected]>
Revision: 1924
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1924
Author:   robertmh
Date:     2008-11-20 20:30:24 +0000 (Thu, 20 Nov 2008)

Log Message:
-----------

        Harmonize ieee1275's grub_available_iterate() with the generic
        grub_machine_mmap_iterate() interface (fixes a recently-introduced
        build problem on i386-ieee1275):
        * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
        * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here.  Add third
        parameter `type'.  Update all users of this function.
        * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
        `kern/ieee1275/mmap.c'.
        * kern/ieee1275/init.c
        * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
        with ...
        (grub_machine_mmap_iterate): ... this.
        * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
        return type to `grub_err_t'.  Update all implementations of this
        function prototype.
        * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
        Likewise.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/DISTLIST
    trunk/grub2/conf/i386-ieee1275.mk
    trunk/grub2/conf/i386-ieee1275.rmk
    trunk/grub2/include/grub/i386/coreboot/memory.h
    trunk/grub2/include/grub/i386/pc/memory.h
    trunk/grub2/include/grub/ieee1275/ieee1275.h
    trunk/grub2/kern/i386/multiboot_mmap.c
    trunk/grub2/kern/i386/pc/mmap.c
    trunk/grub2/kern/ieee1275/init.c
    trunk/grub2/kern/ieee1275/openfw.c

Added Paths:
-----------
    trunk/grub2/kern/ieee1275/mmap.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/ChangeLog	2008-11-20 20:30:24 UTC (rev 1924)
@@ -12,6 +12,24 @@
 	* loader/i386/linux.c (allocate_pages): Fix a warning.
 	Move comment text to `#error' stanza.
 
+	Harmonize ieee1275's grub_available_iterate() with the generic
+	grub_machine_mmap_iterate() interface (fixes a recently-introduced
+	build problem on i386-ieee1275):
+	* kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
+	* kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here.  Add third
+	parameter `type'.  Update all users of this function.
+	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
+	`kern/ieee1275/mmap.c'.
+	* kern/ieee1275/init.c
+	* include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
+	with ...
+	(grub_machine_mmap_iterate): ... this.
+	* include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
+	return type to `grub_err_t'.  Update all implementations of this
+	function prototype.
+	* include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
+	Likewise.
+
 2008-11-19  Robert Millan  <[email protected]>
 
 	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.

Modified: trunk/grub2/DISTLIST
===================================================================
--- trunk/grub2/DISTLIST	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/DISTLIST	2008-11-20 20:30:24 UTC (rev 1924)
@@ -334,6 +334,7 @@
 kern/ieee1275/cmain.c
 kern/ieee1275/ieee1275.c
 kern/ieee1275/init.c
+kern/ieee1275/mmap.c
 kern/ieee1275/openfw.c
 kern/powerpc/cache.S
 kern/powerpc/dl.c

Modified: trunk/grub2/conf/i386-ieee1275.mk
===================================================================
--- trunk/grub2/conf/i386-ieee1275.mk	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/conf/i386-ieee1275.mk	2008-11-20 20:30:24 UTC (rev 1924)
@@ -14,6 +14,7 @@
 # For kernel.elf.
 kernel_elf_SOURCES = kern/i386/ieee1275/startup.S kern/i386/ieee1275/init.c \
 	kern/ieee1275/init.c \
+	kern/ieee1275/mmap.c \
 	kern/ieee1275/cmain.c kern/ieee1275/openfw.c \
 	kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
@@ -26,11 +27,11 @@
 	term/ieee1275/ofconsole.c \
 	disk/ieee1275/ofdisk.c \
 	symlist.c
-CLEANFILES += kernel.elf kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o kernel_elf-kern_ieee1275_cmain.o kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
-MOSTLYCLEANFILES += kernel_elf-kern_i386_ieee1275_startup.d kernel_elf-kern_i386_ieee1275_init.d kernel_elf-kern_ieee1275_init.d kernel_elf-kern_ieee1275_cmain.d kernel_elf-kern_ieee1275_openfw.d kernel_elf-kern_main.d kernel_elf-kern_device.d kernel_elf-kern_disk.d kernel_elf-kern_dl.d kernel_elf-kern_file.d kernel_elf-kern_fs.d kernel_elf-kern_err.d kernel_elf-kern_misc.d kernel_elf-kern_mm.d kernel_elf-kern_loader.d kernel_elf-kern_rescue.d kernel_elf-kern_term.d kernel_elf-kern_i386_dl.d kernel_elf-kern_parser.d kernel_elf-kern_partition.d kernel_elf-kern_env.d kernel_elf-kern_time.d kernel_elf-kern_generic_millisleep.d kernel_elf-kern_ieee1275_ieee1275.d kernel_elf-term_ieee1275_ofconsole.d kernel_elf-disk_ieee1275_ofdisk.d kernel_elf-symlist.d
+CLEANFILES += kernel.elf kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
+MOSTLYCLEANFILES += kernel_elf-kern_i386_ieee1275_startup.d kernel_elf-kern_i386_ieee1275_init.d kernel_elf-kern_ieee1275_init.d kernel_elf-kern_ieee1275_mmap.d kernel_elf-kern_ieee1275_cmain.d kernel_elf-kern_ieee1275_openfw.d kernel_elf-kern_main.d kernel_elf-kern_device.d kernel_elf-kern_disk.d kernel_elf-kern_dl.d kernel_elf-kern_file.d kernel_elf-kern_fs.d kernel_elf-kern_err.d kernel_elf-kern_misc.d kernel_elf-kern_mm.d kernel_elf-kern_loader.d kernel_elf-kern_rescue.d kernel_elf-kern_term.d kernel_elf-kern_i386_dl.d kernel_elf-kern_parser.d kernel_elf-kern_partition.d kernel_elf-kern_env.d kernel_elf-kern_time.d kernel_elf-kern_generic_millisleep.d kernel_elf-kern_ieee1275_ieee1275.d kernel_elf-term_ieee1275_ofconsole.d kernel_elf-disk_ieee1275_ofdisk.d kernel_elf-symlist.d
 
-kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o kernel_elf-kern_ieee1275_cmain.o kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
-	$(TARGET_CC) -o $@ kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o kernel_elf-kern_ieee1275_cmain.o kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o $(TARGET_LDFLAGS) $(kernel_elf_LDFLAGS)
 
+kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_el
 f-symlist.o
+	$(TARGET_CC) -o $@ kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o $(TARGE
 T_LDFLAGS) $(kernel_elf_LDFLAGS)
 
 kernel_elf-kern_i386_ieee1275_startup.o: kern/i386/ieee1275/startup.S $(kern/i386/ieee1275/startup.S_DEPENDENCIES)
 	$(TARGET_CC) -Ikern/i386/ieee1275 -I$(srcdir)/kern/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
@@ -44,6 +45,10 @@
 	$(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_ieee1275_init.d
 
+kernel_elf-kern_ieee1275_mmap.o: kern/ieee1275/mmap.c $(kern/ieee1275/mmap.c_DEPENDENCIES)
+	$(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
+-include kernel_elf-kern_ieee1275_mmap.d
+
 kernel_elf-kern_ieee1275_cmain.o: kern/ieee1275/cmain.c $(kern/ieee1275/cmain.c_DEPENDENCIES)
 	$(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_ieee1275_cmain.d

Modified: trunk/grub2/conf/i386-ieee1275.rmk
===================================================================
--- trunk/grub2/conf/i386-ieee1275.rmk	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/conf/i386-ieee1275.rmk	2008-11-20 20:30:24 UTC (rev 1924)
@@ -13,6 +13,7 @@
 # For kernel.elf.
 kernel_elf_SOURCES = kern/i386/ieee1275/startup.S kern/i386/ieee1275/init.c \
 	kern/ieee1275/init.c \
+	kern/ieee1275/mmap.c \
 	kern/ieee1275/cmain.c kern/ieee1275/openfw.c \
 	kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \

Modified: trunk/grub2/include/grub/i386/coreboot/memory.h
===================================================================
--- trunk/grub2/include/grub/i386/coreboot/memory.h	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/include/grub/i386/coreboot/memory.h	2008-11-20 20:30:24 UTC (rev 1924)
@@ -24,6 +24,7 @@
 #include <grub/i386/pc/memory.h>
 
 #ifndef ASM_FILE
+#include <grub/err.h>
 #include <grub/types.h>
 #endif
 
@@ -61,7 +62,7 @@
 
 void grub_machine_mmap_init (void);
 
-void EXPORT_FUNC(grub_machine_mmap_iterate)
+grub_err_t EXPORT_FUNC(grub_machine_mmap_iterate)
      (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t));
 
 #endif

Modified: trunk/grub2/include/grub/i386/pc/memory.h
===================================================================
--- trunk/grub2/include/grub/i386/pc/memory.h	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/include/grub/i386/pc/memory.h	2008-11-20 20:30:24 UTC (rev 1924)
@@ -24,6 +24,7 @@
 #include <grub/machine/machine.h>
 #ifndef ASM_FILE
 #include <grub/types.h>
+#include <grub/err.h>
 #endif
 
 /* The scratch buffer used in real mode code.  */
@@ -94,7 +95,7 @@
   grub_uint32_t type;
 } __attribute__((packed));
 
-void EXPORT_FUNC(grub_machine_mmap_iterate)
+grub_err_t EXPORT_FUNC(grub_machine_mmap_iterate)
      (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t));
 
 #endif

Modified: trunk/grub2/include/grub/ieee1275/ieee1275.h
===================================================================
--- trunk/grub2/include/grub/ieee1275/ieee1275.h	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/include/grub/ieee1275/ieee1275.h	2008-11-20 20:30:24 UTC (rev 1924)
@@ -167,8 +167,8 @@
      (int (*hook) (struct grub_ieee1275_devalias *alias));
 grub_err_t EXPORT_FUNC(grub_children_iterate) (char *devpath,
      int (*hook) (struct grub_ieee1275_devalias *alias));
-grub_err_t EXPORT_FUNC(grub_available_iterate)
-     (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t));
+grub_err_t EXPORT_FUNC(grub_machine_mmap_iterate)
+     (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t));
 int EXPORT_FUNC(grub_claimmap) (grub_addr_t addr, grub_size_t size);
 
 char *EXPORT_FUNC(grub_ieee1275_encode_devname) (const char *path);

Modified: trunk/grub2/kern/i386/multiboot_mmap.c
===================================================================
--- trunk/grub2/kern/i386/multiboot_mmap.c	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/kern/i386/multiboot_mmap.c	2008-11-20 20:30:24 UTC (rev 1924)
@@ -69,7 +69,7 @@
     }
 }
 
-void
+grub_err_t
 grub_machine_mmap_iterate (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t))
 {
   struct grub_multiboot_mmap_entry *entry = (void *) kern_multiboot_info.mmap_addr;
@@ -81,4 +81,6 @@
 
       entry = (void *) ((grub_addr_t) entry + entry->size + sizeof (entry->size));
     }
+
+  return 0;
 }

Modified: trunk/grub2/kern/i386/pc/mmap.c
===================================================================
--- trunk/grub2/kern/i386/pc/mmap.c	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/kern/i386/pc/mmap.c	2008-11-20 20:30:24 UTC (rev 1924)
@@ -18,9 +18,10 @@
 
 #include <grub/machine/init.h>
 #include <grub/machine/memory.h>
+#include <grub/err.h>
 #include <grub/types.h>
 
-void
+grub_err_t
 grub_machine_mmap_iterate (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t))
 {
   grub_uint32_t cont;
@@ -57,4 +58,6 @@
       else
 	hook (0x100000, grub_get_memsize (1) << 10, GRUB_MACHINE_MEMORY_AVAILABLE);
     }
+
+  return 0;
 }

Modified: trunk/grub2/kern/ieee1275/init.c
===================================================================
--- trunk/grub2/kern/ieee1275/init.c	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/kern/ieee1275/init.c	2008-11-20 20:30:24 UTC (rev 1924)
@@ -130,9 +130,12 @@
 {
   unsigned long total = 0;
 
-  auto int NESTED_FUNC_ATTR heap_init (grub_uint64_t addr, grub_uint64_t len);
-  int NESTED_FUNC_ATTR heap_init (grub_uint64_t addr, grub_uint64_t len)
+  auto int NESTED_FUNC_ATTR heap_init (grub_uint64_t addr, grub_uint64_t len, grub_uint32_t type);
+  int NESTED_FUNC_ATTR heap_init (grub_uint64_t addr, grub_uint64_t len, grub_uint32_t type)
   {
+    if (type != 1)
+      return 0;
+
     len -= 1; /* Required for some firmware.  */
 
     /* Never exceed HEAP_MAX_SIZE  */
@@ -174,9 +177,9 @@
   }
 
   if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_CANNOT_INTERPRET))
-    heap_init (HEAP_MAX_ADDR - HEAP_MIN_SIZE, HEAP_MIN_SIZE);
+    heap_init (HEAP_MAX_ADDR - HEAP_MIN_SIZE, HEAP_MIN_SIZE, 1);
   else
-    grub_available_iterate (heap_init);
+    grub_machine_mmap_iterate (heap_init);
 }
 
 #ifdef __i386__
@@ -187,10 +190,10 @@
 static void
 grub_get_extended_memory (void)
 {
-  auto int NESTED_FUNC_ATTR find_ext_mem (grub_uint64_t addr, grub_uint64_t len);
-  int NESTED_FUNC_ATTR find_ext_mem (grub_uint64_t addr, grub_uint64_t len)
+  auto int NESTED_FUNC_ATTR find_ext_mem (grub_uint64_t addr, grub_uint64_t len, grub_uint32_t type);
+  int NESTED_FUNC_ATTR find_ext_mem (grub_uint64_t addr, grub_uint64_t len, grub_uint32_t type)
     {
-      if (addr == 0x100000)
+      if (type == 1 && addr == 0x100000)
         {
           grub_upper_mem = len;
           return 1;
@@ -199,7 +202,7 @@
       return 0;
     }
 
-  grub_available_iterate (find_ext_mem);
+  grub_machine_mmap_iterate (find_ext_mem);
 }
 
 #endif

Added: trunk/grub2/kern/ieee1275/mmap.c
===================================================================
--- trunk/grub2/kern/ieee1275/mmap.c	                        (rev 0)
+++ trunk/grub2/kern/ieee1275/mmap.c	2008-11-20 20:30:24 UTC (rev 1924)
@@ -0,0 +1,71 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2003,2004,2005,2007,2008 Free Software Foundation, Inc.
+ *
+ *  GRUB is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  GRUB is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/machine/memory.h>
+#include <grub/ieee1275/ieee1275.h>
+#include <grub/types.h>
+
+grub_err_t
+grub_machine_mmap_iterate (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t))
+{
+  grub_ieee1275_phandle_t root;
+  grub_ieee1275_phandle_t memory;
+  grub_uint32_t available[32];
+  grub_ssize_t available_size;
+  grub_uint32_t address_cells = 1;
+  grub_uint32_t size_cells = 1;
+  int i;
+
+  /* Determine the format of each entry in `available'.  */
+  grub_ieee1275_finddevice ("/", &root);
+  grub_ieee1275_get_integer_property (root, "#address-cells", &address_cells,
+				      sizeof address_cells, 0);
+  grub_ieee1275_get_integer_property (root, "#size-cells", &size_cells,
+				      sizeof size_cells, 0);
+
+  /* Load `/memory/available'.  */
+  if (grub_ieee1275_finddevice ("/memory", &memory))
+    return grub_error (GRUB_ERR_UNKNOWN_DEVICE,
+		       "Couldn't find /memory node");
+  if (grub_ieee1275_get_integer_property (memory, "available", available,
+					  sizeof available, &available_size))
+    return grub_error (GRUB_ERR_UNKNOWN_DEVICE,
+		       "Couldn't examine /memory/available property");
+
+  /* Decode each entry and call `hook'.  */
+  i = 0;
+  available_size /= sizeof (grub_uint32_t);
+  while (i < available_size)
+    {
+      grub_uint64_t address;
+      grub_uint64_t size;
+
+      address = available[i++];
+      if (address_cells == 2)
+	address = (address << 32) | available[i++];
+
+      size = available[i++];
+      if (size_cells == 2)
+	size = (size << 32) | available[i++];
+
+      if (hook (address, size, GRUB_MACHINE_MEMORY_AVAILABLE))
+	break;
+    }
+
+  return grub_errno;
+}

Modified: trunk/grub2/kern/ieee1275/openfw.c
===================================================================
--- trunk/grub2/kern/ieee1275/openfw.c	2008-11-20 20:25:30 UTC (rev 1923)
+++ trunk/grub2/kern/ieee1275/openfw.c	2008-11-20 20:30:24 UTC (rev 1924)
@@ -147,55 +147,6 @@
   return 0;
 }
 
-grub_err_t grub_available_iterate (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t))
-{
-  grub_ieee1275_phandle_t root;
-  grub_ieee1275_phandle_t memory;
-  grub_uint32_t available[32];
-  grub_ssize_t available_size;
-  grub_uint32_t address_cells = 1;
-  grub_uint32_t size_cells = 1;
-  int i;
-
-  /* Determine the format of each entry in `available'.  */
-  grub_ieee1275_finddevice ("/", &root);
-  grub_ieee1275_get_integer_property (root, "#address-cells", &address_cells,
-				      sizeof address_cells, 0);
-  grub_ieee1275_get_integer_property (root, "#size-cells", &size_cells,
-				      sizeof size_cells, 0);
-
-  /* Load `/memory/available'.  */
-  if (grub_ieee1275_finddevice ("/memory", &memory))
-    return grub_error (GRUB_ERR_UNKNOWN_DEVICE,
-		       "Couldn't find /memory node");
-  if (grub_ieee1275_get_integer_property (memory, "available", available,
-					  sizeof available, &available_size))
-    return grub_error (GRUB_ERR_UNKNOWN_DEVICE,
-		       "Couldn't examine /memory/available property");
-
-  /* Decode each entry and call `hook'.  */
-  i = 0;
-  available_size /= sizeof (grub_uint32_t);
-  while (i < available_size)
-    {
-      grub_uint64_t address;
-      grub_uint64_t size;
-
-      address = available[i++];
-      if (address_cells == 2)
-	address = (address << 32) | available[i++];
-
-      size = available[i++];
-      if (size_cells == 2)
-	size = (size << 32) | available[i++];
-
-      if (hook (address, size))
-	break;
-    }
-
-  return grub_errno;
-}
-
 /* Call the "map" method of /chosen/mmu.  */
 static int
 grub_map (grub_addr_t phys, grub_addr_t virt, grub_uint32_t size,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.