DECL_PIOCTL(PRxStatProc);
DECL_PIOCTL(PRxStatPeer);
DECL_PIOCTL(PPrefetchFromTape);
-DECL_PIOCTL(PResidencyCmd);
+DECL_PIOCTL(PFsCmd);
DECL_PIOCTL(PCallBackAddr);
DECL_PIOCTL(PDiscon);
DECL_PIOCTL(PNFSNukeCreds);
PBogus, /* 64 -- arla: force cache check */
PBogus, /* 65 -- arla: break callback */
PPrefetchFromTape, /* 66 -- MR-AFS: prefetch file from tape */
- PResidencyCmd, /* 67 -- MR-AFS: generic commnd interface */
+ PFsCmd, /* 67 -- RXOSD: generic commnd interface */
PBogus, /* 68 -- arla: fetch stats */
PGetVnodeXStatus2, /* 69 - get caller access and some vcache status */
};
if (tc) {
RX_AFS_GUNLOCK();
code =
- RXAFS_ResidencyCmd(tc->id, Fid, Inputs,
- (struct ResidencyCmdOutputs *)aout);
+ RXAFS_FsCmd(tc->id, Fid, Inputs,
+ (struct FsCmdOutputs *)aout);
RX_AFS_GLOCK();
} else
code = -1;
afs_PutVCache(tvc);
if (!code) {
- *aoutSize = sizeof(struct ResidencyCmdOutputs);
+ *aoutSize = sizeof(struct FsCmdOutputs);
}
return code;
}
#define VIOC_RXSTAT_PEER _VICEIOCTL(54) /* Control peer RX stats */
#define VIOC_GETRXKCRYPT _VICEIOCTL(55) /* Set rxkad enc flag */
#define VIOC_SETRXKCRYPT _VICEIOCTL(56) /* Set rxkad enc flag */
-#define VIOC_PREFETCHTAPE _VICEIOCTL(66) /* MR-AFS prefetch from tape */
-#define VIOC_RESIDENCY_CMD _VICEIOCTL(67) /* generic MR-AFS cmds */
+#define VIOC_PREFETCHTAPE _VICEIOCTL(66) /* osd prefetch from tape */
+#define VIOC_FS_CMD _VICEIOCTL(67) /* fs extensions for osd etc. */
+#define VIOC_RESIDENCY_CMD VIOC_FS_CMD
+
#define VIOC_STATISTICS _VICEIOCTL(68) /* arla: fetch statistics */
#define VIOC_GETVCXSTATUS2 _VICEIOCTL(69) /* vcache statistics */
afs_uint32 Residency4;
};
-struct ResidencyCmdInputs {
+struct FsCmdInputs {
afs_int32 command;
struct AFSFid fid;
afs_int64 int64s[MAXCMDINT64S];
char chars[MAXCMDCHARS];
};
-struct ResidencyCmdOutputs {
+struct FsCmdOutputs {
afs_int32 code;
struct AFSFetchStatus status;
afs_int64 int64s[MAXCMDINT64S];
char chars[MAXCMDCHARS];
};
+%#define ResidencyCmdInputs FsCmdInputs
+%#define ResidencyCmdOutputs FsCmdOutputs
+
const FLUSHMAX = 10;
typedef afs_int32 ViceIds<FLUSHMAX>;
typedef afs_int32 IPAddrs<FLUSHMAX>;
AFSVolSync *Sync
) = 163;
-ResidencyCmd(
+FsCmd(
IN AFSFid *Fid,
- IN struct ResidencyCmdInputs *Inputs,
- OUT struct ResidencyCmdOutputs *Outputs
+ IN struct FsCmdInputs *Inputs,
+ OUT struct FsCmdOutputs *Outputs
) = 220;
+#ifdef RPC_CLIENT
+%int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs)
+%{
+% return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs);
+%}
+#endif
+
InlineBulkStatus(
IN AFSCBFids *FidsArray,
OUT AFSBulkStats *StatArray,
rx_ReadProc32 @250
rx_WriteProc32 @251
xdr_free @252
+ RXAFS_FsCmd @253
; for performance testing
rx_TSFPQGlobSize @2001 DATA
RXAFS_FlushCPS
RXAFS_DFSSymlink
RXAFSCB_function_names
+RXAFS_FsCmd
}
afs_int32
-SRXAFS_ResidencyCmd(struct rx_call * acall, struct AFSFid * Fid,
- struct ResidencyCmdInputs * Inputs,
- struct ResidencyCmdOutputs * Outputs)
+SRXAFS_FsCmd(struct rx_call * acall, struct AFSFid * Fid,
+ struct FsCmdInputs * Inputs,
+ struct FsCmdOutputs * Outputs)
{
- return EINVAL;
+ afs_int32 code = 0;
+ struct AFSCallBack callback;
+ struct AFSVolSync sync;
+
+ switch (Inputs->command) {
+ default:
+ code = EINVAL;
+ }
+ ViceLog(1,("FsCmd: cmd = %d, code=%d\n",
+ Inputs->command, Outputs->code));
+ return code;
}
#ifdef AFS_NT40_ENV