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 => sub { $self->getattr(@_); },
30 # readlink => sub { $self->readlink(@_); },
31 getdir => sub { $self->getdir(@_); },
32 # mknod => sub { $self->mknod(@_); },
33 # mkdir => sub { $self->mkdir(@_); },
34 # unlink => sub { $self->unlink(@_); },
35 # rmdir => sub { $self->rmdir(@_); },
36 # symlink => sub { $self->symlink(@_); },
37 # rename => sub { $self->rename(@_); },
38 # link => sub { $self->link(@_); },
39 # chmod => sub { $self->chmod(@_); },
40 # chown => sub { $self->chown(@_); },
41 # truncate => sub { $self->truncate(@_); },
42 # utime => sub { $self->utime(@_); },
43 # open => sub { $self->open(@_); },
44 # read => sub { $self->read(@_); },
45 # write => sub { $self->write(@_); },
46 # statfs => sub { $self->statfs(@_); },
47 # release => sub { $self->release(@_); },
48 # fsync => sub { $self->fsync(@_); },
49 # setxattr => sub { $self->setxattr(@_); },
50 # getxattr => sub { $self->getxattr(@_); },
51 # listxattr => sub { $self->listxattr(@_); },
52 # removexattr => sub { $self->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"; }
74 my($self, $filename)=@_;
75 print "GETDIR(", ref($self), ": $filename\n";
78 return(".", "..", $self->{db}->tags(), 0);
83 sub mknod { print "mknod\n"; return -EINVAL(); }
84 sub mkdir { print "mkdir\n"; return -EROFS(); }
85 sub unlink { print "unlink\n"; return -EINVAL(); }
86 sub rmdir { print "rmdir\n"; return -EROFS(); }
87 sub symlink { print "symlink\n"; return -EROFS(); }
88 sub rename { print "rename\n"; return -EROFS(); }
89 sub link { print "link\n"; return -EROFS(); }
90 sub chmod { print "chmod\n"; return -EINVAL(); }
91 sub chown { print "chown\n"; return -EINVAL(); }
92 sub truncate { print "truncate\n"; return -EROFS(); }
93 sub utime { print "utime\n"; return -EINVAL(); }
94 sub open { print "open\n"; return -EINVAL(); }
95 sub read { print "read\n"; return -EINVAL(); }
96 sub write { print "write\n"; return -EINVAL(); }
97 sub statfs { print "statfs\n"; return -EINVAL(); }
98 sub release { print "release\n"; return 0; }
99 sub fsync { print "fsync\n"; return 0; }
100 sub setxattr { print "setxattr\n"; return -EOPNOTSUPP(); }
101 sub getxattr { print "getxattr\n"; return -EOPNOTSUPP(); }
102 sub listxattr { print "listxattr\n"; return -EOPNOTSUPP(); }
103 sub removexattr { print "removexattr\n"; return -EOPNOTSUPP(); }