From: Ian Beckwith Date: Mon, 20 Sep 2010 02:19:19 +0000 (+0100) Subject: minimal working fuse stub X-Git-Tag: debian/1.0-1~202 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=34a78da47973018c867dfebc82701902b58f4e5f;p=id3fs.git minimal working fuse stub --- diff --git a/lib/ID3FS/Fuse.pm b/lib/ID3FS/Fuse.pm index 014706e..bfe36da 100644 --- a/lib/ID3FS/Fuse.pm +++ b/lib/ID3FS/Fuse.pm @@ -24,59 +24,78 @@ sub run my($self)=@_; Fuse::main( mountpoint => $self->{mountpoint}, - getattr => "ID3FS::Fuse::getattr", - readlink => "ID3FS::Fuse::readlink", - getdir => "ID3FS::Fuse::getdir", - mknod => "ID3FS::Fuse::mknod", - mkdir => "ID3FS::Fuse::mkdir", - unlink => "ID3FS::Fuse::unlink", - rmdir => "ID3FS::Fuse::rmdir", - symlink => "ID3FS::Fuse::symlink", - rename => "ID3FS::Fuse::rename", - link => "ID3FS::Fuse::link", - chmod => "ID3FS::Fuse::chmod", - chown => "ID3FS::Fuse::chown", - truncate => "ID3FS::Fuse::truncate", - utime => "ID3FS::Fuse::utime", - open => "ID3FS::Fuse::open", - read => "ID3FS::Fuse::read", - write => "ID3FS::Fuse::write", - statfs => "ID3FS::Fuse::statfs", - release => "ID3FS::Fuse::release", - fsync => "ID3FS::Fuse::fsync", - setxattr => "ID3FS::Fuse::setxattr", - getxattr => "ID3FS::Fuse::getxattr", - listxattr => "ID3FS::Fuse::listxattr", - removexattr => "ID3FS::Fuse::removexattr", threaded=>0, debug => 1, + getattr => "ID3FS::Fuse::getattr", +# readlink => "ID3FS::Fuse::readlink", + getdir => "ID3FS::Fuse::getdir", +# mknod => "ID3FS::Fuse::mknod", +# mkdir => "ID3FS::Fuse::mkdir", +# unlink => "ID3FS::Fuse::unlink", +# rmdir => "ID3FS::Fuse::rmdir", +# symlink => "ID3FS::Fuse::symlink", +# rename => "ID3FS::Fuse::rename", +# link => "ID3FS::Fuse::link", +# chmod => "ID3FS::Fuse::chmod", +# chown => "ID3FS::Fuse::chown", +# truncate => "ID3FS::Fuse::truncate", +# utime => "ID3FS::Fuse::utime", +# open => "ID3FS::Fuse::open", +# read => "ID3FS::Fuse::read", +# write => "ID3FS::Fuse::write", +# statfs => "ID3FS::Fuse::statfs", +# release => "ID3FS::Fuse::release", +# fsync => "ID3FS::Fuse::fsync", +# setxattr => "ID3FS::Fuse::setxattr", +# getxattr => "ID3FS::Fuse::getxattr", +# listxattr => "ID3FS::Fuse::listxattr", +# removexattr => "ID3FS::Fuse::removexattr", ); +} +sub getattr +{ + my($filename)=@_; + print "GETATTR: $filename\n"; + my($dev,$ino,$nlink)=(0,0,1); + my($uid,$gid)=(1000,1000); + my($rdev,$size)=(0,1); + my($atime,$mtime,$ctime)=(0,0,0); + my($blksize,$blocks)=(512,1); + my $mode=(0040 << 9) | 0755; + return($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks); +} + +sub readlink { print "readlink\n"; return "FIXME"; } + +sub getdir +{ + my($filename)=@_; + print "GETDIR: $filename\n"; + return('.',0); } -sub getattr { return -ENOENT(); } -sub readlink { return "FIXME"; } -sub getdir { return(0); } -sub mknod { return -EINVAL(); } -sub mkdir { return -EROFS(); } -sub unlink { return -EINVAL(); } -sub rmdir { return -EROFS(); } -sub symlink { return -EROFS(); } -sub rename { return -EROFS(); } -sub link { return -EROFS(); } -sub chmod { return -EINVAL(); } -sub chown { return -EINVAL(); } -sub truncate { return -EROFS(); } -sub utime { return -EINVAL(); } -sub open { return -EINVAL(); } -sub read { return -EINVAL(); } -sub write { return -EINVAL(); } -sub statfs { return -EINVAL(); } -sub release { return 0; } -sub fsync { return 0; } -sub setxattr { return -EOPNOTSUPP(); } -sub getxattr { return -EOPNOTSUPP(); } -sub listxattr { return -EOPNOTSUPP(); } -sub removexattr { return -EOPNOTSUPP(); } +sub mknod { print "mknod\n"; return -EINVAL(); } +sub mkdir { print "mkdir\n"; return -EROFS(); } +sub unlink { print "unlink\n"; return -EINVAL(); } +sub rmdir { print "rmdir\n"; return -EROFS(); } +sub symlink { print "symlink\n"; return -EROFS(); } +sub rename { print "rename\n"; return -EROFS(); } +sub link { print "link\n"; return -EROFS(); } +sub chmod { print "chmod\n"; return -EINVAL(); } +sub chown { print "chown\n"; return -EINVAL(); } +sub truncate { print "truncate\n"; return -EROFS(); } +sub utime { print "utime\n"; return -EINVAL(); } +sub open { print "open\n"; return -EINVAL(); } +sub read { print "read\n"; return -EINVAL(); } +sub write { print "write\n"; return -EINVAL(); } +sub statfs { print "statfs\n"; return -EINVAL(); } +sub release { print "release\n"; return 0; } +sub fsync { print "fsync\n"; return 0; } +sub setxattr { print "setxattr\n"; return -EOPNOTSUPP(); } +sub getxattr { print "getxattr\n"; return -EOPNOTSUPP(); } +sub listxattr { print "listxattr\n"; return -EOPNOTSUPP(); } +sub removexattr { print "removexattr\n"; return -EOPNOTSUPP(); } 1;