All of lore.kernel.org
 help / color / mirror / Atom feed
* grub-0.97/VFS
@ 2009-07-22 16:04 Edward Shishkin
  0 siblings, 0 replies; 3+ messages in thread
From: Edward Shishkin @ 2009-07-22 16:04 UTC (permalink / raw)
  To: linux-btrfs, grub-devel

Hello everyone.

Grub-0.97 filesystem interface (read_func, dir_func)
seems to be poor. Instead of this I would prefer to
have something like the following:

/*
 *
 * .init_root()           // set index of root dir
 * .lookup_begin()        // get index by name
 * .lookup_end()          // get inode by index
 * .read_file()
 * .read_dir()
 * .read_symlink()
 *
 * so that dir_func in grub_open will look like the
 * following:
 */
int path_walk()
{
    ops->init_root();
    while (1) {
        int mode;
        ops->lookup_end(&mode, ...);

        switch (type_of_file(mode)) {
        case SYMLINK_FILE:
            follow_symlink(read_symlink, ...);
            ...;
            continue;
        case REGULAR_FILE:
            /*
             * the end of path walk:
             * normally we want to exit here
             */
            ...;
            return 1;
        case DIRECTORY_FILE:
            /*
             * optionally this will
             * print possibilities
             */
            ops->lookup_begin(mode, read_dir, ...);
            ...;
            continue;
        default:
            errnum = ERR_BAD_FILETYPE;
            return 0;
        }
    }
}

Just my 2 cents in the (grub-2?) development process..

Thanks,
Edward.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* grub-0.97/VFS
@ 2009-07-22 16:41 Edward Shishkin
  2009-07-22 17:04 ` grub-0.97/VFS Vladimir 'phcoder' Serbinenko
  0 siblings, 1 reply; 3+ messages in thread
From: Edward Shishkin @ 2009-07-22 16:41 UTC (permalink / raw)
  To: grub-devel

(CC linux-btrfs mailing list)

Hello everyone.

Grub-0.97 filesystem interface (read_func, dir_func)
seems to be poor. Instead of this I would prefer to
have something like the following:

/*
*
* .init_root()           // set index of root dir
* .lookup_begin()        // get index by name
* .lookup_end()          // get inode by index
* .read_file()
* .read_dir()
* .read_symlink()
*
* so that dir_func in grub_open will look like the
* following:
*/
int path_walk()
{
    ops->init_root();
    while (1) {
        int mode;
        ops->lookup_end(&mode, ...);

        switch (type_of_file(mode)) {
        case SYMLINK_FILE:
            follow_symlink(read_symlink, ...);
            ...;
            continue;
        case REGULAR_FILE:
            /*
             * the end of path walk:
             * normally we want to exit here
             */
            ...;
            return 1;
        case DIRECTORY_FILE:
            /*
             * optionally this will
             * print possibilities
             */
            ops->lookup_begin(mode, read_dir, ...);
            ...;
            continue;
        default:
            errnum = ERR_BAD_FILETYPE;
            return 0;
        }
    }
}

Just my 2 cents in the (grub-2?) development process..

Thanks,
Edward.





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: grub-0.97/VFS
  2009-07-22 16:41 grub-0.97/VFS Edward Shishkin
@ 2009-07-22 17:04 ` Vladimir 'phcoder' Serbinenko
  0 siblings, 0 replies; 3+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2009-07-22 17:04 UTC (permalink / raw)
  To: The development of GRUB 2

On Wed, Jul 22, 2009 at 6:41 PM, Edward Shishkin<edward@redhat.com> wrote:
> (CC linux-btrfs mailing list)
>
> Hello everyone.
>
> Grub-0.97 filesystem interface (read_func, dir_func)
> seems to be poor. Instead of this I would prefer to
> have something like the following:
>
Could you have a look at fs/fshelp.c? It's a generic module of library
functions used by other filesystems and is somewhat similar to what
you describe

-- 
Regards
Vladimir 'phcoder' Serbinenko

Personal git repository: http://repo.or.cz/w/grub2/phcoder.git



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-07-22 17:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-22 16:04 grub-0.97/VFS Edward Shishkin
  -- strict thread matches above, loose matches on Subject: below --
2009-07-22 16:41 grub-0.97/VFS Edward Shishkin
2009-07-22 17:04 ` grub-0.97/VFS Vladimir 'phcoder' Serbinenko

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.