From: Björn W. <bjo...@gm...> - 2012-04-11 08:53:23
|
> > > is as minimal as possible and 2) write a Fuse filesystem that > > > implements all functions from the API but only passes it on to the > > > underlying filesystem (that is, a Fuse filesystem that pretends it > > > doesn't exist). I believe both these implementations could be > > > fairly good from a tutorial and documentation point of view. > > > > > > If anyone could point me to documentation of Linux/UNIX filesystem > > > APIs or give pointers and tips of any kind I would be truly > > > grateful :) > > > > For 2), I think the fusexmp.c example already does this -- or is there > > some other API you're referring to? > > The last time I looked --- and, again, this was quite a while ago --- > fusexmp.c only documented/used a rather minimal subset of functions. > A good starting point, no doubt, but far from complete. > > I'd have to agree with Sven here; I get the impression that fusexmp.c only uses a subset. These are used in fusexmp.c: .getattr = xmp_getattr, .readlink = xmp_readlink, .getdir = xmp_getdir, .mknod = xmp_mknod, .mkdir = xmp_mkdir, .symlink = xmp_symlink, .unlink = xmp_unlink, .rmdir = xmp_rmdir, .rename = xmp_rename, .link = xmp_link, .chmod = xmp_chmod, .chown = xmp_chown, .truncate = xmp_truncate, .utime = xmp_utime, .open = xmp_open, .read = xmp_read, .write = xmp_write, .statfs = xmp_statfs, .release = xmp_release, .fsync = xmp_fsync But apart from these, the following functions are in the API: flush() setxattr() getxattr() listxattr opendir() readdir() releasedir() fsyncdir() init() (which doesn't have an equivalent in an ordinary filesystem) destroy() (same with this) access() create() ftruncate() fgetattr() lock() utimens() bmap() Correct me if I got this wrong in any way :) /Björn |