5 use POSIX qw(EINVAL ENOENT EROFS EOPNOTSUPP);
11 my $class=ref($proto) || $proto;
16 $self->{source}=shift;
17 $self->{mountpoint}=shift;
26 mountpoint => $self->{mountpoint},
29 getattr => "ID3FS::Fuse::getattr",
30 # readlink => "ID3FS::Fuse::readlink",
31 getdir => "ID3FS::Fuse::getdir",
32 # mknod => "ID3FS::Fuse::mknod",
33 # mkdir => "ID3FS::Fuse::mkdir",
34 # unlink => "ID3FS::Fuse::unlink",
35 # rmdir => "ID3FS::Fuse::rmdir",
36 # symlink => "ID3FS::Fuse::symlink",
37 # rename => "ID3FS::Fuse::rename",
38 # link => "ID3FS::Fuse::link",
39 # chmod => "ID3FS::Fuse::chmod",
40 # chown => "ID3FS::Fuse::chown",
41 # truncate => "ID3FS::Fuse::truncate",
42 # utime => "ID3FS::Fuse::utime",
43 # open => "ID3FS::Fuse::open",
44 # read => "ID3FS::Fuse::read",
45 # write => "ID3FS::Fuse::write",
46 # statfs => "ID3FS::Fuse::statfs",
47 # release => "ID3FS::Fuse::release",
48 # fsync => "ID3FS::Fuse::fsync",
49 # setxattr => "ID3FS::Fuse::setxattr",
50 # getxattr => "ID3FS::Fuse::getxattr",
51 # listxattr => "ID3FS::Fuse::listxattr",
52 # removexattr => "ID3FS::Fuse::removexattr",
59 print "GETATTR: $filename\n";
60 my($dev,$ino,$nlink)=(0,0,1);
61 my($uid,$gid)=(1000,1000);
62 my($rdev,$size)=(0,1);
63 my($atime,$mtime,$ctime)=(0,0,0);
64 my($blksize,$blocks)=(512,1);
65 my $mode=(0040 << 9) | 0755;
66 return($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
67 $atime,$mtime,$ctime,$blksize,$blocks);
70 sub readlink { print "readlink\n"; return "FIXME"; }
75 print "GETDIR: $filename\n";
79 sub mknod { print "mknod\n"; return -EINVAL(); }
80 sub mkdir { print "mkdir\n"; return -EROFS(); }
81 sub unlink { print "unlink\n"; return -EINVAL(); }
82 sub rmdir { print "rmdir\n"; return -EROFS(); }
83 sub symlink { print "symlink\n"; return -EROFS(); }
84 sub rename { print "rename\n"; return -EROFS(); }
85 sub link { print "link\n"; return -EROFS(); }
86 sub chmod { print "chmod\n"; return -EINVAL(); }
87 sub chown { print "chown\n"; return -EINVAL(); }
88 sub truncate { print "truncate\n"; return -EROFS(); }
89 sub utime { print "utime\n"; return -EINVAL(); }
90 sub open { print "open\n"; return -EINVAL(); }
91 sub read { print "read\n"; return -EINVAL(); }
92 sub write { print "write\n"; return -EINVAL(); }
93 sub statfs { print "statfs\n"; return -EINVAL(); }
94 sub release { print "release\n"; return 0; }
95 sub fsync { print "fsync\n"; return 0; }
96 sub setxattr { print "setxattr\n"; return -EOPNOTSUPP(); }
97 sub getxattr { print "getxattr\n"; return -EOPNOTSUPP(); }
98 sub listxattr { print "listxattr\n"; return -EOPNOTSUPP(); }
99 sub removexattr { print "removexattr\n"; return -EOPNOTSUPP(); }