netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
vfs.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2004 Didier Gautheron
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18 vfs layer for afp
19*/
20
21#ifndef ATALK_VFS_H
22#define ATALK_VFS_H
23
24#ifdef HAVE_CONFIG_H
25#include "config.h"
26#endif /* HAVE_CONFIG_H */
27
28#include <atalk/acl.h>
29#include <atalk/adouble.h>
30#include <atalk/volume.h>
31
32#define VFS_FUNC_ARGS_VALIDUPATH const struct vol *vol _U_, const char *name
33#define VFS_FUNC_VARS_VALIDUPATH vol, name
34
35#define VFS_FUNC_ARGS_CHOWN const struct vol *vol, const char *path, uid_t uid, gid_t gid
36#define VFS_FUNC_VARS_CHOWN vol, path, uid, gid
37
38#define VFS_FUNC_ARGS_RENAMEDIR const struct vol *vol _U_, int dirfd _U_, const char *oldpath _U_, const char *newpath _U_
39#define VFS_FUNC_VARS_RENAMEDIR vol, dirfd, oldpath, newpath
40
41#define VFS_FUNC_ARGS_DELETECURDIR const struct vol *vol
42#define VFS_FUNC_VARS_DELETECURDIR vol
43
44#define VFS_FUNC_ARGS_SETFILEMODE const struct vol *vol, const char *name, mode_t mode, struct stat *st _U_
45#define VFS_FUNC_VARS_SETFILEMODE vol, name, mode, st
46
47#define VFS_FUNC_ARGS_SETDIRMODE const struct vol *vol _U_, const char *name _U_, mode_t mode _U_, struct stat *st _U_
48#define VFS_FUNC_VARS_SETDIRMODE vol, name, mode, st
49
50#define VFS_FUNC_ARGS_SETDIRUNIXMODE const struct vol *vol _U_, const char *name _U_, mode_t mode _U_, struct stat *st _U_
51#define VFS_FUNC_VARS_SETDIRUNIXMODE vol, name, mode, st
52
53#define VFS_FUNC_ARGS_SETDIROWNER const struct vol *vol _U_, const char *name _U_, uid_t uid _U_, gid_t gid _U_
54#define VFS_FUNC_VARS_SETDIROWNER vol, name, uid, gid
55
56#define VFS_FUNC_ARGS_DELETEFILE const struct vol *vol, int dirfd, const char *file
57#define VFS_FUNC_VARS_DELETEFILE vol, dirfd, file
58
59#define VFS_FUNC_ARGS_RENAMEFILE const struct vol *vol, int dirfd, const char *src, const char *dst
60#define VFS_FUNC_VARS_RENAMEFILE vol, dirfd, src, dst
61
62#define VFS_FUNC_ARGS_COPYFILE const struct vol *vol _U_, int sfd, const char *src, const char *dst
63#define VFS_FUNC_VARS_COPYFILE vol, sfd, src, dst
64
65#ifdef HAVE_NFSV4_ACLS
66#define VFS_FUNC_ARGS_ACL const struct vol *vol, const char *path, int cmd, int count, void *aces
67#define VFS_FUNC_VARS_ACL vol, path, cmd, count, aces
68#endif
69#ifdef HAVE_POSIX_ACLS
70#define VFS_FUNC_ARGS_ACL const struct vol *vol, const char *path, acl_type_t type, int count, acl_t acl
71#define VFS_FUNC_VARS_ACL vol, path, type, count, acl
72#endif
73
74#define VFS_FUNC_ARGS_REMOVE_ACL const struct vol *vol, const char *path, int dir
75#define VFS_FUNC_VARS_REMOVE_ACL vol, path, dir
76
77#define VFS_FUNC_ARGS_EA_GETSIZE const struct vol * restrict vol, char * restrict rbuf, size_t * restrict rbuflen, const char * restrict uname, int oflag _U_, const char * restrict attruname, int fd _U_
78#define VFS_FUNC_VARS_EA_GETSIZE vol, rbuf, rbuflen, uname, oflag, attruname, fd
79
80#define VFS_FUNC_ARGS_EA_GETCONTENT const struct vol * restrict vol, char * restrict rbuf, size_t * restrict rbuflen, const char * restrict uname, int oflag _U_, const char * restrict attruname, int maxreply, int fd
81#define VFS_FUNC_VARS_EA_GETCONTENT vol, rbuf, rbuflen, uname, oflag, attruname, maxreply, fd
82
83#define VFS_FUNC_ARGS_EA_LIST const struct vol * restrict vol, char * restrict attrnamebuf, size_t * restrict buflen, const char * restrict uname, int oflag _U_, int fd _U_
84#define VFS_FUNC_VARS_EA_LIST vol, attrnamebuf, buflen, uname, oflag, fd
85
86#define VFS_FUNC_ARGS_EA_SET const struct vol * restrict vol, const char * restrict uname, const char * restrict attruname, const char * restrict ibuf, size_t attrsize, int oflag, int fd _U_
87#define VFS_FUNC_VARS_EA_SET vol, uname, attruname, ibuf, attrsize, oflag, fd
88
89#define VFS_FUNC_ARGS_EA_REMOVE const struct vol * restrict vol _U_, const char * restrict uname, const char * restrict attruname, int oflag _U_, int fd _U_
90#define VFS_FUNC_VARS_EA_REMOVE vol, uname, attruname, oflag, fd
91
92/*
93 * Forward declaration. We need it because of the circular inclusion of
94 * of vfs.h <-> volume.h.
95 */
96struct vol;
97
124
125extern void initvol_vfs(struct vol *restrict vol);
126
127#endif /* ATALK_VFS_H */
Part of Netatalk's AppleDouble implementatation.
Definition vfs.h:98
int(* vfs_ea_getsize)(VFS_FUNC_ARGS_EA_GETSIZE)
Definition vfs.h:118
int(* vfs_deletefile)(VFS_FUNC_ARGS_DELETEFILE)
Definition vfs.h:107
int(* vfs_ea_list)(VFS_FUNC_ARGS_EA_LIST)
Definition vfs.h:120
int(* vfs_deletecurdir)(VFS_FUNC_ARGS_DELETECURDIR)
Definition vfs.h:102
int(* vfs_ea_remove)(VFS_FUNC_ARGS_EA_REMOVE)
Definition vfs.h:122
int(* vfs_copyfile)(VFS_FUNC_ARGS_COPYFILE)
Definition vfs.h:109
int(* vfs_validupath)(VFS_FUNC_ARGS_VALIDUPATH)
Definition vfs.h:99
int(* vfs_setdirowner)(VFS_FUNC_ARGS_SETDIROWNER)
Definition vfs.h:106
int(* vfs_ea_set)(VFS_FUNC_ARGS_EA_SET)
Definition vfs.h:121
int(* vfs_ea_getcontent)(VFS_FUNC_ARGS_EA_GETCONTENT)
Definition vfs.h:119
int(* vfs_renamefile)(VFS_FUNC_ARGS_RENAMEFILE)
Definition vfs.h:108
int(* vfs_setdirunixmode)(VFS_FUNC_ARGS_SETDIRUNIXMODE)
Definition vfs.h:105
int(* vfs_setfilmode)(VFS_FUNC_ARGS_SETFILEMODE)
Definition vfs.h:103
int(* vfs_setdirmode)(VFS_FUNC_ARGS_SETDIRMODE)
Definition vfs.h:104
int(* vfs_chown)(VFS_FUNC_ARGS_CHOWN)
Definition vfs.h:100
int(* vfs_renamedir)(VFS_FUNC_ARGS_RENAMEDIR)
Definition vfs.h:101
Definition include/atalk/volume.h:32
#define VFS_FUNC_ARGS_SETDIRMODE
Definition vfs.h:47
void initvol_vfs(struct vol *restrict vol)
#define VFS_FUNC_ARGS_DELETECURDIR
Definition vfs.h:41
#define VFS_FUNC_ARGS_SETFILEMODE
Definition vfs.h:44
#define VFS_FUNC_ARGS_SETDIRUNIXMODE
Definition vfs.h:50
#define VFS_FUNC_ARGS_DELETEFILE
Definition vfs.h:56
#define VFS_FUNC_ARGS_COPYFILE
Definition vfs.h:62
#define VFS_FUNC_ARGS_REMOVE_ACL
Definition vfs.h:74
#define VFS_FUNC_ARGS_EA_REMOVE
Definition vfs.h:89
#define VFS_FUNC_ARGS_CHOWN
Definition vfs.h:35
#define VFS_FUNC_ARGS_EA_LIST
Definition vfs.h:83
#define VFS_FUNC_ARGS_VALIDUPATH
Definition vfs.h:32
#define VFS_FUNC_ARGS_EA_GETSIZE
Definition vfs.h:77
#define VFS_FUNC_ARGS_RENAMEFILE
Definition vfs.h:59
#define VFS_FUNC_ARGS_EA_GETCONTENT
Definition vfs.h:80
#define VFS_FUNC_ARGS_RENAMEDIR
Definition vfs.h:38
#define VFS_FUNC_ARGS_SETDIROWNER
Definition vfs.h:53
#define VFS_FUNC_ARGS_EA_SET
Definition vfs.h:86