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
12 * Definition of the AFS File Server RPC interface.
15 #include "common.xg" /*Common structures & definitions*/
17 %#define VICECONNBAD 1234
18 %#define VICETOKENDEAD 1235
19 %#define AFS_LOCKWAIT (5*60)
21 customized struct CBS {
26 customized struct BBS {
32 customized struct AFSAccessList {
38 typedef afs_int32 ViceDataType;
43 %#define SymbolicLink 3
46 %#define afs_xdr_array(a,b,c,d,e,f) afs_xdr_arrayN(a,b,c,d,e,f)
64 struct AFSOldFetchStatus {
65 afs_uint32 InterfaceVersion;
69 afs_uint32 DataVersion;
72 afs_uint32 CallerAccess;
73 afs_uint32 AnonymousAccess;
74 afs_uint32 UnixModeBits;
75 afs_uint32 ParentVnode;
76 afs_uint32 ParentUnique;
78 afs_uint32 ClientModTime;
79 afs_uint32 ServerModTime;
83 struct AFSFetchStatus {
84 afs_uint32 InterfaceVersion;
88 afs_uint32 DataVersion;
91 afs_uint32 CallerAccess;
92 afs_uint32 AnonymousAccess;
93 afs_uint32 UnixModeBits;
94 afs_uint32 ParentVnode;
95 afs_uint32 ParentUnique;
96 afs_uint32 ResidencyMask;
97 afs_uint32 ClientModTime;
98 afs_uint32 ServerModTime;
100 afs_uint32 SyncCounter;
101 afs_uint32 dataVersionHigh; /* For AFS/DFS translator, hi bits of dvn */
102 afs_uint32 lockCount;
103 afs_uint32 Length_hi;
104 afs_uint32 errorCode;
107 struct AFSStoreStatus {
109 afs_uint32 ClientModTime;
112 afs_uint32 UnixModeBits;
116 %#define AFS_SETMODTIME 1
117 %#define AFS_SETOWNER 2
118 %#define AFS_SETGROUP 4
119 %#define AFS_SETMODE 8
120 %#define AFS_SETSEGSIZE 16
121 %#define AFS_FSYNC 1024
123 typedef afs_int32 ViceVolumeType;
130 afs_int32 BlocksAvailable;
131 afs_int32 TotalBlocks;
135 struct ViceStatistics {
136 afs_uint32 CurrentMsgNumber;
137 afs_uint32 OldestMsgNumber;
138 afs_uint32 CurrentTime;
140 afs_uint32 StartTime;
141 afs_int32 CurrentConnections;
142 afs_uint32 TotalViceCalls;
143 afs_uint32 TotalFetchs;
144 afs_uint32 FetchDatas;
145 afs_uint32 FetchedBytes;
146 afs_int32 FetchDataRate;
147 afs_uint32 TotalStores;
148 afs_uint32 StoreDatas;
149 afs_uint32 StoredBytes;
150 afs_int32 StoreDataRate;
151 afs_uint32 TotalRPCBytesSent;
152 afs_uint32 TotalRPCBytesReceived;
153 afs_uint32 TotalRPCPacketsSent;
154 afs_uint32 TotalRPCPacketsReceived;
155 afs_uint32 TotalRPCPacketsLost;
156 afs_uint32 TotalRPCBogusPackets;
164 afs_int32 EtherNetTotalErrors;
165 afs_int32 EtherNetTotalWrites;
166 afs_int32 EtherNetTotalInterupts;
167 afs_int32 EtherNetGoodReads;
168 afs_int32 EtherNetTotalBytesWritten;
169 afs_int32 EtherNetTotalBytesRead;
170 afs_int32 ProcessSize;
171 afs_int32 WorkStations;
172 afs_int32 ActiveWorkStations;
193 struct VolumeStatus {
203 afs_int32 BlocksInUse;
204 afs_int32 PartBlocksAvail;
205 afs_int32 PartMaxBlocks;
208 struct AFSFetchVolumeStatus {
218 afs_int32 BlocksInUse;
219 afs_int32 PartBlocksAvail;
220 afs_int32 PartMaxBlocks;
223 struct AFSStoreVolumeStatus {
229 const AFS_SETMINQUOTA = 1;
230 const AFS_SETMAXQUOTA = 2;
232 struct AFSVolumeInfo {
240 afs_uint32 ServerCount;
249 unsigned short Port0;
250 unsigned short Port1;
251 unsigned short Port2;
252 unsigned short Port3;
253 unsigned short Port4;
254 unsigned short Port5;
255 unsigned short Port6;
256 unsigned short Port7;
267 afs_uint32 ServerCount;
278 typedef afs_int32 ViceLockType;
279 typedef AFSFetchStatus AFSBulkStats<AFSCBMAX>;
283 %#define LockExtend 2
284 %#define LockRelease 3
286 typedef afs_int32 ViceOfflineType;
291 %#define MAXCMDINT64S 3
292 %#define MAXCMDINT32S 200
293 %#define MAXCMDCHARS 256
294 %#define CMD_GETRESIDENCIES 1
295 %#define CMD_CHANGERESIDENCIES 2
296 %#define CMD_IMPORTRESIDENCIES 3
297 %#define CMD_GETEXTVOLATTR 4
298 %#define CMD_SETEXTVOLATTR 5
299 %#define CMD_GETACCESSHISTORY 6
300 %#define CMD_MIGRATEFILE 7
301 %#define CMD_CHECKHSMMETADATA 8
302 %#define CMD_FETCHSTATUS 9
304 %#define VOLATTR_DESIREDRESIDENCYMASK 1
305 %#define VOLATTR_UNDESIREDRESIDENCYMASK 2
306 %#define VOLATTR_SETSPECIALACCESSFLAG 4
307 struct ExtendedVolAttrInputs {
310 afs_uint32 DesiredResidencyMask;
311 afs_uint32 Spare1[10];
312 afs_uint32 UnDesiredResidencyMask;
313 afs_uint32 Spare2[9];
314 afs_uint32 SpecialAccessFlag;
317 struct ExtendedVolAttrOutputs {
318 afs_uint32 DesiredResidencyMask;
319 afs_uint32 Spare1[10];
320 afs_uint32 UnDesiredResidencyMask;
321 afs_uint32 Spare2[9];
322 afs_uint32 SpecialAccessFlag;
326 afs_uint32 TagsArray_len;
327 afs_uint32 TagsArray_val[184];
330 struct AccessHistory {
333 afs_uint32 NonSpoolingFetches;
334 afs_uint32 UserSpoolingFetches;
335 afs_uint32 MigratorSpoolingFetches;
336 afs_uint32 LastUserMigrationEvent;
337 afs_uint32 MigrateMe;
340 afs_uint32 LocalAccess0;
341 afs_uint32 Residency0;
344 afs_uint32 LocalAccess1;
345 afs_uint32 Residency1;
348 afs_uint32 LocalAccess2;
349 afs_uint32 Residency2;
352 afs_uint32 LocalAccess3;
353 afs_uint32 Residency3;
356 afs_uint32 LocalAccess4;
357 afs_uint32 Residency4;
360 struct AccessHistoryOld {
363 afs_uint32 NonSpoolingFetches;
364 afs_uint32 UserSpoolingFetches;
365 afs_uint32 MigratorSpoolingFetches;
366 afs_uint32 LastUserMigrationEvent;
367 afs_uint32 MigrateMe;
370 afs_uint32 LocalAccess0;
371 afs_uint32 Residency0;
374 afs_uint32 LocalAccess1;
375 afs_uint32 Residency1;
378 afs_uint32 LocalAccess2;
379 afs_uint32 Residency2;
382 afs_uint32 LocalAccess3;
383 afs_uint32 Residency3;
386 afs_uint32 LocalAccess4;
387 afs_uint32 Residency4;
393 afs_int64 int64s[MAXCMDINT64S];
394 afs_uint32 int32s[MAXCMDINT32S];
395 char chars[MAXCMDCHARS];
398 struct FsCmdOutputs {
400 struct AFSFetchStatus status;
401 afs_int64 int64s[MAXCMDINT64S];
402 afs_uint32 int32s[MAXCMDINT32S];
403 char chars[MAXCMDCHARS];
406 %#define ResidencyCmdInputs FsCmdInputs
407 %#define ResidencyCmdOutputs FsCmdOutputs
410 typedef afs_int32 ViceIds<FLUSHMAX>;
411 typedef afs_int32 IPAddrs<FLUSHMAX>;
421 OUT AFSFetchStatus *OutStatus,
422 AFSCallBack *CallBack,
428 OUT AFSOpaque *AccessList,
429 AFSFetchStatus *OutStatus,
435 OUT AFSFetchStatus *OutStatus,
436 AFSCallBack *CallBack,
442 AFSStoreStatus *InStatus,
445 afs_uint32 FileLength,
446 OUT AFSFetchStatus *OutStatus,
452 AFSOpaque *AccessList,
453 OUT AFSFetchStatus *OutStatus,
459 AFSStoreStatus *InStatus,
460 OUT AFSFetchStatus *OutStatus,
466 string Name<AFSNAMEMAX>,
467 OUT AFSFetchStatus *OutStatus,
473 string Name<AFSNAMEMAX>,
474 AFSStoreStatus *InStatus,
476 AFSFetchStatus *OutFidStatus,
477 AFSFetchStatus *OutDirStatus,
478 AFSCallBack *CallBack,
479 AFSVolSync *Sync) = 137;
482 IN AFSFid *OldDirFid,
483 string OldName<AFSNAMEMAX>,
485 string NewName<AFSNAMEMAX>,
486 OUT AFSFetchStatus *OutOldDirStatus,
487 AFSFetchStatus *OutNewDirStatus,
493 string Name<AFSNAMEMAX>,
494 string LinkContents<AFSPATHMAX>,
495 AFSStoreStatus *InStatus,
497 AFSFetchStatus *OutFidStatus,
498 AFSFetchStatus *OutDirStatus,
504 string Name<AFSNAMEMAX>,
506 OUT AFSFetchStatus *OutFidStatus,
507 AFSFetchStatus *OutDirStatus,
513 string Name<AFSNAMEMAX>,
514 AFSStoreStatus *InStatus,
516 AFSFetchStatus *OutFidStatus,
517 AFSFetchStatus *OutDirStatus,
518 AFSCallBack *CallBack,
524 string Name<AFSNAMEMAX>,
525 OUT AFSFetchStatus *OutDirStatus,
546 OUT ViceStatistics *Statistics
550 IN AFSCBFids *Fids_Array,
551 AFSCBs *CallBacks_Array
555 IN string VolumeName<AFSNAMEMAX>,
556 OUT VolumeInfo *Volumeinfo
560 IN afs_int32 Volumeid,
561 OUT AFSFetchVolumeStatus *Volumestatus,
562 string Name<AFSNAMEMAX>,
563 string OfflineMsg<AFSOPAQUEMAX>,
564 string Motd<AFSOPAQUEMAX>
568 IN afs_int32 Volumeid,
569 AFSStoreVolumeStatus *Volumestatus,
570 string Name<AFSNAMEMAX>,
571 string OfflineMsg<AFSOPAQUEMAX>,
572 string Motd<AFSOPAQUEMAX>
576 OUT string VolumeName<AFSNAMEMAX>
585 OUT afs_uint32 *Seconds,
590 IN string VolumeName<AFSNAMEMAX>,
591 OUT AFSVolumeInfo *stuff
595 IN AFSCBFids *FidsArray,
596 OUT AFSBulkStats *StatArray,
618 OUT afs_int32 *versionNumberP
622 IN afs_int32 clientVersionNumber,
623 afs_int32 collectionNumber,
624 OUT afs_int32 *srvVersionNumberP,
629 /* This interface is to supported the AFS/DFS Protocol Translator */
632 string Name<AFSNAMEMAX>,
634 AFSFetchStatus *OutFidStatus,
635 AFSFetchStatus *OutDirStatus,
636 AFSCallBack *CallBack,
641 IN ViceIds *IdsArray,
644 OUT afs_int32 *spare2,
650 string Name<AFSNAMEMAX>,
651 string LinkContents<AFSPATHMAX>,
652 AFSStoreStatus *InStatus,
654 AFSFetchStatus *OutFidStatus,
655 AFSFetchStatus *OutDirStatus,
656 AFSCallBack *CallBack,
662 IN struct FsCmdInputs *Inputs,
663 OUT struct FsCmdOutputs *Outputs
667 %int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs)
669 % return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs);
674 IN AFSCBFids *FidsArray,
675 OUT AFSBulkStats *StatArray,
684 OUT AFSFetchStatus *OutStatus,
685 AFSCallBack *CallBack,
691 AFSStoreStatus *InStatus,
694 afs_uint64 FileLength,
695 OUT AFSFetchStatus *OutStatus,
703 Capabilities *capabilities
710 %#define STATS64_CURRENTTIME 0
711 %#define STATS64_BOOTTIME 1
712 %#define STATS64_STARTTIME 2
713 %#define STATS64_CURRENTCONNECTIONS 3
714 %#define STATS64_TOTALFETCHES 4
715 %#define STATS64_FETCHDATAS 5
716 %#define STATS64_FETCHEDBYTES 6
717 %#define STATS64_FETCHDATARATE 7
718 %#define STATS64_TOTALSTORES 8
719 %#define STATS64_STOREDATAS 9
720 %#define STATS64_STOREDBYTES 10
721 %#define STATS64_STOREDATARATE 11
722 %#define STATS64_TOTALVICECALLS 12
723 %#define STATS64_WORKSTATIONS 13
724 %#define STATS64_ACTIVEWORKSTATIONS 14
725 %#define STATS64_PROCESSSIZE 15
727 const STATS64_VERSION = 16;
728 typedef afs_uint64 ViceStatistics64<STATS64_VERSION>;
730 /* the "version" is a number representing the number of
731 array elements to return, from 0 to N-1 */
734 IN afs_int32 statsVersion,
735 OUT ViceStatistics64 *Statistics
738 /* rx osd. put here now to hold version numbers.
742 OUT FilePath *NameiInfo,
743 AFSFetchStatus *OutStatus,
744 AFSCallBack *CallBack
759 OUT AFSFetchStatus *OutStatus,
760 AFSCallBack *CallBack,
767 OUT struct afs_filename *file,
768 afs_uint32 *nextparent
771 CheckOSDconns() = 65559;
773 OsdPolicy(IN AFSFid *Fid,
775 OUT afs_uint32 *protocol