2 * Copyright 2000, International Business Machines Corporation and others.
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
10 #ifndef AFS_SRC_VOLSER_INTERNAL_H
11 #define AFS_SRC_VOLSER_INTERNAL_H
14 extern void Log(const char *, ...) AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
15 extern void InitErrTabs(void);
18 extern afs_int32 split_volume(struct rx_call *, Volume *, Volume *,
19 afs_uint32, afs_int32);
22 extern struct volser_trans *FindTrans(afs_int32);
23 extern struct volser_trans *NewTrans(afs_uint32, afs_int32);
24 extern struct volser_trans *TransList(void);
25 extern afs_int32 DeleteTrans(struct volser_trans *atrans, afs_int32 lock);
26 extern afs_int32 TRELE (struct volser_trans *);
29 extern int VPFullUnlock(void);
32 extern afs_int32 GCTrans(void);
37 extern int PrintError(char *msg, afs_int32 errcode);
38 extern void init_volintInfo(struct volintInfo *vinfo);
39 extern void SubEnumerateEntryU(struct uvldbentry *entry);
40 extern void EnumerateEntryU(struct uvldbentry *entry);
41 extern void SubEnumerateEntry(struct nvldbentry *entry);
42 extern void EnumerateEntry(struct nvldbentry *entry);
43 extern int UV_NukeVolume(afs_uint32 server, afs_int32 partid, afs_uint32 volid);
44 extern int UV_PartitionInfo64(afs_uint32 server, char *pname,
45 struct diskPartition64 *partition);
46 extern int UV_CreateVolume2(afs_uint32 aserver, afs_int32 apart, char *aname,
47 afs_int32 aquota, afs_int32 aspare1,
48 afs_int32 aspare2, afs_int32 aspare3,
49 afs_int32 aspare4, afs_uint32 * anewid);
50 extern int UV_CreateVolume3(afs_uint32 aserver, afs_int32 apart, char *aname,
51 afs_int32 aquota, afs_int32 aspare1,
52 afs_int32 aspare2, afs_int32 aspare3,
53 afs_int32 aspare4, afs_uint32 * anewid,
54 afs_uint32 * aroid, afs_uint32 * abkid);
55 extern int UV_AddVLDBEntry(afs_uint32 aserver, afs_int32 apart, char *aname,
57 extern int UV_MoveVolume(afs_uint32 afromvol, afs_uint32 afromserver,
58 afs_int32 afrompart, afs_uint32 atoserver,
60 extern int UV_MoveVolume2(afs_uint32 afromvol, afs_uint32 afromserver,
61 afs_int32 afrompart, afs_uint32 atoserver,
62 afs_int32 atopart, int flags);
63 extern int UV_BackupVolume(afs_uint32 aserver, afs_int32 apart,
65 extern int UV_ReleaseVolume(afs_uint32 afromvol, afs_uint32 afromserver,
66 afs_int32 afrompart, int forceflag);
67 extern int UV_DumpVolume(afs_uint32 afromvol, afs_uint32 afromserver,
68 afs_int32 afrompart, afs_int32 fromdate,
69 afs_int32(*DumpFunction) (struct rx_call *, void *),
70 void *rock, afs_int32 flags);
71 extern int UV_RestoreVolume2(afs_uint32 toserver, afs_int32 topart,
72 afs_uint32 tovolid, afs_uint32 toparentid,
73 char tovolname[], int flags,
74 afs_int32(*WriteData) (struct rx_call *, void *),
76 extern int UV_LockRelease(afs_uint32 volid);
77 extern int UV_AddSite(afs_uint32 server, afs_int32 part, afs_uint32 volid,
79 extern int UV_AddSite2(afs_uint32 server, afs_int32 part, afs_uint32 volid,
80 afs_uint32 rovolid, afs_int32 valid);
81 extern int UV_RemoveSite(afs_uint32 server, afs_int32 part, afs_uint32 volid);
82 extern int UV_ChangeLocation(afs_uint32 server, afs_int32 part,
84 extern int UV_ListPartitions(afs_uint32 aserver, struct partList *ptrPartList,
86 extern int UV_ZapVolumeClones(afs_uint32 aserver, afs_int32 apart,
87 struct volDescription *volPtr,
89 extern int UV_GenerateVolumeClones(afs_uint32 aserver, afs_int32 apart,
90 struct volDescription *volPtr,
92 extern int UV_ListVolumes(afs_uint32 aserver, afs_int32 apart, int all,
93 struct volintInfo **resultPtr, afs_int32 * size);
94 extern int UV_XListVolumes(afs_uint32 a_serverID, afs_int32 a_partID,
95 int a_all, struct volintXInfo **a_resultPP,
96 afs_int32 * a_numEntsInResultP);
97 extern int UV_XListOneVolume(afs_uint32 a_serverID, afs_int32 a_partID,
99 struct volintXInfo **a_resultPP);
100 extern int UV_SyncVolume(afs_uint32 aserver, afs_int32 apart, char *avolname,
102 extern int UV_SyncVldb(afs_uint32 aserver, afs_int32 apart, int flags,
104 extern int UV_SyncServer(afs_uint32 aserver, afs_int32 apart, int flags,
106 extern int UV_RenameVolume(struct nvldbentry *entry, char oldname[],
108 extern int UV_RenameVolumeU(struct uvldbentry *entry, char oldname[],
110 extern int UV_VolserStatus(afs_uint32 server, transDebugInfo ** rpntr,
112 extern int UV_VolumeZap(afs_uint32 server, afs_int32 part, afs_uint32 volid);
113 extern int UV_SetVolume(afs_uint32 server, afs_int32 partition,
114 afs_uint32 volid, afs_int32 transflag,
115 afs_int32 setflag, int sleeptime);
116 extern int UV_SetVolumeInfo(afs_uint32 server, afs_int32 partition,
117 afs_uint32 volid, volintInfo * infop);
118 extern void MapNetworkToHostU(struct uvldbentry *old, struct uvldbentry *new);
119 extern void MapNetworkToHost(struct nvldbentry *old, struct nvldbentry *new);
120 extern int UV_CopyVolume2(afs_uint32 afromvol, afs_uint32 afromserver,
121 afs_int32 afrompart, char *atovolname,
122 afs_uint32 atoserver, afs_int32 atopart,
123 afs_uint32 atovolid, int flags);
124 extern int UV_CloneVolume(afs_uint32 aserver, afs_int32 apart, afs_uint32 avolid,
125 afs_uint32 acloneid, char *aname, int flags);
126 extern int UV_DumpClonedVolume(afs_uint32 afromvol, afs_uint32 afromserver,
127 afs_int32 afrompart, afs_int32 fromdate,
128 afs_int32(*DumpFunction)
129 (struct rx_call *, void *),
130 void *rock, afs_int32 flags);
131 extern int UV_GetSize(afs_uint32 afromvol, afs_uint32 afromserver,
132 afs_int32 afrompart, afs_int32 fromdate,
133 struct volintSize *vol_size);
136 extern int noresolve;