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 typedef afs_int32 ViceDataType;
26 %#define SymbolicLink 3
29 %#define afs_xdr_array(a,b,c,d,e,f) afs_xdr_arrayN(a,b,c,d,e,f)
41 struct AFSFetchStatus {
42 afs_uint32 InterfaceVersion;
46 afs_uint32 DataVersion;
49 afs_uint32 CallerAccess;
50 afs_uint32 AnonymousAccess;
51 afs_uint32 UnixModeBits;
52 afs_uint32 ParentVnode;
53 afs_uint32 ParentUnique;
54 afs_uint32 ResidencyMask;
55 afs_uint32 ClientModTime;
56 afs_uint32 ServerModTime;
58 afs_uint32 SyncCounter;
59 afs_uint32 dataVersionHigh; /* For AFS/DFS translator, hi bits of dvn */
65 struct AFSStoreStatus {
67 afs_uint32 ClientModTime;
70 afs_uint32 UnixModeBits;
74 %#define AFS_SETMODTIME 1
75 %#define AFS_SETOWNER 2
76 %#define AFS_SETGROUP 4
77 %#define AFS_SETMODE 8
78 %#define AFS_SETSEGSIZE 16
79 %#define AFS_FSYNC 1024
81 typedef afs_int32 ViceVolumeType;
88 afs_int32 BlocksAvailable;
89 afs_int32 TotalBlocks;
93 struct ViceStatistics {
94 afs_uint32 CurrentMsgNumber;
95 afs_uint32 OldestMsgNumber;
96 afs_uint32 CurrentTime;
99 afs_int32 CurrentConnections;
100 afs_uint32 TotalViceCalls;
101 afs_uint32 TotalFetchs;
102 afs_uint32 FetchDatas;
103 afs_uint32 FetchedBytes;
104 afs_int32 FetchDataRate;
105 afs_uint32 TotalStores;
106 afs_uint32 StoreDatas;
107 afs_uint32 StoredBytes;
108 afs_int32 StoreDataRate;
109 afs_uint32 TotalRPCBytesSent;
110 afs_uint32 TotalRPCBytesReceived;
111 afs_uint32 TotalRPCPacketsSent;
112 afs_uint32 TotalRPCPacketsReceived;
113 afs_uint32 TotalRPCPacketsLost;
114 afs_uint32 TotalRPCBogusPackets;
122 afs_int32 EtherNetTotalErrors;
123 afs_int32 EtherNetTotalWrites;
124 afs_int32 EtherNetTotalInterupts;
125 afs_int32 EtherNetGoodReads;
126 afs_int32 EtherNetTotalBytesWritten;
127 afs_int32 EtherNetTotalBytesRead;
128 afs_int32 ProcessSize;
129 afs_int32 WorkStations;
130 afs_int32 ActiveWorkStations;
151 struct VolumeStatus {
161 afs_int32 BlocksInUse;
162 afs_int32 PartBlocksAvail;
163 afs_int32 PartMaxBlocks;
166 struct AFSFetchVolumeStatus {
176 afs_int32 BlocksInUse;
177 afs_int32 PartBlocksAvail;
178 afs_int32 PartMaxBlocks;
181 struct AFSStoreVolumeStatus {
187 const AFS_SETMINQUOTA = 1;
188 const AFS_SETMAXQUOTA = 2;
190 struct AFSVolumeInfo {
198 afs_uint32 ServerCount;
207 unsigned short Port0;
208 unsigned short Port1;
209 unsigned short Port2;
210 unsigned short Port3;
211 unsigned short Port4;
212 unsigned short Port5;
213 unsigned short Port6;
214 unsigned short Port7;
225 afs_uint32 ServerCount;
236 typedef afs_int32 ViceLockType;
237 typedef AFSFetchStatus AFSBulkStats<AFSCBMAX>;
241 %#define LockExtend 2
242 %#define LockRelease 3
244 typedef afs_int32 ViceOfflineType;
249 %#define MAXCMDINT64S 3
250 %#define MAXCMDINT32S 200
251 %#define MAXCMDCHARS 256
252 %#define CMD_GETRESIDENCIES 1
253 %#define CMD_CHANGERESIDENCIES 2
254 %#define CMD_IMPORTRESIDENCIES 3
255 %#define CMD_GETEXTVOLATTR 4
256 %#define CMD_SETEXTVOLATTR 5
257 %#define CMD_GETACCESSHISTORY 6
258 %#define CMD_MIGRATEFILE 7
259 %#define CMD_CHECKHSMMETADATA 8
260 %#define CMD_FETCHSTATUS 9
262 %#define VOLATTR_DESIREDRESIDENCYMASK 1
263 %#define VOLATTR_UNDESIREDRESIDENCYMASK 2
264 %#define VOLATTR_SETSPECIALACCESSFLAG 4
265 struct ExtendedVolAttrInputs {
268 afs_uint32 DesiredResidencyMask;
269 afs_uint32 Spare1[10];
270 afs_uint32 UnDesiredResidencyMask;
271 afs_uint32 Spare2[9];
272 afs_uint32 SpecialAccessFlag;
275 struct ExtendedVolAttrOutputs {
276 afs_uint32 DesiredResidencyMask;
277 afs_uint32 Spare1[10];
278 afs_uint32 UnDesiredResidencyMask;
279 afs_uint32 Spare2[9];
280 afs_uint32 SpecialAccessFlag;
284 afs_uint32 TagsArray_len;
285 afs_uint32 TagsArray_val[184];
288 struct AccessHistory {
291 afs_uint32 NonSpoolingFetches;
292 afs_uint32 UserSpoolingFetches;
293 afs_uint32 MigratorSpoolingFetches;
294 afs_uint32 LastUserMigrationEvent;
295 afs_uint32 MigrateMe;
298 afs_uint32 LocalAccess0;
299 afs_uint32 Residency0;
302 afs_uint32 LocalAccess1;
303 afs_uint32 Residency1;
306 afs_uint32 LocalAccess2;
307 afs_uint32 Residency2;
310 afs_uint32 LocalAccess3;
311 afs_uint32 Residency3;
314 afs_uint32 LocalAccess4;
315 afs_uint32 Residency4;
318 struct AccessHistoryOld {
321 afs_uint32 NonSpoolingFetches;
322 afs_uint32 UserSpoolingFetches;
323 afs_uint32 MigratorSpoolingFetches;
324 afs_uint32 LastUserMigrationEvent;
325 afs_uint32 MigrateMe;
328 afs_uint32 LocalAccess0;
329 afs_uint32 Residency0;
332 afs_uint32 LocalAccess1;
333 afs_uint32 Residency1;
336 afs_uint32 LocalAccess2;
337 afs_uint32 Residency2;
340 afs_uint32 LocalAccess3;
341 afs_uint32 Residency3;
344 afs_uint32 LocalAccess4;
345 afs_uint32 Residency4;
351 afs_int64 int64s[MAXCMDINT64S];
352 afs_uint32 int32s[MAXCMDINT32S];
353 char chars[MAXCMDCHARS];
356 struct FsCmdOutputs {
358 struct AFSFetchStatus status;
359 afs_int64 int64s[MAXCMDINT64S];
360 afs_uint32 int32s[MAXCMDINT32S];
361 char chars[MAXCMDCHARS];
364 %#define ResidencyCmdInputs FsCmdInputs
365 %#define ResidencyCmdOutputs FsCmdOutputs
368 typedef afs_int32 ViceIds<FLUSHMAX>;
369 typedef afs_int32 IPAddrs<FLUSHMAX>;
379 OUT AFSFetchStatus *OutStatus,
380 AFSCallBack *CallBack,
386 OUT AFSOpaque *AccessList,
387 AFSFetchStatus *OutStatus,
393 OUT AFSFetchStatus *OutStatus,
394 AFSCallBack *CallBack,
400 AFSStoreStatus *InStatus,
403 afs_uint32 FileLength,
404 OUT AFSFetchStatus *OutStatus,
410 AFSOpaque *AccessList,
411 OUT AFSFetchStatus *OutStatus,
417 AFSStoreStatus *InStatus,
418 OUT AFSFetchStatus *OutStatus,
424 string Name<AFSNAMEMAX>,
425 OUT AFSFetchStatus *OutStatus,
431 string Name<AFSNAMEMAX>,
432 AFSStoreStatus *InStatus,
434 AFSFetchStatus *OutFidStatus,
435 AFSFetchStatus *OutDirStatus,
436 AFSCallBack *CallBack,
437 AFSVolSync *Sync) = 137;
440 IN AFSFid *OldDirFid,
441 string OldName<AFSNAMEMAX>,
443 string NewName<AFSNAMEMAX>,
444 OUT AFSFetchStatus *OutOldDirStatus,
445 AFSFetchStatus *OutNewDirStatus,
451 string Name<AFSNAMEMAX>,
452 string LinkContents<AFSPATHMAX>,
453 AFSStoreStatus *InStatus,
455 AFSFetchStatus *OutFidStatus,
456 AFSFetchStatus *OutDirStatus,
462 string Name<AFSNAMEMAX>,
464 OUT AFSFetchStatus *OutFidStatus,
465 AFSFetchStatus *OutDirStatus,
471 string Name<AFSNAMEMAX>,
472 AFSStoreStatus *InStatus,
474 AFSFetchStatus *OutFidStatus,
475 AFSFetchStatus *OutDirStatus,
476 AFSCallBack *CallBack,
482 string Name<AFSNAMEMAX>,
483 OUT AFSFetchStatus *OutDirStatus,
504 OUT ViceStatistics *Statistics
508 IN AFSCBFids *Fids_Array,
509 AFSCBs *CallBacks_Array
513 IN string VolumeName<AFSNAMEMAX>,
514 OUT VolumeInfo *Volumeinfo
518 IN afs_int32 Volumeid,
519 OUT AFSFetchVolumeStatus *Volumestatus,
520 string Name<AFSNAMEMAX>,
521 string OfflineMsg<AFSOPAQUEMAX>,
522 string Motd<AFSOPAQUEMAX>
526 IN afs_int32 Volumeid,
527 AFSStoreVolumeStatus *Volumestatus,
528 string Name<AFSNAMEMAX>,
529 string OfflineMsg<AFSOPAQUEMAX>,
530 string Motd<AFSOPAQUEMAX>
534 OUT string VolumeName<AFSNAMEMAX>
543 OUT afs_uint32 *Seconds,
548 IN string VolumeName<AFSNAMEMAX>,
549 OUT AFSVolumeInfo *stuff
553 IN AFSCBFids *FidsArray,
554 OUT AFSBulkStats *StatArray,
576 OUT afs_int32 *versionNumberP
580 IN afs_int32 clientVersionNumber,
581 afs_int32 collectionNumber,
582 OUT afs_int32 *srvVersionNumberP,
587 /* This interface is to supported the AFS/DFS Protocol Translator */
590 string Name<AFSNAMEMAX>,
592 AFSFetchStatus *OutFidStatus,
593 AFSFetchStatus *OutDirStatus,
594 AFSCallBack *CallBack,
599 IN ViceIds *IdsArray,
602 OUT afs_int32 *spare2,
608 string Name<AFSNAMEMAX>,
609 string LinkContents<AFSPATHMAX>,
610 AFSStoreStatus *InStatus,
612 AFSFetchStatus *OutFidStatus,
613 AFSFetchStatus *OutDirStatus,
614 AFSCallBack *CallBack,
620 IN struct FsCmdInputs *Inputs,
621 OUT struct FsCmdOutputs *Outputs
625 %int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs)
627 % return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs);
632 IN AFSCBFids *FidsArray,
633 OUT AFSBulkStats *StatArray,
642 OUT AFSFetchStatus *OutStatus,
643 AFSCallBack *CallBack,
649 AFSStoreStatus *InStatus,
652 afs_uint64 FileLength,
653 OUT AFSFetchStatus *OutStatus,
661 Capabilities *capabilities
668 %#define STATS64_CURRENTTIME 0
669 %#define STATS64_BOOTTIME 1
670 %#define STATS64_STARTTIME 2
671 %#define STATS64_CURRENTCONNECTIONS 3
672 %#define STATS64_TOTALFETCHES 4
673 %#define STATS64_FETCHDATAS 5
674 %#define STATS64_FETCHEDBYTES 6
675 %#define STATS64_FETCHDATARATE 7
676 %#define STATS64_TOTALSTORES 8
677 %#define STATS64_STOREDATAS 9
678 %#define STATS64_STOREDBYTES 10
679 %#define STATS64_STOREDATARATE 11
680 %#define STATS64_TOTALVICECALLS 12
681 %#define STATS64_WORKSTATIONS 13
682 %#define STATS64_ACTIVEWORKSTATIONS 14
683 %#define STATS64_PROCESSSIZE 15
685 const STATS64_VERSION = 16;
686 typedef afs_uint64 ViceStatistics64<STATS64_VERSION>;
688 /* the "version" is a number representing the number of
689 array elements to return, from 0 to N-1 */
692 IN afs_int32 statsVersion,
693 OUT ViceStatistics64 *Statistics
696 /* rx osd. put here now to hold version numbers.
700 OUT FilePath *NameiInfo,
701 AFSFetchStatus *OutStatus,
702 AFSCallBack *CallBack
717 OUT AFSFetchStatus *OutStatus,
718 AFSCallBack *CallBack,
725 OUT struct afs_filename *file,
726 afs_uint32 *nextparent
729 CheckOSDconns() = 65559;
731 OsdPolicy(IN AFSFid *Fid,
733 OUT afs_uint32 *protocol