vos: vos release -force-reclone option
[openafs.git] / src / volser / volser_internal.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef AFS_SRC_VOLSER_INTERNAL_H
11 #define AFS_SRC_VOLSER_INTERNAL_H
12
13 /* common.c */
14 extern void Abort(const char *, ...) AFS_NORETURN AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
15 extern void Log(const char *, ...) AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
16 extern void InitErrTabs(void);
17
18 /* vol_split.c */
19 extern afs_int32 split_volume(struct rx_call *, Volume *, Volume *,
20                               afs_uint32, afs_int32);
21
22 /* voltrans.c */
23 extern struct volser_trans *FindTrans(afs_int32);
24 extern struct volser_trans *NewTrans(VolumeId, afs_int32);
25 extern struct volser_trans *TransList(void);
26 extern afs_int32 DeleteTrans(struct volser_trans *atrans, afs_int32 lock);
27 extern afs_int32 TRELE (struct volser_trans *);
28
29 /* volprocs.c */
30 extern int VPFullUnlock(void);
31
32 /* voltrans.c */
33 extern afs_int32 GCTrans(void);
34
35 /* vsprocs.c */
36 struct nvldbentry;
37 extern int PrintError(char *msg, afs_int32 errcode);
38 extern void init_volintInfo(struct volintInfo *vinfo);
39 extern void SubEnumerateEntry(struct nvldbentry *entry);
40 extern void EnumerateEntry(struct nvldbentry *entry);
41 extern int UV_NukeVolume(afs_uint32 server, afs_int32 partid, afs_uint32 volid);
42 extern int UV_PartitionInfo64(afs_uint32 server, char *pname,
43                             struct diskPartition64 *partition);
44 extern int UV_CreateVolume2(afs_uint32 aserver, afs_int32 apart, char *aname,
45                             afs_int32 aquota, afs_int32 aspare1,
46                             afs_int32 aspare2, afs_int32 aspare3,
47                             afs_int32 aspare4, afs_uint32 * anewid);
48 extern int UV_CreateVolume3(afs_uint32 aserver, afs_int32 apart, char *aname,
49                             afs_int32 aquota, afs_int32 aspare1,
50                             afs_int32 aspare2, afs_int32 aspare3,
51                             afs_int32 aspare4, afs_uint32 * anewid,
52                             afs_uint32 * aroid, afs_uint32 * abkid);
53 extern int UV_AddVLDBEntry(afs_uint32 aserver, afs_int32 apart, char *aname,
54                            afs_uint32 aid);
55 extern int UV_MoveVolume(afs_uint32 afromvol, afs_uint32 afromserver,
56                          afs_int32 afrompart, afs_uint32 atoserver,
57                          afs_int32 atopart);
58 extern int UV_MoveVolume2(afs_uint32 afromvol, afs_uint32 afromserver,
59                           afs_int32 afrompart, afs_uint32 atoserver,
60                           afs_int32 atopart, int flags);
61 extern int UV_BackupVolume(afs_uint32 aserver, afs_int32 apart,
62                            afs_uint32 avolid);
63 extern int UV_ReleaseVolume(afs_uint32 afromvol, afs_uint32 afromserver,
64                             afs_int32 afrompart, int flags);
65 extern int UV_DumpVolume(afs_uint32 afromvol, afs_uint32 afromserver,
66                          afs_int32 afrompart, afs_int32 fromdate,
67                          afs_int32(*DumpFunction) (struct rx_call *, void *),
68                          void *rock, afs_int32 flags);
69 extern int UV_RestoreVolume2(afs_uint32 toserver, afs_int32 topart,
70                              afs_uint32 tovolid, afs_uint32 toparentid,
71                              char tovolname[], int flags,
72                              afs_int32(*WriteData) (struct rx_call *, void *),
73                              void *rock);
74 extern int UV_LockRelease(afs_uint32 volid);
75 extern int UV_AddSite(afs_uint32 server, afs_int32 part, afs_uint32 volid,
76                       afs_int32 valid);
77 extern int UV_AddSite2(afs_uint32 server, afs_int32 part, afs_uint32 volid,
78                        afs_uint32 rovolid, afs_int32 valid);
79 extern int UV_RemoveSite(afs_uint32 server, afs_int32 part, afs_uint32 volid);
80 extern int UV_ChangeLocation(afs_uint32 server, afs_int32 part,
81                              afs_uint32 volid);
82 extern int UV_ListPartitions(afs_uint32 aserver, struct partList *ptrPartList,
83                              afs_int32 * cntp);
84 extern int UV_ZapVolumeClones(afs_uint32 aserver, afs_int32 apart,
85                               struct volDescription *volPtr,
86                               afs_int32 arraySize);
87 extern int UV_GenerateVolumeClones(afs_uint32 aserver, afs_int32 apart,
88                                    struct volDescription *volPtr,
89                                    afs_int32 arraySize);
90 extern int UV_ListVolumes(afs_uint32 aserver, afs_int32 apart, int all,
91                           struct volintInfo **resultPtr, afs_int32 * size);
92 extern int UV_XListVolumes(afs_uint32 a_serverID, afs_int32 a_partID,
93                            int a_all, struct volintXInfo **a_resultPP,
94                            afs_int32 * a_numEntsInResultP);
95 extern int UV_XListOneVolume(afs_uint32 a_serverID, afs_int32 a_partID,
96                              afs_uint32 a_volID,
97                              struct volintXInfo **a_resultPP);
98 extern int UV_SyncVolume(afs_uint32 aserver, afs_int32 apart, char *avolname,
99                          int flags);
100 extern int UV_SyncVldb(afs_uint32 aserver, afs_int32 apart, int flags,
101                        int force);
102 extern int UV_SyncServer(afs_uint32 aserver, afs_int32 apart, int flags,
103                          int force);
104 extern int UV_RenameVolume(struct nvldbentry *entry, char oldname[],
105                            char newname[]);
106 extern int UV_VolserStatus(afs_uint32 server, transDebugInfo ** rpntr,
107                            afs_int32 * rcount);
108 extern int UV_VolumeZap(afs_uint32 server, afs_int32 part, afs_uint32 volid);
109 extern int UV_SetVolume(afs_uint32 server, afs_int32 partition,
110                         afs_uint32 volid, afs_int32 transflag,
111                         afs_int32 setflag, int sleeptime);
112 extern int UV_SetVolumeInfo(afs_uint32 server, afs_int32 partition,
113                             afs_uint32 volid, volintInfo * infop);
114 extern void MapNetworkToHost(struct nvldbentry *old, struct nvldbentry *new);
115 extern int UV_CopyVolume2(afs_uint32 afromvol, afs_uint32 afromserver,
116                           afs_int32 afrompart, char *atovolname,
117                           afs_uint32 atoserver, afs_int32 atopart,
118                           afs_uint32 atovolid, int flags);
119 extern int UV_CloneVolume(afs_uint32 aserver, afs_int32 apart, afs_uint32 avolid,
120                           afs_uint32 acloneid, char *aname, int flags);
121 extern int UV_DumpClonedVolume(afs_uint32 afromvol, afs_uint32 afromserver,
122                                afs_int32 afrompart, afs_int32 fromdate,
123                                afs_int32(*DumpFunction)
124                                           (struct rx_call *, void *),
125                                void *rock, afs_int32 flags);
126 extern int UV_GetSize(afs_uint32 afromvol, afs_uint32 afromserver,
127                       afs_int32 afrompart, afs_int32 fromdate,
128                       struct volintSize *vol_size);
129 extern int UV_ConvertRO(afs_uint32 server, afs_uint32 partition, afs_uint32 volid,
130                         struct nvldbentry *entry);
131 extern int verbose;
132 extern int noresolve;
133 #endif