f65916364e47d6030aa8db27801156673e90a4f5
[openafs.git] / src / fsint / afsint.xg
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 /*
11  * afsint.xg:
12  *      Definition of the AFS File Server RPC interface.
13  */
14
15 #include "common.xg"                    /*Common structures & definitions*/
16
17 %#define VICECONNBAD    1234
18 %#define VICETOKENDEAD  1235
19 %#define AFS_LOCKWAIT   (5*60)
20
21 customized struct CBS {
22     afs_int32 SeqLen;
23     char *SeqBody;
24 };
25
26 customized struct BBS {
27     afs_int32 MaxSeqLen;
28     afs_int32 SeqLen;
29     char *SeqBody;
30 };
31
32 customized struct AFSAccessList {
33     afs_int32 MaxSeqLen;
34     afs_int32 SeqLen;
35     char *SeqBody;
36 };
37
38 typedef AFSFid ViceFid;
39
40 typedef afs_int32 ViceDataType;
41
42 %#define Invalid 0
43 %#define File 1 
44 %#define Directory 2 
45 %#define SymbolicLink 3 
46
47 %#ifdef       KERNEL
48 %#define      afs_xdr_array(a,b,c,d,e,f)  afs_xdr_arrayN(a,b,c,d,e,f)
49 %#endif
50
51 struct BD {
52     afs_int32 host;
53     afs_int32 portal;
54     afs_int32 session;
55 };
56
57 struct AFSVolSync {
58     afs_uint32 spare1;
59     afs_uint32 spare2;
60     afs_uint32 spare3;
61     afs_uint32 spare4;
62     afs_uint32 spare5;
63     afs_uint32 spare6;
64 };
65
66 struct AFSOldFetchStatus {
67     afs_uint32 InterfaceVersion;
68     afs_uint32 FileType;
69     afs_uint32 LinkCount;
70     afs_uint32 Length;
71     afs_uint32 DataVersion;
72     afs_uint32 Author;
73     afs_uint32 Owner;
74     afs_uint32 CallerAccess;
75     afs_uint32 AnonymousAccess;
76     afs_uint32 UnixModeBits;
77     afs_uint32 ParentVnode;
78     afs_uint32 ParentUnique;
79     afs_uint32 SegSize;
80     afs_uint32 ClientModTime;
81     afs_uint32 ServerModTime;
82     afs_uint32 Group;
83 };
84
85 struct AFSFetchStatus {
86     afs_uint32 InterfaceVersion;
87     afs_uint32 FileType;
88     afs_uint32 LinkCount;
89     afs_uint32 Length;
90     afs_uint32 DataVersion;
91     afs_uint32 Author;
92     afs_uint32 Owner;
93     afs_uint32 CallerAccess;
94     afs_uint32 AnonymousAccess;
95     afs_uint32 UnixModeBits;
96     afs_uint32 ParentVnode;
97     afs_uint32 ParentUnique;
98     afs_uint32 ResidencyMask;
99     afs_uint32 ClientModTime;
100     afs_uint32 ServerModTime;
101     afs_uint32 Group;
102     afs_uint32 SyncCounter;
103     afs_uint32 dataVersionHigh; /* For AFS/DFS translator, hi bits of dvn */
104     afs_uint32 lockCount;
105     afs_uint32 Length_hi;
106     afs_uint32 errorCode;
107 };
108
109 struct AFSStoreStatus {
110     afs_uint32 Mask;    
111     afs_uint32 ClientModTime;
112     afs_uint32 Owner;
113     afs_uint32 Group;
114     afs_uint32 UnixModeBits;
115     afs_uint32 SegSize;
116 };
117
118 %#define        AFS_SETMODTIME  1
119 %#define        AFS_SETOWNER    2
120 %#define        AFS_SETGROUP            4
121 %#define        AFS_SETMODE             8
122 %#define        AFS_SETSEGSIZE  16
123 %#define        AFS_FSYNC       1024
124
125 typedef afs_int32 ViceVolumeType;
126
127 %#define ReadOnly 0
128 %#define ReadWrite 1
129
130
131 struct ViceDisk {
132     afs_int32   BlocksAvailable;
133     afs_int32   TotalBlocks;
134     DiskName    Name;
135 };
136
137 struct ViceStatistics {
138     afs_uint32 CurrentMsgNumber;
139     afs_uint32 OldestMsgNumber;
140     afs_uint32 CurrentTime;
141     afs_uint32 BootTime;
142     afs_uint32 StartTime;
143     afs_int32     CurrentConnections;
144     afs_uint32 TotalViceCalls;
145     afs_uint32 TotalFetchs;
146     afs_uint32 FetchDatas;
147     afs_uint32 FetchedBytes;
148     afs_int32     FetchDataRate;
149     afs_uint32 TotalStores;
150     afs_uint32 StoreDatas;
151     afs_uint32 StoredBytes;
152     afs_int32     StoreDataRate;
153     afs_uint32 TotalRPCBytesSent;
154     afs_uint32 TotalRPCBytesReceived;
155     afs_uint32 TotalRPCPacketsSent;
156     afs_uint32 TotalRPCPacketsReceived;
157     afs_uint32 TotalRPCPacketsLost;
158     afs_uint32 TotalRPCBogusPackets;
159     afs_int32     SystemCPU;
160     afs_int32     UserCPU;
161     afs_int32     NiceCPU;
162     afs_int32     IdleCPU;
163     afs_int32     TotalIO;
164     afs_int32     ActiveVM;
165     afs_int32     TotalVM;
166     afs_int32     EtherNetTotalErrors;
167     afs_int32     EtherNetTotalWrites;
168     afs_int32     EtherNetTotalInterupts;
169     afs_int32     EtherNetGoodReads;
170     afs_int32     EtherNetTotalBytesWritten;
171     afs_int32     EtherNetTotalBytesRead;
172     afs_int32     ProcessSize;
173     afs_int32     WorkStations;
174     afs_int32     ActiveWorkStations;
175     afs_int32     Spare1;
176     afs_int32     Spare2;
177     afs_int32     Spare3;
178     afs_int32     Spare4;
179     afs_int32     Spare5;
180     afs_int32     Spare6;
181     afs_int32     Spare7;
182     afs_int32     Spare8;
183     ViceDisk      Disk1;
184     ViceDisk      Disk2;
185     ViceDisk      Disk3;
186     ViceDisk      Disk4;
187     ViceDisk      Disk5;
188     ViceDisk      Disk6;
189     ViceDisk      Disk7;
190     ViceDisk      Disk8;
191     ViceDisk      Disk9;
192     ViceDisk      Disk10;
193 };
194
195 struct VolumeStatus {
196     afs_int32 Vid;
197     afs_int32 ParentId;
198     char Online;
199     char InService;
200     char Blessed;
201     char NeedsSalvage;
202     afs_int32 Type;
203     afs_int32 MinQuota;
204     afs_int32 MaxQuota;
205     afs_int32 BlocksInUse;
206     afs_int32 PartBlocksAvail;
207     afs_int32 PartMaxBlocks;
208 };
209
210 struct AFSFetchVolumeStatus {
211     afs_int32 Vid;
212     afs_int32 ParentId;
213     char Online;
214     char InService;
215     char Blessed;
216     char NeedsSalvage;
217     afs_int32 Type;
218     afs_int32 MinQuota;
219     afs_int32 MaxQuota;
220     afs_int32 BlocksInUse;
221     afs_int32 PartBlocksAvail;
222     afs_int32 PartMaxBlocks;
223 };
224
225 struct AFSStoreVolumeStatus {
226     afs_int32 Mask;
227     afs_int32 MinQuota;
228     afs_int32 MaxQuota;
229 };
230
231 const AFS_SETMINQUOTA = 1;
232 const AFS_SETMAXQUOTA = 2;
233
234 struct AFSVolumeInfo {
235     afs_uint32  Vid;
236     afs_int32      Type;
237     afs_uint32  Type0;
238     afs_uint32  Type1;
239     afs_uint32  Type2;
240     afs_uint32  Type3;
241     afs_uint32  Type4;
242     afs_uint32  ServerCount;
243     afs_uint32  Server0;
244     afs_uint32  Server1;
245     afs_uint32  Server2;
246     afs_uint32  Server3;
247     afs_uint32  Server4;
248     afs_uint32  Server5;
249     afs_uint32  Server6;
250     afs_uint32  Server7;
251     unsigned short Port0;
252     unsigned short Port1;
253     unsigned short Port2;
254     unsigned short Port3;
255     unsigned short Port4;
256     unsigned short Port5;
257     unsigned short Port6;
258     unsigned short Port7;
259 };
260
261 struct VolumeInfo {
262     afs_uint32 Vid;
263     afs_int32     Type;
264     afs_uint32 Type0;
265     afs_uint32 Type1;
266     afs_uint32 Type2;
267     afs_uint32 Type3;
268     afs_uint32 Type4;
269     afs_uint32 ServerCount;
270     afs_uint32 Server0;
271     afs_uint32 Server1;
272     afs_uint32 Server2;
273     afs_uint32 Server3;
274     afs_uint32 Server4;
275     afs_uint32 Server5;
276     afs_uint32 Server6;
277     afs_uint32 Server7;
278 };
279
280 typedef afs_int32 ViceLockType;
281 typedef AFSFetchStatus AFSBulkStats<AFSCBMAX>;
282
283 %#define LockRead               0
284 %#define LockWrite              1
285 %#define LockExtend     2
286 %#define LockRelease    3
287
288 typedef afs_int32 ViceOfflineType;
289
290 %#define NoSalvage 0
291 %#define Salvage 1
292
293 %#define MAXCMDINT64S                           3
294 %#define MAXCMDINT32S                           200
295 %#define MAXCMDCHARS                            256
296 %#define CMD_GETRESIDENCIES                     1
297 %#define CMD_CHANGERESIDENCIES                  2
298 %#define CMD_IMPORTRESIDENCIES                  3
299 %#define CMD_GETEXTVOLATTR                      4
300 %#define CMD_SETEXTVOLATTR                      5
301 %#define CMD_GETACCESSHISTORY                   6
302 %#define CMD_MIGRATEFILE                        7
303 %#define CMD_CHECKHSMMETADATA                   8
304 %#define CMD_FETCHSTATUS                        9
305
306 %#define VOLATTR_DESIREDRESIDENCYMASK           1
307 %#define VOLATTR_UNDESIREDRESIDENCYMASK         2
308 %#define VOLATTR_SETSPECIALACCESSFLAG           4
309 struct ExtendedVolAttrInputs {
310     afs_uint32 Mask;
311     afs_uint32 Volume;
312     afs_uint32 DesiredResidencyMask;
313     afs_uint32 Spare1[10];
314     afs_uint32 UnDesiredResidencyMask;
315     afs_uint32 Spare2[9];
316     afs_uint32 SpecialAccessFlag;
317 };
318
319 struct ExtendedVolAttrOutputs {
320     afs_uint32 DesiredResidencyMask;
321     afs_uint32 Spare1[10];
322     afs_uint32 UnDesiredResidencyMask;
323     afs_uint32 Spare2[9];
324     afs_uint32 SpecialAccessFlag;
325 };
326
327 struct TagsArray {
328     afs_uint32 TagsArray_len;
329     afs_uint32 TagsArray_val[184];
330 };
331
332 struct AccessHistory {
333     afs_uint64 Size;
334     afs_uint32 ModTime;
335     afs_uint32 NonSpoolingFetches;
336     afs_uint32 UserSpoolingFetches;
337     afs_uint32 MigratorSpoolingFetches;
338     afs_uint32 LastUserMigrationEvent;
339     afs_uint32 MigrateMe;
340     afs_uint32 Time0;
341     afs_uint32 Type0;
342     afs_uint32 LocalAccess0;
343     afs_uint32 Residency0;
344     afs_uint32 Time1;
345     afs_uint32 Type1;
346     afs_uint32 LocalAccess1;
347     afs_uint32 Residency1;
348     afs_uint32 Time2;
349     afs_uint32 Type2;
350     afs_uint32 LocalAccess2;
351     afs_uint32 Residency2;
352     afs_uint32 Time3;
353     afs_uint32 Type3;
354     afs_uint32 LocalAccess3;
355     afs_uint32 Residency3;
356     afs_uint32 Time4;
357     afs_uint32 Type4;
358     afs_uint32 LocalAccess4;
359     afs_uint32 Residency4;
360 };
361
362 struct AccessHistoryOld {
363     afs_uint32 Size;
364     afs_uint32 ModTime;
365     afs_uint32 NonSpoolingFetches;
366     afs_uint32 UserSpoolingFetches;
367     afs_uint32 MigratorSpoolingFetches;
368     afs_uint32 LastUserMigrationEvent;
369     afs_uint32 MigrateMe;
370     afs_uint32 Time0;
371     afs_uint32 Type0;
372     afs_uint32 LocalAccess0;
373     afs_uint32 Residency0;
374     afs_uint32 Time1;
375     afs_uint32 Type1;
376     afs_uint32 LocalAccess1;
377     afs_uint32 Residency1;
378     afs_uint32 Time2;
379     afs_uint32 Type2;
380     afs_uint32 LocalAccess2;
381     afs_uint32 Residency2;
382     afs_uint32 Time3;
383     afs_uint32 Type3;
384     afs_uint32 LocalAccess3;
385     afs_uint32 Residency3;
386     afs_uint32 Time4;
387     afs_uint32 Type4;
388     afs_uint32 LocalAccess4;
389     afs_uint32 Residency4;
390 };
391
392 struct ResidencyCmdInputs {
393     afs_int32  command;
394     struct AFSFid fid;
395     afs_int64  int64s[MAXCMDINT64S];
396     afs_uint32 int32s[MAXCMDINT32S];
397     char       chars[MAXCMDCHARS];
398 };
399
400 struct ResidencyCmdOutputs {
401     afs_int32  code;
402     struct AFSFetchStatus status;
403     afs_int64  int64s[MAXCMDINT64S];
404     afs_uint32 int32s[MAXCMDINT32S];
405     char       chars[MAXCMDCHARS];
406 };
407
408 const FLUSHMAX = 10;
409 typedef afs_int32 ViceIds<FLUSHMAX>;
410 typedef afs_int32 IPAddrs<FLUSHMAX>;
411
412 package RXAFS_
413 prefix S
414 statindex 7
415
416 FetchData(
417   IN  AFSFid *Fid,
418   afs_int32 Pos,
419   afs_int32 Length,
420   OUT AFSFetchStatus *OutStatus,
421   AFSCallBack *CallBack,
422   AFSVolSync *Sync
423 ) split = 130;
424
425 FetchACL(
426   IN  AFSFid *Fid,
427   OUT AFSOpaque *AccessList,
428   AFSFetchStatus *OutStatus,
429   AFSVolSync *Sync
430 ) = 131;
431
432 FetchStatus(
433   IN  AFSFid *Fid,
434   OUT AFSFetchStatus *OutStatus,
435   AFSCallBack *CallBack,
436   AFSVolSync *Sync
437 ) = 132;
438
439 StoreData(
440   IN  AFSFid *Fid,
441   AFSStoreStatus *InStatus,
442   afs_uint32 Pos,
443   afs_uint32 Length,
444   afs_uint32 FileLength,
445   OUT AFSFetchStatus *OutStatus,
446   AFSVolSync *Sync
447 ) split = 133;
448
449 StoreACL(
450   IN  AFSFid *Fid,
451   AFSOpaque *AccessList,
452   OUT AFSFetchStatus *OutStatus,
453   AFSVolSync *Sync
454 ) = 134;
455
456 StoreStatus(
457   IN  AFSFid *Fid,
458   AFSStoreStatus *InStatus,
459   OUT AFSFetchStatus *OutStatus,
460   AFSVolSync *Sync
461 ) = 135;
462
463 RemoveFile(
464   IN  AFSFid *DirFid,
465   string Name<AFSNAMEMAX>,
466   OUT AFSFetchStatus *OutStatus,
467   AFSVolSync *Sync
468 ) = 136;
469
470 CreateFile(
471   IN  AFSFid *DirFid,
472   string Name<AFSNAMEMAX>,
473   AFSStoreStatus *InStatus,
474   OUT AFSFid *OutFid,
475   AFSFetchStatus *OutFidStatus,
476   AFSFetchStatus *OutDirStatus,
477   AFSCallBack *CallBack,
478   AFSVolSync *Sync) = 137;
479
480 Rename(
481   IN  AFSFid *OldDirFid,
482   string OldName<AFSNAMEMAX>,
483   AFSFid *NewDirFid,
484   string NewName<AFSNAMEMAX>,
485   OUT AFSFetchStatus *OutOldDirStatus,
486   AFSFetchStatus *OutNewDirStatus,
487   AFSVolSync *Sync
488 ) = 138;
489
490 Symlink(
491   IN  AFSFid *DirFid,
492   string Name<AFSNAMEMAX>,
493   string LinkContents<AFSPATHMAX>,
494   AFSStoreStatus *InStatus,
495   OUT AFSFid *OutFid,
496   AFSFetchStatus *OutFidStatus,
497   AFSFetchStatus *OutDirStatus,
498   AFSVolSync *Sync
499 ) = 139;
500
501 Link(
502   IN  AFSFid *DirFid,
503   string Name<AFSNAMEMAX>,
504   AFSFid *ExistingFid,
505   OUT AFSFetchStatus *OutFidStatus,
506   AFSFetchStatus *OutDirStatus,
507   AFSVolSync *Sync
508 ) = 140;
509
510 MakeDir(
511   IN  AFSFid *DirFid,
512   string Name<AFSNAMEMAX>,
513   AFSStoreStatus *InStatus,
514   OUT AFSFid *OutFid,
515   AFSFetchStatus *OutFidStatus,
516   AFSFetchStatus *OutDirStatus,
517   AFSCallBack *CallBack,
518   AFSVolSync *Sync
519 ) = 141;
520
521 RemoveDir(
522   IN  AFSFid *DirFid,
523   string Name<AFSNAMEMAX>,
524   OUT AFSFetchStatus *OutDirStatus,
525   AFSVolSync *Sync
526 ) = 142;
527
528 OldSetLock(
529   IN  AFSFid *Fid,
530   ViceLockType Type,
531   AFSVolSync *Sync
532 ) = 143;
533
534 OldExtendLock(
535   IN  AFSFid *Fid,
536   AFSVolSync *Sync
537 ) = 144;
538
539 OldReleaseLock(
540   IN  AFSFid *Fid,
541   AFSVolSync *Sync
542 ) = 145;
543
544 GetStatistics(
545   OUT ViceStatistics *Statistics
546 ) = 146;
547
548 GiveUpCallBacks(
549   IN  AFSCBFids *Fids_Array,
550   AFSCBs *CallBacks_Array
551 ) = 147;
552
553 GetVolumeInfo(
554   IN  string VolumeName<AFSNAMEMAX>,
555   OUT VolumeInfo *Volumeinfo
556 ) = 148;
557
558 GetVolumeStatus(
559   IN  afs_int32 Volumeid,
560   OUT AFSFetchVolumeStatus *Volumestatus,
561   string Name<AFSNAMEMAX>,
562   string OfflineMsg<AFSOPAQUEMAX>,
563   string Motd<AFSOPAQUEMAX>
564 ) = 149;
565
566 SetVolumeStatus(
567   IN  afs_int32 Volumeid,
568   AFSStoreVolumeStatus *Volumestatus,
569   string Name<AFSNAMEMAX>,
570   string OfflineMsg<AFSOPAQUEMAX>,
571   string Motd<AFSOPAQUEMAX>
572 ) = 150;
573
574 GetRootVolume(
575   OUT string VolumeName<AFSNAMEMAX>
576 ) = 151;
577
578 CheckToken(
579   IN  afs_int32 ViceId, 
580   AFSOpaque *token
581 ) = 152;
582
583 GetTime(
584   OUT afs_uint32 *Seconds,
585   afs_uint32 *USeconds
586 ) multi = 153;
587
588 NGetVolumeInfo(
589   IN  string VolumeName<AFSNAMEMAX>,
590   OUT AFSVolumeInfo *stuff
591 ) = 154;
592
593 BulkStatus(
594   IN  AFSCBFids *FidsArray,
595   OUT AFSBulkStats *StatArray,
596   AFSCBs *CBArray,
597   AFSVolSync *Sync
598 ) = 155;
599
600 SetLock(
601   IN  AFSFid *Fid,
602   ViceLockType Type,
603   OUT AFSVolSync *Sync
604 ) = 156;
605
606 ExtendLock(
607   IN  AFSFid *Fid,
608   OUT AFSVolSync *Sync
609 ) = 157;
610
611 ReleaseLock(
612   IN  AFSFid *Fid,
613   OUT AFSVolSync *Sync
614 ) = 158;
615
616 XStatsVersion(
617   OUT afs_int32 *versionNumberP
618 ) = 159;
619
620 GetXStats(
621   IN  afs_int32 clientVersionNumber,
622   afs_int32 collectionNumber,
623   OUT afs_int32 *srvVersionNumberP,
624   afs_int32 *timeP,
625   AFS_CollData *dataP
626 ) = 160;
627
628 /* This interface is to supported the AFS/DFS Protocol Translator */
629 Lookup(
630   IN  AFSFid *DirFid,
631   string Name<AFSNAMEMAX>,
632   OUT AFSFid *OutFid,
633   AFSFetchStatus *OutFidStatus,
634   AFSFetchStatus *OutDirStatus,
635   AFSCallBack *CallBack,
636   AFSVolSync *Sync
637 ) = 161;
638
639 FlushCPS(
640   IN  ViceIds *IdsArray,
641   IPAddrs *AddrsArray,
642   afs_int32    spare1,
643   OUT afs_int32    *spare2,
644   afs_int32    *spare3
645 ) = 162;
646
647 DFSSymlink(
648   IN  AFSFid *DirFid,
649   string Name<AFSNAMEMAX>,
650   string LinkContents<AFSPATHMAX>,
651   AFSStoreStatus *InStatus,
652   OUT AFSFid *OutFid,
653   AFSFetchStatus *OutFidStatus,
654   AFSFetchStatus *OutDirStatus,
655   AFSCallBack *CallBack,
656   AFSVolSync *Sync
657 ) = 163;
658
659 ResidencyCmd(
660   IN AFSFid *Fid,
661   IN struct ResidencyCmdInputs *Inputs,
662   OUT struct ResidencyCmdOutputs *Outputs
663 ) = 220;
664
665 InlineBulkStatus(
666   IN  AFSCBFids *FidsArray,
667   OUT AFSBulkStats *StatArray,
668   AFSCBs *CBArray,
669   AFSVolSync *Sync
670 ) = 65536;
671
672 FetchData64(
673   IN  AFSFid *Fid, 
674   afs_int64 Pos, 
675   afs_int64 Length, 
676   OUT AFSFetchStatus *OutStatus, 
677   AFSCallBack *CallBack, 
678   AFSVolSync *Sync
679 ) split = 65537;
680
681 StoreData64(
682   IN  AFSFid *Fid, 
683   AFSStoreStatus *InStatus, 
684   afs_uint64 Pos, 
685   afs_uint64 Length, 
686   afs_uint64 FileLength, 
687   OUT AFSFetchStatus *OutStatus, 
688   AFSVolSync *Sync
689 ) split = 65538;
690
691 GiveUpAllCallBacks(
692 ) multi = 65539;
693
694 GetCapabilities(
695   Capabilities *capabilities
696 ) multi = 65540;
697
698 CallBackRxConnAddr(
699   IN afs_int32 *addr
700 ) = 65541;
701
702 %#define STATS64_CURRENTTIME 0
703 %#define STATS64_BOOTTIME 1
704 %#define STATS64_STARTTIME 2
705 %#define STATS64_CURRENTCONNECTIONS 3
706 %#define STATS64_TOTALFETCHES 4
707 %#define STATS64_FETCHDATAS 5
708 %#define STATS64_FETCHEDBYTES 6
709 %#define STATS64_FETCHDATARATE 7
710 %#define STATS64_TOTALSTORES 8
711 %#define STATS64_STOREDATAS 9
712 %#define STATS64_STOREDBYTES 10
713 %#define STATS64_STOREDATARATE 11
714 %#define STATS64_TOTALVICECALLS 12
715 %#define STATS64_WORKSTATIONS 13
716 %#define STATS64_ACTIVEWORKSTATIONS 14
717 %#define STATS64_PROCESSSIZE 15
718
719 const STATS64_VERSION = 16;
720 typedef afs_uint64 ViceStatistics64<STATS64_VERSION>;
721
722 /* the "version" is a number representing the number of 
723    array elements to return, from 0 to N-1 */
724
725 GetStatistics64(
726     IN afs_int32 statsVersion,
727     OUT ViceStatistics64 *Statistics
728 ) = 65542;
729
730 /* rx osd. put here now to hold version numbers.
731 ServerPath(
732   IN  AFSFid *Fid,
733   afs_int32 writing,
734   OUT FilePath *NameiInfo,
735   AFSFetchStatus *OutStatus,
736   AFSCallBack *CallBack
737 ) = 65551;
738
739 PerfTest(
740   IN  afs_int32 type,
741   afs_int64 bytes,
742   afs_int32 bufsize
743 ) split = 65552;
744
745 GetOSDlocation(
746   IN AFSFid *Fid,
747   afs_uint64 offset,
748   afs_uint64 length,
749   afs_int32 flag,
750   afsUUID uuid,
751   OUT AFSFetchStatus *OutStatus,
752   AFSCallBack *CallBack,
753   struct osd_file *osd
754 ) = 65557;
755
756 InverseLookup(
757   IN AFSFid *Fid,
758   afs_uint32 parent,
759   OUT struct afs_filename *file,
760   afs_uint32 *nextparent
761 ) = 65558;
762
763 CheckOSDconns() = 65559;
764
765 OsdPolicy(IN AFSFid *Fid,
766   afs_uint64 length,
767   OUT afs_uint32 *protocol
768 ) = 65560;
769
770 SetOsdFileReady(
771   IN AFSFid *Fid
772 ) = 65561;
773
774 GetOsdMetadata(
775   IN AFSFid *Fid
776 ) split = 65562;
777 */