* 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
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.