+2005-01-20 Hollis Blanchard <hollis@penguinppc.org>
+
+ * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
+ function.
+ * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
+ (suspend_mod_SOURCES): New variable.
+ (suspend_mod_CFLAGS): Likewise.
+ * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
+ New prototype.
+ * commands/ieee1275/suspend.c: New file.
+
2005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
* include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
--- /dev/null
+/* suspend.c - command to suspend GRUB and return to Open Firmware */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2005 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <grub/normal.h>
+#include <grub/dl.h>
+#include <grub/misc.h>
+#include <grub/machine/ieee1275.h>
+
+static grub_err_t
+grub_cmd_suspend (struct grub_arg_list *state, int argc, char **args)
+{
+ (void)state;
+ (void)argc;
+ (void)args;
+
+ grub_printf("Run 'go' to resume GRUB.\n");
+ grub_ieee1275_enter();
+ return 0;
+}
+
+\f
+#ifdef GRUB_UTIL
+void
+grub_suspend_init (void)
+{
+ grub_register_command ("suspend", grub_cmd_suspend, GRUB_COMMAND_FLAG_BOTH,
+ "suspend", "Return to Open Firmware prompt", 0);
+}
+
+void
+grub_suspend_fini (void)
+{
+ grub_unregister_command ("suspend");
+}
+#else /* ! GRUB_UTIL */
+GRUB_MOD_INIT
+{
+ (void)mod; /* To stop warning. */
+ grub_register_command ("suspend", grub_cmd_suspend, GRUB_COMMAND_FLAG_BOTH,
+ "suspend", "Return to Open Firmware prompt", 0);
+}
+
+GRUB_MOD_FINI
+{
+ grub_unregister_command ("suspend");
+}
+#endif /* ! GRUB_UTIL */
# Modules.
pkgdata_MODULES = _linux.mod linux.mod fat.mod ufs.mod ext2.mod minix.mod \
hfs.mod jfs.mod normal.mod hello.mod font.mod \
- boot.mod cmp.mod cat.mod terminal.mod fshelp.mod amiga.mod apple.mod pc.mod
+ boot.mod cmp.mod cat.mod terminal.mod fshelp.mod amiga.mod apple.mod \
+ pc.mod suspend.mod
# For fshelp.mod.
fshelp_mod_SOURCES = fs/fshelp.c
# For pc.mod
pc_mod_SOURCES = partmap/pc.c
pc_mod_CFLAGS = $(COMMON_CFLAGS)
+
+# For suspend.mod
+suspend_mod_SOURCES = commands/ieee1275/suspend.c
+suspend_mod_CFLAGS = $(COMMON_CFLAGS)
grub_ieee1275_phandle_t *result);
int EXPORT_FUNC(grub_ieee1275_parent) (grub_ieee1275_phandle_t node,
grub_ieee1275_phandle_t *result);
+int EXPORT_FUNC(grub_ieee1275_enter) (void);
int EXPORT_FUNC(grub_ieee1275_exit) (void);
int EXPORT_FUNC(grub_ieee1275_open) (char *node,
grub_ieee1275_ihandle_t *result);