grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] PXE support for grub2


From: Robert Millan
Subject: Re: [PATCH] PXE support for grub2
Date: Sat, 2 Aug 2008 12:48:28 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

On Thu, Jul 31, 2008 at 12:50:22AM +0800, Bean wrote:
> +#if 1
> +#define GRUB_PXE_BOOTP_DHCPVEND      1024    /* DHCP extended vendor field 
> size */
> +#else
> +#define GRUB_PXE_BOOTP_DHCPVEND      312     /* DHCP standard vendor field 
> size */
> +#endif

A comment would be helpful to explain the 'if 1' option.

> --- a/kern/i386/pc/init.c
> +++ b/kern/i386/pc/init.c
> @@ -71,14 +71,19 @@ make_install_device (void)
>        if (grub_root_drive == 0xFF)
>          grub_root_drive = grub_boot_drive;
>        
> -      grub_sprintf (dev, "(%cd%u", (grub_root_drive & 0x80) ? 'h' : 'f',
> -                    grub_root_drive & 0x7f);
> +      if (grub_root_drive == 0x7F)
> +        grub_strcpy (dev, "(pxe");
> +      else
> +        {
> +          grub_sprintf (dev, "(%cd%u", (grub_root_drive & 0x80) ? 'h' : 'f',
> +                        grub_root_drive & 0x7f);
>        
> -      if (grub_install_dos_part >= 0)
> -     grub_sprintf (dev + grub_strlen (dev), ",%u", grub_install_dos_part + 
> 1);
> +          if (grub_install_dos_part >= 0)
> +         grub_sprintf (dev + grub_strlen (dev), ",%u", grub_install_dos_part 
> + 1);
>        
> -      if (grub_install_bsd_part >= 0)
> -     grub_sprintf (dev + grub_strlen (dev), ",%c", grub_install_bsd_part + 
> 'a');
> +          if (grub_install_bsd_part >= 0)
> +         grub_sprintf (dev + grub_strlen (dev), ",%c", grub_install_bsd_part 
> + 'a');
> +     }
>        
>        grub_sprintf (dev + grub_strlen (dev), ")%s", grub_prefix);
>        grub_strcpy (grub_prefix, dev);

Can we avoid this?  I wish make_install_device() was reduced and eventually
disappeared.

Since we already know at install time that the boot drive will be 0x7f, why not
just set the drive via grub-mkimage --prefix?

> --- a/kern/i386/pc/startup.S
> +++ b/kern/i386/pc/startup.S
> @@ -2053,3 +2053,102 @@ FUNCTION(grub_vbe_bios_set_palette_data)
>       popl    %ebx
>       popl    %ebp
>       ret
> +
> +
> +pxe_rm_entry:
> +     .long   0
> +
> +/*
> + * struct grub_pxenv *grub_pxe_scan (void);
> + */
> +FUNCTION(grub_pxe_scan)

Could these go in a module?  If they're only used by disk/i386/pc/pxe.c,
maybe they could be merged with that?

-- 
Robert Millan

  The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
  how) you may access your data; but nobody's threatening your freedom: we
  still allow you to remove your data and not access it at all."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]