Coda Distributed File System
operations.h
Go to the documentation of this file.
1/* BLURB lgpl
2
3 Coda File System
4 Release 8
5
6 Copyright (c) 1987-2021 Carnegie Mellon University
7 Additional copyrights listed below
8
9This code is distributed "AS IS" without warranty of any kind under
10the terms of the GNU Library General Public Licence Version 2, as
11shown in the file LICENSE. The technical and financial contributors to
12Coda are listed in the file CREDITS.
13
14 Additional copyrights
15 none currently
16
17#*/
18
19#ifndef _OPERATIONS_H_
20#define _OPERATIONS_H_
21
22typedef int (*VCP)(int, VnodeType, void *, void *);
23
24int ValidateParms(RPC2_Handle, ClientEntry **, int *ReplicatedOp, VolumeId *,
25 RPC2_CountedBS *, int *Nservers);
26int AllocVnode(Vnode **, Volume *, ViceDataType, ViceFid *, ViceFid *, UserId,
28int CheckFetchSemantics(ClientEntry *, Vnode **, Vnode **, Volume **, Rights *,
29 Rights *);
31 Rights *, Rights *);
32int CheckGetACLSemantics(ClientEntry *, Vnode **, Volume **, Rights *, Rights *,
34int CheckStoreSemantics(ClientEntry *, Vnode **, Vnode **, Volume **, int, VCP,
35 ViceVersionVector *, FileVersion, Rights *, Rights *);
37 VCP, RPC2_Integer, Date_t, UserId, RPC2_Unsigned,
38 RPC2_Integer, ViceVersionVector *, FileVersion,
39 Rights *, Rights *);
41 ViceVersionVector *, FileVersion, Rights *, Rights *,
43int CheckCreateSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **,
44 int, VCP, void *, void *, Rights *, Rights *, int = 1);
45int CheckRemoveSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **,
46 int, VCP, void *, void *, Rights *, Rights *, int = 1);
47int CheckLinkSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **,
48 int, VCP, void *, void *, Rights *, Rights *, int = 1);
49int CheckRenameSemantics(ClientEntry *, Vnode **, Vnode **, Vnode **, char *,
50 Vnode **, char *, Volume **, int, VCP, void *, void *,
51 void *, void *, Rights *, Rights *, Rights *, Rights *,
52 Rights *, Rights *, int = 1, int = 0,
54int CheckMkdirSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **,
55 int, VCP, void *, void *, Rights *, Rights *, int = 1);
56int CheckRmdirSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **,
57 int, VCP, void *, void *, Rights *, Rights *, int = 1);
58int CheckSymlinkSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **,
59 int, VCP, void *, void *, Rights *, Rights *,
60 int = 1);
63 RPC2_Unsigned Offset, RPC2_Integer Count,
64 ViceVersionVector *VV);
68void PerformStore(ClientEntry *, VolumeId, Volume *, Vnode *, Inode, int,
69 RPC2_Integer, Date_t, ViceStoreId *, RPC2_Integer * = NULL);
72void PerformSetAttr(ClientEntry *, VolumeId, Volume *, Vnode *, int,
73 RPC2_Integer, Date_t, UserId, RPC2_Unsigned, RPC2_Integer,
74 ViceStoreId *, Inode *, RPC2_Integer * = NULL);
75void PerformSetACL(ClientEntry *, VolumeId, Volume *, Vnode *, int,
76 ViceStoreId *, AL_AccessList *, RPC2_Integer * = NULL);
77int PerformCreate(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *,
78 Date_t, RPC2_Unsigned, int, ViceStoreId *, DirInode **, int *,
79 RPC2_Integer * = NULL);
80void PerformRemove(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *,
81 Date_t, int, ViceStoreId *, DirInode **, int *,
82 RPC2_Integer * = NULL);
83int PerformLink(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *,
84 Date_t, int, ViceStoreId *, DirInode **, int *,
85 RPC2_Integer * = NULL);
86void PerformRename(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, Vnode *,
87 Vnode *, char *, char *, Date_t, int, ViceStoreId *,
88 DirInode **, DirInode **, DirInode **, int * = NULL,
89 RPC2_Integer * = NULL);
90int PerformMkdir(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *,
91 Date_t, RPC2_Unsigned, int, ViceStoreId *, DirInode **, int *,
92 RPC2_Integer * = NULL);
93void PerformRmdir(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *,
94 Date_t, int, ViceStoreId *, DirInode **, int *,
95 RPC2_Integer * = NULL);
96int PerformSymlink(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *,
97 Inode, RPC2_Unsigned, Date_t, RPC2_Unsigned, int,
98 ViceStoreId *, DirInode **, int *, RPC2_Integer * = NULL);
99void PerformSetQuota(ClientEntry *, VolumeId, Volume *, Vnode *, ViceFid *, int,
100 int, ViceStoreId *);
101
102void PutObjects(int, Volume *, int, dlist *, int, int,
103 int = 0) EXCLUDES_TRANSACTION;
104
105void SpoolRenameLogRecord(int, vle *, vle *, vle *, vle *, Volume *, char *,
106 char *, ViceStoreId *);
107
108#endif /* _OPERATIONS_H_ */
Definition: dlist.h:50
#define EXCLUDES_TRANSACTION
Definition: coda_tsa.h:108
int VnodeType
Definition: cvnode.h:51
int CheckLinkSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **, int, VCP, void *, void *, Rights *, Rights *, int=1)
Definition: srvproc.cc:1607
int CheckSymlinkSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **, int, VCP, void *, void *, Rights *, Rights *, int=1)
Definition: srvproc.cc:1963
int PerformMkdir(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *, Date_t, RPC2_Unsigned, int, ViceStoreId *, DirInode **, int *, RPC2_Integer *=NULL)
int CheckRenameSemantics(ClientEntry *, Vnode **, Vnode **, Vnode **, char *, Vnode **, char *, Volume **, int, VCP, void *, void *, void *, void *, Rights *, Rights *, Rights *, Rights *, Rights *, Rights *, int=1, int=0, dlist *=NULL) EXCLUDES_TRANSACTION
Definition: srvproc.cc:1617
int ValidateParms(RPC2_Handle, ClientEntry **, int *ReplicatedOp, VolumeId *, RPC2_CountedBS *, int *Nservers)
Definition: srvproc.cc:1036
int PerformSymlink(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *, Inode, RPC2_Unsigned, Date_t, RPC2_Unsigned, int, ViceStoreId *, DirInode **, int *, RPC2_Integer *=NULL)
int CheckMkdirSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **, int, VCP, void *, void *, Rights *, Rights *, int=1)
Definition: srvproc.cc:1943
void PerformGetACL(ClientEntry *, Volume *, Vnode *, RPC2_BoundedBS *, RPC2_String)
Definition: srvproc.cc:2458
void PerformSetAttr(ClientEntry *, VolumeId, Volume *, Vnode *, int, RPC2_Integer, Date_t, UserId, RPC2_Unsigned, RPC2_Integer, ViceStoreId *, Inode *, RPC2_Integer *=NULL)
Definition: srvproc.cc:2582
int FetchBulkTransfer(RPC2_Handle, ClientEntry *, Volume *, Vnode *, RPC2_Unsigned Offset, RPC2_Integer Count, ViceVersionVector *VV)
Definition: srvproc.cc:2231
int CheckFetchSemantics(ClientEntry *, Vnode **, Vnode **, Volume **, Rights *, Rights *)
Definition: srvproc.cc:1161
void PerformSetACL(ClientEntry *, VolumeId, Volume *, Vnode *, int, ViceStoreId *, AL_AccessList *, RPC2_Integer *=NULL)
Definition: srvproc.cc:2628
int CheckCreateSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **, int, VCP, void *, void *, Rights *, Rights *, int=1)
Definition: srvproc.cc:1587
int CheckStoreSemantics(ClientEntry *, Vnode **, Vnode **, Volume **, int, VCP, ViceVersionVector *, FileVersion, Rights *, Rights *)
Definition: srvproc.cc:1321
int CheckRmdirSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **, int, VCP, void *, void *, Rights *, Rights *, int=1)
Definition: srvproc.cc:1953
int CheckGetAttrSemantics(ClientEntry *, Vnode **, Vnode **, Volume **, Rights *, Rights *)
Definition: srvproc.cc:1221
int PerformLink(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *, Date_t, int, ViceStoreId *, DirInode **, int *, RPC2_Integer *=NULL)
void PerformGetAttr(ClientEntry *, Volume *, Vnode *)
Definition: srvproc.cc:2453
void PerformFetch(ClientEntry *, Volume *, Vnode *)
Definition: srvproc.cc:2226
int CheckSetAttrSemantics(ClientEntry *, Vnode **, Vnode **, Volume **, int, VCP, RPC2_Integer, Date_t, UserId, RPC2_Unsigned, RPC2_Integer, ViceVersionVector *, FileVersion, Rights *, Rights *)
Definition: srvproc.cc:1382
int CheckGetACLSemantics(ClientEntry *, Vnode **, Volume **, Rights *, Rights *, RPC2_BoundedBS *, RPC2_String *)
Definition: srvproc.cc:1259
int CheckRemoveSemantics(ClientEntry *, Vnode **, Vnode **, char *, Volume **, int, VCP, void *, void *, Rights *, Rights *, int=1)
Definition: srvproc.cc:1597
int AllocVnode(Vnode **, Volume *, ViceDataType, ViceFid *, ViceFid *, UserId, int *) EXCLUDES_TRANSACTION
Definition: srvproc.cc:1089
int CheckSetACLSemantics(ClientEntry *, Vnode **, Volume **, int, VCP, ViceVersionVector *, FileVersion, Rights *, Rights *, RPC2_CountedBS *, AL_AccessList **)
Definition: srvproc.cc:1513
int PerformCreate(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *, Date_t, RPC2_Unsigned, int, ViceStoreId *, DirInode **, int *, RPC2_Integer *=NULL)
void PerformRmdir(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *, Date_t, int, ViceStoreId *, DirInode **, int *, RPC2_Integer *=NULL)
void PerformStore(ClientEntry *, VolumeId, Volume *, Vnode *, Inode, int, RPC2_Integer, Date_t, ViceStoreId *, RPC2_Integer *=NULL)
Definition: srvproc.cc:2465
void SpoolRenameLogRecord(int, vle *, vle *, vle *, vle *, Volume *, char *, char *, ViceStoreId *)
void PerformRename(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, Vnode *, Vnode *, char *, char *, Date_t, int, ViceStoreId *, DirInode **, DirInode **, DirInode **, int *=NULL, RPC2_Integer *=NULL)
void PerformRemove(ClientEntry *, VolumeId, Volume *, Vnode *, Vnode *, char *, Date_t, int, ViceStoreId *, DirInode **, int *, RPC2_Integer *=NULL)
void PerformSetQuota(ClientEntry *, VolumeId, Volume *, Vnode *, ViceFid *, int, int, ViceStoreId *)
Definition: srvproc2.cc:392
int(* VCP)(int, VnodeType, void *, void *)
Definition: operations.h:22
void PutObjects(int, Volume *, int, dlist *, int, int, int=0) EXCLUDES_TRANSACTION
Definition: srvproc.cc:3219
int StoreBulkTransfer(RPC2_Handle, ClientEntry *, Volume *, Vnode *, Inode, RPC2_Integer)
Definition: srvproc.cc:2495
int32_t RPC2_Integer
Definition: rpc2.h:297
uint32_t RPC2_Unsigned
Definition: rpc2.h:300
RPC2_Integer RPC2_Handle
Definition: rpc2.h:345
RPC2_ByteSeq RPC2_String
Definition: rpc2.h:312
Definition: al.h:48
Definition: srv.h:124
Definition: codadir.h:173
Definition: rpc2.h:324
Definition: rpc2.h:316
Definition: cvnode.h:155
Definition: volume.h:234
Definition: vlist.h:64
#define NULL
Definition: voltypes.h:44
bit32 Inode
Definition: voltypes.h:61