18056fd3df6ccb5577f8bd6db14ec272d512697d
[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 FsCmdInputs {
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 FsCmdOutputs {
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 %#define ResidencyCmdInputs FsCmdInputs
409 %#define ResidencyCmdOutputs FsCmdOutputs
410
411 const FLUSHMAX = 10;
412 typedef afs_int32 ViceIds<FLUSHMAX>;
413 typedef afs_int32 IPAddrs<FLUSHMAX>;
414
415 package RXAFS_
416 prefix S
417 statindex 7
418
419 FetchData(
420   IN  AFSFid *Fid,
421   afs_int32 Pos,
422   afs_int32 Length,
423   OUT AFSFetchStatus *OutStatus,
424   AFSCallBack *CallBack,
425   AFSVolSync *Sync
426 ) split = 130;
427
428 FetchACL(
429   IN  AFSFid *Fid,
430   OUT AFSOpaque *AccessList,
431   AFSFetchStatus *OutStatus,
432   AFSVolSync *Sync
433 ) = 131;
434
435 FetchStatus(
436   IN  AFSFid *Fid,
437   OUT AFSFetchStatus *OutStatus,
438   AFSCallBack *CallBack,
439   AFSVolSync *Sync
440 ) = 132;
441
442 StoreData(
443   IN  AFSFid *Fid,
444   AFSStoreStatus *InStatus,
445   afs_uint32 Pos,
446   afs_uint32 Length,
447   afs_uint32 FileLength,
448   OUT AFSFetchStatus *OutStatus,
449   AFSVolSync *Sync
450 ) split = 133;
451
452 StoreACL(
453   IN  AFSFid *Fid,
454   AFSOpaque *AccessList,
455   OUT AFSFetchStatus *OutStatus,
456   AFSVolSync *Sync
457 ) = 134;
458
459 StoreStatus(
460   IN  AFSFid *Fid,
461   AFSStoreStatus *InStatus,
462   OUT AFSFetchStatus *OutStatus,
463   AFSVolSync *Sync
464 ) = 135;
465
466 RemoveFile(
467   IN  AFSFid *DirFid,
468   string Name<AFSNAMEMAX>,
469   OUT AFSFetchStatus *OutStatus,
470   AFSVolSync *Sync
471 ) = 136;
472
473 CreateFile(
474   IN  AFSFid *DirFid,
475   string Name<AFSNAMEMAX>,
476   AFSStoreStatus *InStatus,
477   OUT AFSFid *OutFid,
478   AFSFetchStatus *OutFidStatus,
479   AFSFetchStatus *OutDirStatus,
480   AFSCallBack *CallBack,
481   AFSVolSync *Sync) = 137;
482
483 Rename(
484   IN  AFSFid *OldDirFid,
485   string OldName<AFSNAMEMAX>,
486   AFSFid *NewDirFid,
487   string NewName<AFSNAMEMAX>,
488   OUT AFSFetchStatus *OutOldDirStatus,
489   AFSFetchStatus *OutNewDirStatus,
490   AFSVolSync *Sync
491 ) = 138;
492
493 Symlink(
494   IN  AFSFid *DirFid,
495   string Name<AFSNAMEMAX>,
496   string LinkContents<AFSPATHMAX>,
497   AFSStoreStatus *InStatus,
498   OUT AFSFid *OutFid,
499   AFSFetchStatus *OutFidStatus,
500   AFSFetchStatus *OutDirStatus,
501   AFSVolSync *Sync
502 ) = 139;
503
504 Link(
505   IN  AFSFid *DirFid,
506   string Name<AFSNAMEMAX>,
507   AFSFid *ExistingFid,
508   OUT AFSFetchStatus *OutFidStatus,
509   AFSFetchStatus *OutDirStatus,
510   AFSVolSync *Sync
511 ) = 140;
512
513 MakeDir(
514   IN  AFSFid *DirFid,
515   string Name<AFSNAMEMAX>,
516   AFSStoreStatus *InStatus,
517   OUT AFSFid *OutFid,
518   AFSFetchStatus *OutFidStatus,
519   AFSFetchStatus *OutDirStatus,
520   AFSCallBack *CallBack,
521   AFSVolSync *Sync
522 ) = 141;
523
524 RemoveDir(
525   IN  AFSFid *DirFid,
526   string Name<AFSNAMEMAX>,
527   OUT AFSFetchStatus *OutDirStatus,
528   AFSVolSync *Sync
529 ) = 142;
530
531 OldSetLock(
532   IN  AFSFid *Fid,
533   ViceLockType Type,
534   AFSVolSync *Sync
535 ) = 143;
536
537 OldExtendLock(
538   IN  AFSFid *Fid,
539   AFSVolSync *Sync
540 ) = 144;
541
542 OldReleaseLock(
543   IN  AFSFid *Fid,
544   AFSVolSync *Sync
545 ) = 145;
546
547 GetStatistics(
548   OUT ViceStatistics *Statistics
549 ) = 146;
550
551 GiveUpCallBacks(
552   IN  AFSCBFids *Fids_Array,
553   AFSCBs *CallBacks_Array
554 ) = 147;
555
556 GetVolumeInfo(
557   IN  string VolumeName<AFSNAMEMAX>,
558   OUT VolumeInfo *Volumeinfo
559 ) = 148;
560
561 GetVolumeStatus(
562   IN  afs_int32 Volumeid,
563   OUT AFSFetchVolumeStatus *Volumestatus,
564   string Name<AFSNAMEMAX>,
565   string OfflineMsg<AFSOPAQUEMAX>,
566   string Motd<AFSOPAQUEMAX>
567 ) = 149;
568
569 SetVolumeStatus(
570   IN  afs_int32 Volumeid,
571   AFSStoreVolumeStatus *Volumestatus,
572   string Name<AFSNAMEMAX>,
573   string OfflineMsg<AFSOPAQUEMAX>,
574   string Motd<AFSOPAQUEMAX>
575 ) = 150;
576
577 GetRootVolume(
578   OUT string VolumeName<AFSNAMEMAX>
579 ) = 151;
580
581 CheckToken(
582   IN  afs_int32 ViceId, 
583   AFSOpaque *token
584 ) = 152;
585
586 GetTime(
587   OUT afs_uint32 *Seconds,
588   afs_uint32 *USeconds
589 ) multi = 153;
590
591 NGetVolumeInfo(
592   IN  string VolumeName<AFSNAMEMAX>,
593   OUT AFSVolumeInfo *stuff
594 ) = 154;
595
596 BulkStatus(
597   IN  AFSCBFids *FidsArray,
598   OUT AFSBulkStats *StatArray,
599   AFSCBs *CBArray,
600   AFSVolSync *Sync
601 ) = 155;
602
603 SetLock(
604   IN  AFSFid *Fid,
605   ViceLockType Type,
606   OUT AFSVolSync *Sync
607 ) = 156;
608
609 ExtendLock(
610   IN  AFSFid *Fid,
611   OUT AFSVolSync *Sync
612 ) = 157;
613
614 ReleaseLock(
615   IN  AFSFid *Fid,
616   OUT AFSVolSync *Sync
617 ) = 158;
618
619 XStatsVersion(
620   OUT afs_int32 *versionNumberP
621 ) = 159;
622
623 GetXStats(
624   IN  afs_int32 clientVersionNumber,
625   afs_int32 collectionNumber,
626   OUT afs_int32 *srvVersionNumberP,
627   afs_int32 *timeP,
628   AFS_CollData *dataP
629 ) = 160;
630
631 /* This interface is to supported the AFS/DFS Protocol Translator */
632 Lookup(
633   IN  AFSFid *DirFid,
634   string Name<AFSNAMEMAX>,
635   OUT AFSFid *OutFid,
636   AFSFetchStatus *OutFidStatus,
637   AFSFetchStatus *OutDirStatus,
638   AFSCallBack *CallBack,
639   AFSVolSync *Sync
640 ) = 161;
641
642 FlushCPS(
643   IN  ViceIds *IdsArray,
644   IPAddrs *AddrsArray,
645   afs_int32    spare1,
646   OUT afs_int32    *spare2,
647   afs_int32    *spare3
648 ) = 162;
649
650 DFSSymlink(
651   IN  AFSFid *DirFid,
652   string Name<AFSNAMEMAX>,
653   string LinkContents<AFSPATHMAX>,
654   AFSStoreStatus *InStatus,
655   OUT AFSFid *OutFid,
656   AFSFetchStatus *OutFidStatus,
657   AFSFetchStatus *OutDirStatus,
658   AFSCallBack *CallBack,
659   AFSVolSync *Sync
660 ) = 163;
661
662 FsCmd(
663   IN AFSFid *Fid,
664   IN struct FsCmdInputs *Inputs,
665   OUT struct FsCmdOutputs *Outputs
666 ) = 220;
667
668 #ifdef RPC_CLIENT
669 %int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs)
670 %{
671 %  return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs);
672 %}
673 #endif
674
675 InlineBulkStatus(
676   IN  AFSCBFids *FidsArray,
677   OUT AFSBulkStats *StatArray,
678   AFSCBs *CBArray,
679   AFSVolSync *Sync
680 ) = 65536;
681
682 FetchData64(
683   IN  AFSFid *Fid, 
684   afs_int64 Pos, 
685   afs_int64 Length, 
686   OUT AFSFetchStatus *OutStatus, 
687   AFSCallBack *CallBack, 
688   AFSVolSync *Sync
689 ) split = 65537;
690
691 StoreData64(
692   IN  AFSFid *Fid, 
693   AFSStoreStatus *InStatus, 
694   afs_uint64 Pos, 
695   afs_uint64 Length, 
696   afs_uint64 FileLength, 
697   OUT AFSFetchStatus *OutStatus, 
698   AFSVolSync *Sync
699 ) split = 65538;
700
701 GiveUpAllCallBacks(
702 ) multi = 65539;
703
704 GetCapabilities(
705   Capabilities *capabilities
706 ) multi = 65540;
707
708 CallBackRxConnAddr(
709   IN afs_int32 *addr
710 ) = 65541;
711
712 %#define STATS64_CURRENTTIME 0
713 %#define STATS64_BOOTTIME 1
714 %#define STATS64_STARTTIME 2
715 %#define STATS64_CURRENTCONNECTIONS 3
716 %#define STATS64_TOTALFETCHES 4
717 %#define STATS64_FETCHDATAS 5
718 %#define STATS64_FETCHEDBYTES 6
719 %#define STATS64_FETCHDATARATE 7
720 %#define STATS64_TOTALSTORES 8
721 %#define STATS64_STOREDATAS 9
722 %#define STATS64_STOREDBYTES 10
723 %#define STATS64_STOREDATARATE 11
724 %#define STATS64_TOTALVICECALLS 12
725 %#define STATS64_WORKSTATIONS 13
726 %#define STATS64_ACTIVEWORKSTATIONS 14
727 %#define STATS64_PROCESSSIZE 15
728
729 const STATS64_VERSION = 16;
730 typedef afs_uint64 ViceStatistics64<STATS64_VERSION>;
731
732 /* the "version" is a number representing the number of 
733    array elements to return, from 0 to N-1 */
734
735 GetStatistics64(
736     IN afs_int32 statsVersion,
737     OUT ViceStatistics64 *Statistics
738 ) = 65542;
739
740 /* rx osd. put here now to hold version numbers.
741 ServerPath(
742   IN  AFSFid *Fid,
743   afs_int32 writing,
744   OUT FilePath *NameiInfo,
745   AFSFetchStatus *OutStatus,
746   AFSCallBack *CallBack
747 ) = 65551;
748
749 PerfTest(
750   IN  afs_int32 type,
751   afs_int64 bytes,
752   afs_int32 bufsize
753 ) split = 65552;
754
755 GetOSDlocation(
756   IN AFSFid *Fid,
757   afs_uint64 offset,
758   afs_uint64 length,
759   afs_int32 flag,
760   afsUUID uuid,
761   OUT AFSFetchStatus *OutStatus,
762   AFSCallBack *CallBack,
763   struct osd_file *osd
764 ) = 65557;
765
766 InverseLookup(
767   IN AFSFid *Fid,
768   afs_uint32 parent,
769   OUT struct afs_filename *file,
770   afs_uint32 *nextparent
771 ) = 65558;
772
773 CheckOSDconns() = 65559;
774
775 OsdPolicy(IN AFSFid *Fid,
776   afs_uint64 length,
777   OUT afs_uint32 *protocol
778 ) = 65560;
779
780 SetOsdFileReady(
781   IN AFSFid *Fid
782 ) = 65561;
783
784 GetOsdMetadata(
785   IN AFSFid *Fid
786 ) split = 65562;
787 */