Robert Millan wrote: > On Wed, Sep 03, 2008 at 11:42:44AM +0200, phcoder wrote: >> Hello, all. >> For some FS sometimes additional functions are needed. It could be some >> type of control (e.g. in ZFS manage zpools) or preparation for OS >> booting (e.g. in FAT put IO.SYS and MSDOS.SYS at the begining of the >> root directory). While theese functions are quite specific to FS >> sometimes are important to implement. > > What would be the purpose of that? Please describe a use case. > With ZFS or ext3cow: Suppose you made a huge mistake and installed unbootable kernel and have no backup in another file. But ZFS/ext3cow has its own backup. So ZFS/ext3cow driver may provide a call something like static grub_err_t zfs_timeback (int timeref); And anounce it like: add_funcs={ {"timeback", zfs_timeback}, {0, 0} }; Then a module timeback.mod can suply a command like timeback <device> <date> which uses the function supplied by zfs and ext3cow. With FAT: suppose you have let's say DR-DOS and windows on the same partition. Great their boot files have different names so they shouldn't conflict. But in fact they do because both require their boot files (io.sys/msdos.sys or ibmbio.com/ibmdos.com) to be first entries in root directory. So fat module can provide a call like fat_put_rootfile_to_slot (char *filename, int place);
Then a module "dosprep.mod" can do something like: put_rootfile_to ("io.sys",0); put_rootfile_to ("msdos.sys",0); >> [...]. So I intend to implement a call "swapfso" (FSO=File System >> Object) at least for fat and ext2. > > Do you mean a filesystem write that swaps two file references? > Exactly. It's easy to implement (just exchange inode numbers and filetype fields in dirent). It's also another usage case for first part of my email. Vladimir 'phcoder' Serbinenko _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel