From: Robert Millan <rmh@aybabtu.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [PATCH] Environment block support for grub2
Date: Sat, 31 May 2008 13:39:01 +0200 [thread overview]
Message-ID: <20080531113901.GA20946@thorin> (raw)
In-Reply-To: <ca0f59980805310354m4d40cd0rc0ea248cb13babb9@mail.gmail.com>
On Sat, May 31, 2008 at 06:54:43PM +0800, Bean wrote:
>
> The root is assigned in the initialization phraze. Currently, it's
> done this way:
>
> machine_machine_init -> calculate root device, then set variable
> prefix using root and grub_prefix.
>
> modules initialization
>
> grub_set_root_dev -> Use variable prefix to get the root variable.
>
> Load normal.mod
>
> As you can see, it first create prefix, then split it to find root. At
> the end of grub_set_root_dev, prefix and root will point to the same
> device. This also make it different to change the root setting in
> findroot, which is run in modules initialization stage. We must split
> prefix to find the root directory, and use the new root to form a new
> prefix. The prefix would later be split again to find root, what a
> mess.
>
> The new method:
>
> machine_machine_init -> calculate root device, then set root variable directly.
>
> Load variable in the environment block
>
> modules initialization
>
> findroot
>
> more modules initialization
>
> grub_set_root_dev -> Use variable root to get the root prefix.
>
> Load normal.mod
>
> The end result would be the same, but the new method is cleaner, and
> allows overwrite of the root and rdir variable using environment block
> and findroot.
I think the method is sound; what I'm complaining about (and it's not
something specific to your patch) is that we're referring to two different
things by the same name ("root"), and even put them in the same variable.
In the initialization phase, "root" is the device that contains our GRUB
directory.
Afterwards, "root" is the device we're currently accessing (be it for loading
fonts, backgrounds, Linux images, whatever).
If "root" means "just a placeholder for whatever device we're acessing at the
moment", then it would make sense, but in our code (i.e. in the names we're
giving to commands and functions) it's assumed to mean "the device containing
/boot/grub".
So what do we want to do with this? Should we have different variables for
each thing (and in that case, is "root" for initial stage or for grub.cfg)
or should we use "root" as a placeholder for any path reference, and adjust
our function names etc to reflect that?
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What good is a phone call… if you are unable to speak?
(as seen on /.)
next prev parent reply other threads:[~2008-05-31 11:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-30 20:27 [PATCH] Environment block support for grub2 Bean
2008-05-31 10:10 ` Robert Millan
2008-05-31 10:54 ` Bean
2008-05-31 11:39 ` Robert Millan [this message]
2008-05-31 12:09 ` Bean
2008-05-31 15:09 ` Bean
2008-06-03 21:09 ` Robert Millan
2008-06-04 3:49 ` Bean
2008-06-06 16:43 ` UUID-based boot (Re: [PATCH] Environment block support for grub2) Robert Millan
2008-06-06 17:22 ` Bean
2008-06-06 22:03 ` Robert Millan
2008-06-07 4:33 ` Bean
2008-06-08 19:26 ` Robert Millan
2008-06-07 7:24 ` Vesa Jääskeläinen
2008-06-06 23:31 ` [PATCH] ntfs UUIDs (Re: UUID-based boot (Re: [PATCH] Environment block support for grub2)) Robert Millan
2008-06-07 5:44 ` Tomáš Ebenlendr
2008-06-08 3:34 ` Pavel Roskin
2008-06-08 19:19 ` Robert Millan
2008-05-31 15:21 ` [PATCH] Environment block support for grub2 Robert Millan
2008-06-13 22:48 ` Yoshinori K. Okuji
2008-06-14 3:41 ` Bean
2008-06-14 18:32 ` Robert Millan
2008-06-14 19:22 ` Bean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080531113901.GA20946@thorin \
--to=rmh@aybabtu.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.