4843c396773491326cbd0329f4a8d3354cc02089
[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 %#ifdef KERNEL
294 %#include "../afs/longc_procs.h"
295 %#endif
296
297 %#define MAXCMDINT64S                           3
298 %#define MAXCMDINT32S                           200
299 %#define MAXCMDCHARS                            256
300 %#define CMD_GETRESIDENCIES                     1
301 %#define CMD_CHANGERESIDENCIES                  2
302 %#define CMD_IMPORTRESIDENCIES                  3
303 %#define CMD_GETEXTVOLATTR                      4
304 %#define CMD_SETEXTVOLATTR                      5
305 %#define CMD_GETACCESSHISTORY                   6
306 %#define CMD_MIGRATEFILE                        7
307 %#define CMD_CHECKHSMMETADATA                   8
308 %#define CMD_FETCHSTATUS                        9
309
310 %#define VOLATTR_DESIREDRESIDENCYMASK           1
311 %#define VOLATTR_UNDESIREDRESIDENCYMASK         2
312 %#define VOLATTR_SETSPECIALACCESSFLAG           4
313 struct ExtendedVolAttrInputs {
314     afs_uint32 Mask;
315     afs_uint32 Volume;
316     afs_uint32 DesiredResidencyMask;
317     afs_uint32 Spare1[10];
318     afs_uint32 UnDesiredResidencyMask;
319     afs_uint32 Spare2[9];
320     afs_uint32 SpecialAccessFlag;
321 };
322
323 struct ExtendedVolAttrOutputs {
324     afs_uint32 DesiredResidencyMask;
325     afs_uint32 Spare1[10];
326     afs_uint32 UnDesiredResidencyMask;
327     afs_uint32 Spare2[9];
328     afs_uint32 SpecialAccessFlag;
329 };
330
331 struct TagsArray {
332     afs_uint32 TagsArray_len;
333     afs_uint32 TagsArray_val[184];
334 };
335
336 struct AccessHistory {
337     afs_uint64 Size;
338     afs_uint32 ModTime;
339     afs_uint32 NonSpoolingFetches;
340     afs_uint32 UserSpoolingFetches;
341     afs_uint32 MigratorSpoolingFetches;
342     afs_uint32 LastUserMigrationEvent;
343     afs_uint32 MigrateMe;
344     afs_uint32 Time0;
345     afs_uint32 Type0;
346     afs_uint32 LocalAccess0;
347     afs_uint32 Residency0;
348     afs_uint32 Time1;
349     afs_uint32 Type1;
350     afs_uint32 LocalAccess1;
351     afs_uint32 Residency1;
352     afs_uint32 Time2;
353     afs_uint32 Type2;
354     afs_uint32 LocalAccess2;
355     afs_uint32 Residency2;
356     afs_uint32 Time3;
357     afs_uint32 Type3;
358     afs_uint32 LocalAccess3;
359     afs_uint32 Residency3;
360     afs_uint32 Time4;
361     afs_uint32 Type4;
362     afs_uint32 LocalAccess4;
363     afs_uint32 Residency4;
364 };
365
366 struct AccessHistoryOld {
367     afs_uint32 Size;
368     afs_uint32 ModTime;
369     afs_uint32 NonSpoolingFetches;
370     afs_uint32 UserSpoolingFetches;
371     afs_uint32 MigratorSpoolingFetches;
372     afs_uint32 LastUserMigrationEvent;
373     afs_uint32 MigrateMe;
374     afs_uint32 Time0;
375     afs_uint32 Type0;
376     afs_uint32 LocalAccess0;
377     afs_uint32 Residency0;
378     afs_uint32 Time1;
379     afs_uint32 Type1;
380     afs_uint32 LocalAccess1;
381     afs_uint32 Residency1;
382     afs_uint32 Time2;
383     afs_uint32 Type2;
384     afs_uint32 LocalAccess2;
385     afs_uint32 Residency2;
386     afs_uint32 Time3;
387     afs_uint32 Type3;
388     afs_uint32 LocalAccess3;
389     afs_uint32 Residency3;
390     afs_uint32 Time4;
391     afs_uint32 Type4;
392     afs_uint32 LocalAccess4;
393     afs_uint32 Residency4;
394 };
395
396 struct FsCmdInputs {
397     afs_int32  command;
398     struct AFSFid fid;
399     afs_int64  int64s[MAXCMDINT64S];
400     afs_uint32 int32s[MAXCMDINT32S];
401     char       chars[MAXCMDCHARS];
402 };
403
404 struct FsCmdOutputs {
405     afs_int32  code;
406     struct AFSFetchStatus status;
407     afs_int64  int64s[MAXCMDINT64S];
408     afs_uint32 int32s[MAXCMDINT32S];
409     char       chars[MAXCMDCHARS];
410 };
411
412 const FLUSHMAX = 10;
413 typedef afs_int32 ViceIds<FLUSHMAX>;
414 typedef afs_int32 IPAddrs<FLUSHMAX>;
415
416 package RXAFS_
417 prefix S
418 statindex 7
419
420 FetchData(
421   IN  AFSFid *Fid,
422   afs_int32 Pos,
423   afs_int32 Length,
424   OUT AFSFetchStatus *OutStatus,
425   AFSCallBack *CallBack,
426   AFSVolSync *Sync
427 ) split = 130;
428
429 FetchACL(
430   IN  AFSFid *Fid,
431   OUT AFSOpaque *AccessList,
432   AFSFetchStatus *OutStatus,
433   AFSVolSync *Sync
434 ) = 131;
435
436 FetchStatus(
437   IN  AFSFid *Fid,
438   OUT AFSFetchStatus *OutStatus,
439   AFSCallBack *CallBack,
440   AFSVolSync *Sync
441 ) = 132;
442
443 StoreData(
444   IN  AFSFid *Fid,
445   AFSStoreStatus *InStatus,
446   afs_uint32 Pos,
447   afs_uint32 Length,
448   afs_uint32 FileLength,
449   OUT AFSFetchStatus *OutStatus,
450   AFSVolSync *Sync
451 ) split = 133;
452
453 StoreACL(
454   IN  AFSFid *Fid,
455   AFSOpaque *AccessList,
456   OUT AFSFetchStatus *OutStatus,
457   AFSVolSync *Sync
458 ) = 134;
459
460 StoreStatus(
461   IN  AFSFid *Fid,
462   AFSStoreStatus *InStatus,
463   OUT AFSFetchStatus *OutStatus,
464   AFSVolSync *Sync
465 ) = 135;
466
467 RemoveFile(
468   IN  AFSFid *DirFid,
469   string Name<AFSNAMEMAX>,
470   OUT AFSFetchStatus *OutStatus,
471   AFSVolSync *Sync
472 ) = 136;
473
474 CreateFile(
475   IN  AFSFid *DirFid,
476   string Name<AFSNAMEMAX>,
477   AFSStoreStatus *InStatus,
478   OUT AFSFid *OutFid,
479   AFSFetchStatus *OutFidStatus,
480   AFSFetchStatus *OutDirStatus,
481   AFSCallBack *CallBack,
482   AFSVolSync *Sync) = 137;
483
484 Rename(
485   IN  AFSFid *OldDirFid,
486   string OldName<AFSNAMEMAX>,
487   AFSFid *NewDirFid,
488   string NewName<AFSNAMEMAX>,
489   OUT AFSFetchStatus *OutOldDirStatus,
490   AFSFetchStatus *OutNewDirStatus,
491   AFSVolSync *Sync
492 ) = 138;
493
494 Symlink(
495   IN  AFSFid *DirFid,
496   string Name<AFSNAMEMAX>,
497   string LinkContents<AFSPATHMAX>,
498   AFSStoreStatus *InStatus,
499   OUT AFSFid *OutFid,
500   AFSFetchStatus *OutFidStatus,
501   AFSFetchStatus *OutDirStatus,
502   AFSVolSync *Sync
503 ) = 139;
504
505 Link(
506   IN  AFSFid *DirFid,
507   string Name<AFSNAMEMAX>,
508   AFSFid *ExistingFid,
509   OUT AFSFetchStatus *OutFidStatus,
510   AFSFetchStatus *OutDirStatus,
511   AFSVolSync *Sync
512 ) = 140;
513
514 MakeDir(
515   IN  AFSFid *DirFid,
516   string Name<AFSNAMEMAX>,
517   AFSStoreStatus *InStatus,
518   OUT AFSFid *OutFid,
519   AFSFetchStatus *OutFidStatus,
520   AFSFetchStatus *OutDirStatus,
521   AFSCallBack *CallBack,
522   AFSVolSync *Sync
523 ) = 141;
524
525 RemoveDir(
526   IN  AFSFid *DirFid,
527   string Name<AFSNAMEMAX>,
528   OUT AFSFetchStatus *OutDirStatus,
529   AFSVolSync *Sync
530 ) = 142;
531
532 OldSetLock(
533   IN  AFSFid *Fid,
534   ViceLockType Type,
535   AFSVolSync *Sync
536 ) = 143;
537
538 OldExtendLock(
539   IN  AFSFid *Fid,
540   AFSVolSync *Sync
541 ) = 144;
542
543 OldReleaseLock(
544   IN  AFSFid *Fid,
545   AFSVolSync *Sync
546 ) = 145;
547
548 GetStatistics(
549   OUT ViceStatistics *Statistics
550 ) = 146;
551
552 GiveUpCallBacks(
553   IN  AFSCBFids *Fids_Array,
554   AFSCBs *CallBacks_Array
555 ) = 147;
556
557 GetVolumeInfo(
558   IN  string VolumeName<AFSNAMEMAX>,
559   OUT VolumeInfo *Volumeinfo
560 ) = 148;
561
562 GetVolumeStatus(
563   IN  afs_int32 Volumeid,
564   OUT AFSFetchVolumeStatus *Volumestatus,
565   string Name<AFSNAMEMAX>,
566   string OfflineMsg<AFSOPAQUEMAX>,
567   string Motd<AFSOPAQUEMAX>
568 ) = 149;
569
570 SetVolumeStatus(
571   IN  afs_int32 Volumeid,
572   AFSStoreVolumeStatus *Volumestatus,
573   string Name<AFSNAMEMAX>,
574   string OfflineMsg<AFSOPAQUEMAX>,
575   string Motd<AFSOPAQUEMAX>
576 ) = 150;
577
578 GetRootVolume(
579   OUT string VolumeName<AFSNAMEMAX>
580 ) = 151;
581
582 CheckToken(
583   IN  afs_int32 ViceId, 
584   AFSOpaque *token
585 ) = 152;
586
587 GetTime(
588   OUT afs_uint32 *Seconds,
589   afs_uint32 *USeconds
590 ) multi = 153;
591
592 NGetVolumeInfo(
593   IN  string VolumeName<AFSNAMEMAX>,
594   OUT AFSVolumeInfo *stuff
595 ) = 154;
596
597 BulkStatus(
598   IN  AFSCBFids *FidsArray,
599   OUT AFSBulkStats *StatArray,
600   AFSCBs *CBArray,
601   AFSVolSync *Sync
602 ) = 155;
603
604 SetLock(
605   IN  AFSFid *Fid,
606   ViceLockType Type,
607   OUT AFSVolSync *Sync
608 ) = 156;
609
610 ExtendLock(
611   IN  AFSFid *Fid,
612   OUT AFSVolSync *Sync
613 ) = 157;
614
615 ReleaseLock(
616   IN  AFSFid *Fid,
617   OUT AFSVolSync *Sync
618 ) = 158;
619
620 XStatsVersion(
621   OUT afs_int32 *versionNumberP
622 ) = 159;
623
624 GetXStats(
625   IN  afs_int32 clientVersionNumber,
626   afs_int32 collectionNumber,
627   OUT afs_int32 *srvVersionNumberP,
628   afs_int32 *timeP,
629   AFS_CollData *dataP
630 ) = 160;
631
632 /* This interface is to supported the AFS/DFS Protocol Translator */
633 Lookup(
634   IN  AFSFid *DirFid,
635   string Name<AFSNAMEMAX>,
636   OUT AFSFid *OutFid,
637   AFSFetchStatus *OutFidStatus,
638   AFSFetchStatus *OutDirStatus,
639   AFSCallBack *CallBack,
640   AFSVolSync *Sync
641 ) = 161;
642
643 FlushCPS(
644   IN  ViceIds *IdsArray,
645   IPAddrs *AddrsArray,
646   afs_int32    spare1,
647   OUT afs_int32    *spare2,
648   afs_int32    *spare3
649 ) = 162;
650
651 DFSSymlink(
652   IN  AFSFid *DirFid,
653   string Name<AFSNAMEMAX>,
654   string LinkContents<AFSPATHMAX>,
655   AFSStoreStatus *InStatus,
656   OUT AFSFid *OutFid,
657   AFSFetchStatus *OutFidStatus,
658   AFSFetchStatus *OutDirStatus,
659   AFSCallBack *CallBack,
660   AFSVolSync *Sync
661 ) = 163;
662
663 FsCmd(
664   IN AFSFid *Fid,
665   IN struct FsCmdInputs *Inputs,
666   OUT struct FsCmdOutputs *Outputs
667 ) = 220;
668
669 #ifdef RPC_CLIENT
670 %int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs)
671 %{
672 %  return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs);
673 %}
674 #endif
675
676 InlineBulkStatus(
677   IN  AFSCBFids *FidsArray,
678   OUT AFSBulkStats *StatArray,
679   AFSCBs *CBArray,
680   AFSVolSync *Sync
681 ) = 65536;
682
683 FetchData64(
684   IN  AFSFid *Fid, 
685   afs_int64 Pos, 
686   afs_int64 Length, 
687   OUT AFSFetchStatus *OutStatus, 
688   AFSCallBack *CallBack, 
689   AFSVolSync *Sync
690 ) split = 65537;
691
692 StoreData64(
693   IN  AFSFid *Fid, 
694   AFSStoreStatus *InStatus, 
695   afs_uint64 Pos, 
696   afs_uint64 Length, 
697   afs_uint64 FileLength, 
698   OUT AFSFetchStatus *OutStatus, 
699   AFSVolSync *Sync
700 ) split = 65538;
701
702 GiveUpAllCallBacks(
703 ) multi = 65539;
704
705 GetCapabilities(
706   Capabilities *capabilities
707 ) multi = 65540;
708
709 CallBackRxConnAddr(
710   IN afs_int32 *addr
711 ) = 65541;
712
713 %#define STATS64_CURRENTTIME 0
714 %#define STATS64_BOOTTIME 1
715 %#define STATS64_STARTTIME 2
716 %#define STATS64_CURRENTCONNECTIONS 3
717 %#define STATS64_TOTALFETCHES 4
718 %#define STATS64_FETCHDATAS 5
719 %#define STATS64_FETCHEDBYTES 6
720 %#define STATS64_FETCHDATARATE 7
721 %#define STATS64_TOTALSTORES 8
722 %#define STATS64_STOREDATAS 9
723 %#define STATS64_STOREDBYTES 10
724 %#define STATS64_STOREDATARATE 11
725 %#define STATS64_TOTALVICECALLS 12
726 %#define STATS64_WORKSTATIONS 13
727 %#define STATS64_ACTIVEWORKSTATIONS 14
728 %#define STATS64_PROCESSSIZE 15
729
730 const STATS64_VERSION = 16;
731 typedef afs_uint64 ViceStatistics64<STATS64_VERSION>;
732
733 /* the "version" is a number representing the number of 
734    array elements to return, from 0 to N-1 */
735
736 GetStatistics64(
737     IN afs_int32 statsVersion,
738     OUT ViceStatistics64 *Statistics
739 ) = 65542;
740
741 /* rx osd. put here now to hold version numbers.
742 ServerPath(
743   IN  AFSFid *Fid,
744   afs_int32 writing,
745   OUT FilePath *NameiInfo,
746   AFSFetchStatus *OutStatus,
747   AFSCallBack *CallBack
748 ) = 65551;
749
750 PerfTest(
751   IN  afs_int32 type,
752   afs_int64 bytes,
753   afs_int32 bufsize
754 ) split = 65552;
755
756 GetOSDlocation(
757   IN AFSFid *Fid,
758   afs_uint64 offset,
759   afs_uint64 length,
760   afs_int32 flag,
761   afsUUID uuid,
762   OUT AFSFetchStatus *OutStatus,
763   AFSCallBack *CallBack,
764   struct osd_file *osd
765 ) = 65557;
766
767 InverseLookup(
768   IN AFSFid *Fid,
769   afs_uint32 parent,
770   OUT struct afs_filename *file,
771   afs_uint32 *nextparent
772 ) = 65558;
773
774 CheckOSDconns() = 65559;
775
776 OsdPolicy(IN AFSFid *Fid,
777   afs_uint64 length,
778   OUT afs_uint32 *protocol
779 ) = 65560;
780
781 SetOsdFileReady(
782   IN AFSFid *Fid
783 ) = 65561;
784
785 GetOsdMetadata(
786   IN AFSFid *Fid
787 ) split = 65562;
788 */