/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2000,2005,2007,2008,2009 Free Software Foundation, Inc.
+ * Copyright (C) 2000,2005,2007,2008,2009,2010 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
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <grub/machine/boot.h>
+
.file "pxeboot.S"
.text
start:
/* Use drive number 0x7F for PXE */
- movb $0x7F, %dl
+ movb $GRUB_BOOT_MACHINE_PXE_DL, %dl
/* Jump to the real world */
ljmp $0, $0x8200
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
+ * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010 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
#include <grub/kernel.h>
#include <grub/mm.h>
+#include <grub/machine/boot.h>
#include <grub/machine/init.h>
#include <grub/machine/memory.h>
#include <grub/machine/console.h>
{
/* No hardcoded root partition - make it from the boot drive and the
partition number encoded at the install time. */
- grub_snprintf (dev, sizeof (dev),
- "(%cd%u", (grub_boot_drive & 0x80) ? 'h' : 'f',
- grub_boot_drive & 0x7f);
- ptr += grub_strlen (ptr);
-
- if (grub_install_dos_part >= 0)
- grub_snprintf (ptr, sizeof (dev) - (ptr - dev),
- ",%u", grub_install_dos_part + 1);
-
- ptr += grub_strlen (ptr);
-
- if (grub_install_bsd_part >= 0)
- grub_snprintf (ptr, sizeof (dev) - (ptr - dev), ",%c",
- grub_install_bsd_part + 'a');
-
- ptr += grub_strlen (ptr);
+ if (grub_boot_drive == GRUB_BOOT_MACHINE_PXE_DL)
+ {
+ grub_strcpy (dev, "(pxe");
+ ptr += sizeof ("(pxe") - 1;
+ }
+ else
+ {
+ grub_snprintf (dev, sizeof (dev),
+ "(%cd%u", (grub_boot_drive & 0x80) ? 'h' : 'f',
+ grub_boot_drive & 0x7f);
+ ptr += grub_strlen (ptr);
+
+ if (grub_install_dos_part >= 0)
+ grub_snprintf (ptr, sizeof (dev) - (ptr - dev),
+ ",%u", grub_install_dos_part + 1);
+ ptr += grub_strlen (ptr);
+
+ if (grub_install_bsd_part >= 0)
+ grub_snprintf (ptr, sizeof (dev) - (ptr - dev), ",%c",
+ grub_install_bsd_part + 'a');
+ ptr += grub_strlen (ptr);
+ }
grub_snprintf (ptr, sizeof (dev) - (ptr - dev), ")%s", grub_prefix);
grub_strcpy (grub_prefix, dev);