nfs-ganesha 1.4
|
00001 00080 #ifndef _CMD_NFSTOOLS_H 00081 #define _CMD_NFSTOOLS_H 00082 00083 #ifdef HAVE_CONFIG_H 00084 #include "config.h" 00085 #endif 00086 00087 #include "ganesha_rpc.h" 00088 #include "nfs_proto_functions.h" 00089 #include "nfs_remote_functions.h" 00090 00091 typedef enum cmdnfs_encodetype__ 00092 { 00093 CMDNFS_ENCODE = 1, 00094 CMDNFS_DECODE = 2, 00095 CMDNFS_FREE = 3 00096 } cmdnfs_encodetype_t; 00097 00098 /* defining encoding/decoding function type */ 00099 00100 typedef int (*cmdnfs_encoding_func_t) (cmdnfs_encodetype_t, /* encoding or decoding */ 00101 int, char **, /* inputs for encoding */ 00102 int, FILE *, /* indentation and output stream for decoding */ 00103 caddr_t /* pointer to nfs structure to encode or decode */ 00104 ); 00105 00106 /* defining generic command type */ 00107 00108 typedef struct cmdnfs_funcdesc__ 00109 { 00110 00111 /* nfs function name */ 00112 char *func_name; 00113 00114 /* related nfs function */ 00115 nfs_protocol_function_t func_call; 00116 00117 /* for freeing resources */ 00118 nfs_protocol_free_t func_free; 00119 00120 /* encoding function shell->nfs */ 00121 cmdnfs_encoding_func_t func_encode; 00122 00123 /* decoding function nfs->shell */ 00124 cmdnfs_encoding_func_t func_decode; 00125 00126 /* syntaxe for the command */ 00127 char *func_help; 00128 00129 } cmdnfs_funcdesc_t; 00130 00131 typedef struct cmdnfsremote_funcdesc__ 00132 { 00133 00134 /* nfs function name */ 00135 char *func_name; 00136 00137 /* related nfs function */ 00138 nfsremote_protocol_function_t func_call; 00139 00140 /* for freeing resources */ 00141 nfs_protocol_free_t func_free; 00142 00143 /* encoding function shell->nfs */ 00144 cmdnfs_encoding_func_t func_encode; 00145 00146 /* decoding function nfs->shell */ 00147 cmdnfs_encoding_func_t func_decode; 00148 00149 /* syntaxe for the command */ 00150 char *func_help; 00151 00152 } cmdnfsremote_funcdesc_t; 00153 00154 /* encoding/decoding function definitions */ 00155 00156 int cmdnfs_void(cmdnfs_encodetype_t encodeflag, 00157 int argc, char **argv, 00158 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00159 00160 int cmdnfs_dirpath(cmdnfs_encodetype_t encodeflag, 00161 int argc, char **argv, 00162 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00163 00164 int cmdnfs_fhstatus2(cmdnfs_encodetype_t encodeflag, 00165 int argc, char **argv, 00166 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00167 00168 int cmdnfs_fhandle2(cmdnfs_encodetype_t encodeflag, 00169 int argc, char **argv, 00170 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00171 00172 int cmdnfs_mountlist(cmdnfs_encodetype_t encodeflag, 00173 int argc, char **argv, 00174 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00175 00176 int cmdnfs_exports(cmdnfs_encodetype_t encodeflag, 00177 int argc, char **argv, 00178 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00179 00180 int cmdnfs_mountres3(cmdnfs_encodetype_t encodeflag, 00181 int argc, char **argv, 00182 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00183 00184 int cmdnfs_fhandle3(cmdnfs_encodetype_t encodeflag, 00185 int argc, char **argv, 00186 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00187 00188 int cmdnfs_fattr2(cmdnfs_encodetype_t encodeflag, 00189 int argc, char **argv, 00190 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00191 00192 int cmdnfs_ATTR2res(cmdnfs_encodetype_t encodeflag, 00193 int argc, char **argv, 00194 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00195 00196 int cmdnfs_DIROP2res(cmdnfs_encodetype_t encodeflag, 00197 int argc, char **argv, 00198 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00199 00200 int cmdnfs_diropargs2(cmdnfs_encodetype_t encodeflag, 00201 int argc, char **argv, 00202 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00203 00204 int cmdnfs_nfsstat2(cmdnfs_encodetype_t encodeflag, 00205 int argc, char **argv, 00206 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00207 00208 int cmdnfs_READLINK2res(cmdnfs_encodetype_t encodeflag, 00209 int argc, char **argv, 00210 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00211 00212 int cmdnfs_sattr2(cmdnfs_encodetype_t encodeflag, 00213 int argc, char **argv, 00214 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00215 00216 int cmdnfs_CREATE2args(cmdnfs_encodetype_t encodeflag, 00217 int argc, char **argv, 00218 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00219 00220 int cmdnfs_SETATTR2args(cmdnfs_encodetype_t encodeflag, 00221 int argc, char **argv, 00222 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00223 00224 int cmdnfs_READDIR2args(cmdnfs_encodetype_t encodeflag, 00225 int argc, char **argv, 00226 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00227 00228 int cmdnfs_READDIR2res(cmdnfs_encodetype_t encodeflag, 00229 int argc, char **argv, 00230 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00231 00232 int cmdnfs_nfsstat3(cmdnfs_encodetype_t encodeflag, 00233 int argc, char **argv, 00234 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00235 00236 int cmdnfs_fattr3(cmdnfs_encodetype_t encodeflag, 00237 int argc, char **argv, 00238 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00239 00240 int cmdnfs_sattr3(cmdnfs_encodetype_t encodeflag, 00241 int argc, char **argv, 00242 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00243 00244 int cmdnfs_GETATTR3res(cmdnfs_encodetype_t encodeflag, 00245 int argc, char **argv, 00246 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00247 00248 int cmdnfs_postopattr(cmdnfs_encodetype_t encodeflag, 00249 int argc, char **argv, 00250 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00251 00252 int cmdnfs_postopfh3(cmdnfs_encodetype_t encodeflag, 00253 int argc, char **argv, 00254 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00255 00256 int cmdnfs_diropargs3(cmdnfs_encodetype_t encodeflag, 00257 int argc, char **argv, 00258 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00259 00260 int cmdnfs_LOOKUP3res(cmdnfs_encodetype_t encodeflag, 00261 int argc, char **argv, 00262 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00263 00264 int cmdnfs_READDIR3args(cmdnfs_encodetype_t encodeflag, 00265 int argc, char **argv, 00266 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00267 00268 int cmdnfs_READDIR3res(cmdnfs_encodetype_t encodeflag, 00269 int argc, char **argv, 00270 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00271 00272 int cmdnfs_READDIRPLUS3args(cmdnfs_encodetype_t encodeflag, 00273 int argc, char **argv, 00274 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00275 00276 int cmdnfs_READDIRPLUS3res(cmdnfs_encodetype_t encodeflag, 00277 int argc, char **argv, 00278 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00279 00280 int cmdnfs_READLINK3res(cmdnfs_encodetype_t encodeflag, 00281 int argc, char **argv, 00282 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00283 00284 int cmdnfs_FSSTAT3res(cmdnfs_encodetype_t encodeflag, 00285 int argc, char **argv, 00286 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00287 00288 int cmdnfs_ACCESS3args(cmdnfs_encodetype_t encodeflag, 00289 int argc, char **argv, 00290 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00291 00292 int cmdnfs_ACCESS3res(cmdnfs_encodetype_t encodeflag, 00293 int argc, char **argv, 00294 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00295 00296 int cmdnfs_CREATE3args(cmdnfs_encodetype_t encodeflag, 00297 int argc, char **argv, 00298 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00299 00300 int cmdnfs_CREATE3res(cmdnfs_encodetype_t encodeflag, 00301 int argc, char **argv, 00302 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00303 00304 int cmdnfs_MKDIR3args(cmdnfs_encodetype_t encodeflag, 00305 int argc, char **argv, 00306 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00307 00308 int cmdnfs_MKDIR3res(cmdnfs_encodetype_t encodeflag, 00309 int argc, char **argv, 00310 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00311 00312 int cmdnfs_REMOVE3res(cmdnfs_encodetype_t encodeflag, 00313 int argc, char **argv, 00314 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00315 00316 int cmdnfs_RMDIR3res(cmdnfs_encodetype_t encodeflag, 00317 int argc, char **argv, 00318 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00319 00320 int cmdnfs_SETATTR3args(cmdnfs_encodetype_t encodeflag, 00321 int argc, char **argv, 00322 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00323 00324 int cmdnfs_SETATTR3res(cmdnfs_encodetype_t encodeflag, 00325 int argc, char **argv, 00326 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00327 00328 int cmdnfs_RENAME3args(cmdnfs_encodetype_t encodeflag, 00329 int argc, char **argv, 00330 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00331 00332 int cmdnfs_RENAME3res(cmdnfs_encodetype_t encodeflag, 00333 int argc, char **argv, 00334 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00335 00336 int cmdnfs_LINK3args(cmdnfs_encodetype_t encodeflag, 00337 int argc, char **argv, 00338 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00339 00340 int cmdnfs_LINK3res(cmdnfs_encodetype_t encodeflag, 00341 int argc, char **argv, 00342 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00343 00344 int cmdnfs_SYMLINK3args(cmdnfs_encodetype_t encodeflag, 00345 int argc, char **argv, 00346 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00347 00348 int cmdnfs_SYMLINK3res(cmdnfs_encodetype_t encodeflag, 00349 int argc, char **argv, 00350 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00351 00352 int cmdnfs_FSINFO3res(cmdnfs_encodetype_t encodeflag, 00353 int argc, char **argv, 00354 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00355 00356 int cmdnfs_PATHCONF3res(cmdnfs_encodetype_t encodeflag, 00357 int argc, char **argv, 00358 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00359 00360 int cmdnfs_RENAME2args(cmdnfs_encodetype_t encodeflag, 00361 int argc, char **argv, 00362 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00363 00364 int cmdnfs_STATFS2res(cmdnfs_encodetype_t encodeflag, 00365 int argc, char **argv, 00366 int indent, FILE * out_stream, caddr_t p_nfs_struct); 00367 00368 static cmdnfs_funcdesc_t __attribute((__unused__)) mnt1_funcdesc[] = 00369 { 00370 { 00371 "mnt1_null", mnt_Null, mnt_Null_Free, cmdnfs_void, cmdnfs_void, "mnt1_null"}, 00372 { 00373 "mnt1_mount", mnt_Mnt, mnt1_Mnt_Free, cmdnfs_dirpath, cmdnfs_fhstatus2, 00374 "mnt1_mount <dirpath>"}, 00375 { 00376 "mnt1_dump", mnt_Dump, mnt_Dump_Free, cmdnfs_void, cmdnfs_mountlist, "mnt1_dump"}, 00377 { 00378 "mnt1_umount", mnt_Umnt, mnt_Umnt_Free, cmdnfs_dirpath, cmdnfs_void, 00379 "mnt1_umount <dirpath>"}, 00380 { 00381 "mnt1_umount_all", mnt_UmntAll, mnt_UmntAll_Free, cmdnfs_void, cmdnfs_void, 00382 "mnt1_umount_all"}, 00383 { 00384 "mnt1_export", mnt_Export, mnt_Export_Free, cmdnfs_void, cmdnfs_exports, "mnt1_export"}, 00385 { 00386 NULL, NULL, NULL, NULL, NULL, NULL} 00387 }; 00388 00389 static cmdnfsremote_funcdesc_t __attribute((__unused__)) mnt1_remote_funcdesc[] = 00390 { 00391 { 00392 "mnt1_null", mnt1_remote_Null, mnt1_remote_Null_Free, cmdnfs_void, cmdnfs_void, 00393 "mnt1_null"}, 00394 { 00395 "mnt1_mount", mnt1_remote_Mnt, mnt1_remote_Mnt_Free, cmdnfs_dirpath, cmdnfs_fhstatus2, 00396 "mnt1_mount <dirpath>"}, 00397 { 00398 "mnt1_dump", mnt1_remote_Dump, mnt1_remote_Dump_Free, cmdnfs_void, cmdnfs_mountlist, 00399 "mnt1_dump"}, 00400 { 00401 "mnt1_umount", mnt1_remote_Umnt, mnt1_remote_Umnt_Free, cmdnfs_dirpath, cmdnfs_void, 00402 "mnt1_umount <dirpath>"}, 00403 { 00404 "mnt1_umount_all", mnt1_remote_UmntAll, mnt1_remote_UmntAll_Free, cmdnfs_void, 00405 cmdnfs_void, "mnt1_umount_all"}, 00406 { 00407 "mnt1_export", mnt1_remote_Export, mnt1_remote_Export_Free, cmdnfs_void, 00408 cmdnfs_exports, "mnt1_export"}, 00409 { 00410 NULL, NULL, NULL, NULL, NULL, NULL} 00411 }; 00412 00413 static cmdnfs_funcdesc_t __attribute((__unused__)) mnt3_funcdesc[] = 00414 { 00415 { 00416 "mnt3_null", mnt_Null, mnt_Null_Free, cmdnfs_void, cmdnfs_void, "mnt3_null"}, 00417 { 00418 "mnt3_mount", mnt_Mnt, mnt3_Mnt_Free, cmdnfs_dirpath, cmdnfs_mountres3, 00419 "mnt3_mount <dirpath>"}, 00420 { 00421 "mnt3_dump", mnt_Dump, mnt_Dump_Free, cmdnfs_void, cmdnfs_mountlist, "mnt3_dump"}, 00422 { 00423 "mnt3_umount", mnt_Umnt, mnt_Umnt_Free, cmdnfs_dirpath, cmdnfs_void, 00424 "mnt3_umount <dirpath>"}, 00425 { 00426 "mnt3_umount_all", mnt_UmntAll, mnt_UmntAll_Free, cmdnfs_void, cmdnfs_void, 00427 "mnt3_umount_all"}, 00428 { 00429 "mnt3_export", mnt_Export, mnt_Export_Free, cmdnfs_void, cmdnfs_exports, "mnt3_export"}, 00430 { 00431 NULL, NULL, NULL, NULL, NULL, NULL} 00432 }; 00433 00434 static cmdnfsremote_funcdesc_t __attribute((__unused__)) mnt3_remote_funcdesc[] = 00435 { 00436 { 00437 "mnt3_null", mnt3_remote_Null, mnt3_remote_Null_Free, cmdnfs_void, cmdnfs_void, 00438 "mnt3_null"}, 00439 { 00440 "mnt3_mount", mnt3_remote_Mnt, mnt3_remote_Mnt_Free, cmdnfs_dirpath, cmdnfs_mountres3, 00441 "mnt3_mount <dirpath>"}, 00442 { 00443 "mnt3_dump", mnt3_remote_Dump, mnt3_remote_Dump_Free, cmdnfs_void, cmdnfs_mountlist, 00444 "mnt3_dump"}, 00445 { 00446 "mnt3_umount", mnt3_remote_Umnt, mnt3_remote_Umnt_Free, cmdnfs_dirpath, cmdnfs_void, 00447 "mnt3_umount <dirpath>"}, 00448 { 00449 "mnt3_umount_all", mnt3_remote_UmntAll, mnt3_remote_UmntAll_Free, cmdnfs_void, 00450 cmdnfs_void, "mnt3_umount_all"}, 00451 { 00452 "mnt3_export", mnt3_remote_Export, mnt3_remote_Export_Free, cmdnfs_void, 00453 cmdnfs_exports, "mnt3_export"}, 00454 { 00455 NULL, NULL, NULL, NULL, NULL, NULL} 00456 }; 00457 00458 static cmdnfs_funcdesc_t __attribute((__unused__)) nfs2_funcdesc[] = 00459 { 00460 { 00461 "nfs2_null", nfs_Null, nfs_Null_Free, cmdnfs_void, cmdnfs_void, "nfs2_null"}, 00462 { 00463 "nfs2_getattr", nfs_Getattr, nfs_Getattr_Free, cmdnfs_fhandle2, cmdnfs_ATTR2res, 00464 "nfs2_getattr <@handle2>"}, 00465 { 00466 "nfs2_lookup", nfs_Lookup, nfs2_Lookup_Free, cmdnfs_diropargs2, cmdnfs_DIROP2res, 00467 "nfs2_lookup <@dir_handle> <name>"}, 00468 { 00469 "nfs2_readlink", nfs_Readlink, nfs2_Readlink_Free, cmdnfs_fhandle2, 00470 cmdnfs_READLINK2res, "nfs2_readlink <@symlink_handle2>"}, 00471 { 00472 "nfs2_create", nfs_Create, nfs_Create_Free, cmdnfs_CREATE2args, cmdnfs_DIROP2res, 00473 "nfs2_create <@dir_handle2> <name> [<attr>=<value>,<attr>=<value>,...]\n" 00474 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.uuuuuu), mtime."}, 00475 { 00476 "nfs2_mkdir", nfs_Mkdir, nfs_Mkdir_Free, cmdnfs_CREATE2args, cmdnfs_DIROP2res, 00477 "nfs2_mkdir <@dir_handle2> <name>[<attr>=<value>,<attr>=<value>,...]\n" 00478 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.uuuuuu), mtime."}, 00479 { 00480 "nfs2_remove", nfs_Remove, nfs_Remove_Free, cmdnfs_diropargs2, cmdnfs_nfsstat2, 00481 "nfs2_remove <@dir_handle> <name>"}, 00482 { 00483 "nfs2_rmdir", nfs_Rmdir, nfs_Rmdir_Free, cmdnfs_diropargs2, cmdnfs_nfsstat2, 00484 "nfs2_rmdir <@dir_handle> <name>"}, 00485 { 00486 "nfs2_root", nfs2_Root, nfs2_Root_Free, cmdnfs_void, cmdnfs_void, 00487 "nfs2_root (not supported)"}, 00488 { 00489 "nfs2_writecache", nfs2_Writecache, nfs2_Writecache_Free, cmdnfs_void, cmdnfs_void, 00490 "nfs2_writecache (not supported)"}, 00491 { 00492 "nfs2_setattr", nfs_Setattr, nfs_Setattr_Free, cmdnfs_SETATTR2args, cmdnfs_ATTR2res, 00493 "nfs2_setattr <@handle2> <attr>=<value>[,<attr>=<value>,...]\n" 00494 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.uuuuuu), mtime."}, 00495 { 00496 "nfs2_readdir", nfs_Readdir, nfs2_Readdir_Free, cmdnfs_READDIR2args, 00497 cmdnfs_READDIR2res, "nfs2_readdir <@dir_handle> <cookie> <count>"}, 00498 { 00499 "nfs2_rename", nfs_Rename, nfs_Rename_Free, cmdnfs_RENAME2args, cmdnfs_nfsstat2, 00500 "nfs2_rename <@src_handle> <src_name> <@tgt_handle> <tgt_name>"}, 00501 { 00502 "nfs2_statfs", nfs_Fsstat, nfs_Fsstat_Free, cmdnfs_fhandle2, cmdnfs_STATFS2res, 00503 "nfs2_statfs <@handle2>"}, 00504 { 00505 NULL, NULL, NULL, NULL, NULL, NULL} 00506 /* nfs_Read, xdr_READ2args, xdr_READ2res, "nfs_Read", 00507 nfs_Write, xdr_WRITE2args, xdr_ATTR2res, "nfs_Write", 00508 nfs_Link, xdr_LINK2args, xdr_nfsstat2, "nfs_Link", 00509 nfs_Symlink, xdr_SYMLINK2args, xdr_nfsstat2, "nfs_Symlink", 00510 nfs_Fsstat, xdr_fhandle2, xdr_STATFS2res, "nfs_Fsstat"*/ 00511 }; 00512 00513 static cmdnfsremote_funcdesc_t __attribute((__unused__)) nfs2_remote_funcdesc[] = 00514 { 00515 { 00516 "nfs2_null", nfs2_remote_Null, nfs2_remote_Null_Free, cmdnfs_void, cmdnfs_void, 00517 "nfs2_null"}, 00518 { 00519 "nfs2_getattr", nfs2_remote_Getattr, nfs2_remote_Getattr_Free, cmdnfs_fhandle2, 00520 cmdnfs_ATTR2res, "nfs2_getattr <@handle2>"}, 00521 { 00522 "nfs2_lookup", nfs2_remote_Lookup, nfs2_remote_Lookup_Free, cmdnfs_diropargs2, 00523 cmdnfs_DIROP2res, "nfs2_lookup <@dir_handle> <name>"}, 00524 { 00525 "nfs2_readlink", nfs2_remote_Readlink, nfs2_remote_Readlink_Free, cmdnfs_fhandle2, 00526 cmdnfs_READLINK2res, "nfs2_readlink <@symlink_handle2>"}, 00527 { 00528 "nfs2_create", nfs2_remote_Create, nfs2_remote_Create_Free, cmdnfs_CREATE2args, 00529 cmdnfs_DIROP2res, 00530 "nfs2_create <@dir_handle2> <name> [<attr>=<value>,<attr>=<value>,...]\n" 00531 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.uuuuuu), mtime."}, 00532 { 00533 "nfs2_mkdir", nfs2_remote_Mkdir, nfs2_remote_Mkdir_Free, cmdnfs_CREATE2args, 00534 cmdnfs_DIROP2res, 00535 "nfs2_mkdir <@dir_handle2> <name>[<attr>=<value>,<attr>=<value>,...]\n" 00536 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.uuuuuu), mtime."}, 00537 { 00538 "nfs2_remove", nfs2_remote_Remove, nfs2_remote_Remove_Free, cmdnfs_diropargs2, 00539 cmdnfs_nfsstat2, "nfs2_remove <@dir_handle> <name>"}, 00540 { 00541 "nfs2_rmdir", nfs2_remote_Rmdir, nfs2_remote_Rmdir_Free, cmdnfs_diropargs2, 00542 cmdnfs_nfsstat2, "nfs2_rmdir <@dir_handle> <name>"}, 00543 { 00544 "nfs2_root", nfs2_remote_Root, nfs2_remote_Root_Free, cmdnfs_void, cmdnfs_void, 00545 "nfs2_root (not supported)"}, 00546 { 00547 "nfs2_writecache", nfs2_remote_Writecache, nfs2_remote_Writecache_Free, cmdnfs_void, 00548 cmdnfs_void, "nfs2_writecache (not supported)"}, 00549 { 00550 "nfs2_setattr", nfs2_remote_Setattr, nfs2_remote_Setattr_Free, cmdnfs_SETATTR2args, 00551 cmdnfs_ATTR2res, 00552 "nfs2_setattr <@handle2> <attr>=<value>[,<attr>=<value>,...]\n" 00553 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.uuuuuu), mtime."}, 00554 { 00555 "nfs2_readdir", nfs2_remote_Readdir, nfs2_remote_Readdir_Free, cmdnfs_READDIR2args, 00556 cmdnfs_READDIR2res, "nfs2_readdir <@dir_handle> <cookie> <count>"}, 00557 { 00558 "nfs2_rename", nfs2_remote_Rename, nfs2_remote_Rename_Free, cmdnfs_RENAME2args, 00559 cmdnfs_nfsstat2, "nfs2_rename <@src_handle> <src_name> <@tgt_handle> <tgt_name>"}, 00560 { 00561 "nfs2_statfs", nfs2_remote_Fsstat, nfs2_remote_Fsstat_Free, cmdnfs_fhandle2, 00562 cmdnfs_STATFS2res, "nfs2_statfs <@handle2>"}, 00563 { 00564 NULL, NULL, NULL, NULL, NULL, NULL} 00565 /* nfs_Read, xdr_READ2args, xdr_READ2res, "nfs_Read", 00566 nfs_Write, xdr_WRITE2args, xdr_ATTR2res, "nfs_Write", 00567 nfs_Link, xdr_LINK2args, xdr_nfsstat2, "nfs_Link", 00568 nfs_Symlink, xdr_SYMLINK2args, xdr_nfsstat2, "nfs_Symlink", 00569 nfs_Fsstat, xdr_fhandle2, xdr_STATFS2res, "nfs_Fsstat"*/ 00570 }; 00571 00572 static cmdnfs_funcdesc_t __attribute__ ((__unused__)) nfs3_funcdesc[] = 00573 { 00574 { 00575 "nfs3_null", nfs_Null, nfs_Null_Free, cmdnfs_void, cmdnfs_void, "nfs3_null"}, 00576 { 00577 "nfs3_getattr", nfs_Getattr, nfs_Getattr_Free, cmdnfs_fhandle3, cmdnfs_GETATTR3res, 00578 "nfs3_getattr <@handle3>"}, 00579 { 00580 "nfs3_lookup", nfs_Lookup, nfs3_Lookup_Free, cmdnfs_diropargs3, cmdnfs_LOOKUP3res, 00581 "nfs3_lookup <@dir_handle3> <name>"}, 00582 { 00583 "nfs3_readdir", nfs_Readdir, nfs3_Readdir_Free, cmdnfs_READDIR3args, 00584 cmdnfs_READDIR3res, 00585 "nfs3_readdir <@dir_handle3> <cookie(uint64)> <cookieverf(8 bytes hexa)> <count>"}, 00586 { 00587 "nfs3_readdirplus", nfs3_Readdirplus, nfs3_Readdirplus_Free, cmdnfs_READDIRPLUS3args, 00588 cmdnfs_READDIRPLUS3res, 00589 "nfs3_readdirplus <@dir_handle3> <cookie(uint64)> <cookieverf(8 bytes hexa)> <dircount> <maxcount>"}, 00590 { 00591 "nfs3_readlink", nfs_Readlink, nfs3_Readlink_Free, cmdnfs_fhandle3, 00592 cmdnfs_READLINK3res, "nfs3_readlink <@symlnk_handle3>"}, 00593 { 00594 "nfs3_access", nfs3_Access, nfs3_Access_Free, cmdnfs_ACCESS3args, cmdnfs_ACCESS3res, 00595 "nfs3_access <@handle3> <[R][M][L][E][D][X]>\n" 00596 "\twith flags: R(ead) L(ookup) M(odify) E(xtend) D(elete) (e)X(ecute)"}, 00597 { 00598 "nfs3_create", nfs_Create, nfs_Create_Free, cmdnfs_CREATE3args, cmdnfs_CREATE3res, 00599 "nfs3_create <@dir_handle3> <name> <UNCHECKED|GUARDED> [<attr>=<value>},<attr>=<value>,...]\n" 00600 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.nnnnnnnnn), mtime.\n" 00601 "nfs3_create <@dir_handle3> <name> EXCLUSIVE <createverf(8 bytes hexa)>"}, 00602 { 00603 "nfs3_mkdir", nfs_Mkdir, nfs_Mkdir_Free, cmdnfs_MKDIR3args, cmdnfs_MKDIR3res, 00604 "nfs3_mkdir <@dir_handle3> <name> [<attr>=<value>,<attr>=<value>,...]\n" 00605 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.nnnnnnnnn), mtime."}, 00606 { 00607 "nfs3_remove", nfs_Remove, nfs_Remove_Free, cmdnfs_diropargs3, cmdnfs_REMOVE3res, 00608 "nfs3_remove <@dir_handle3> <name>"}, 00609 { 00610 "nfs3_rmdir", nfs_Rmdir, nfs_Rmdir_Free, cmdnfs_diropargs3, cmdnfs_RMDIR3res, 00611 "nfs3_rmdir <@dir_handle3> <name>"}, 00612 { 00613 "nfs3_fsstat", nfs_Fsstat, nfs_Fsstat_Free, cmdnfs_fhandle3, cmdnfs_FSSTAT3res, 00614 "nfs3_fsstat <@handle3>"}, 00615 { 00616 "nfs3_setattr", nfs_Setattr, nfs_Setattr_Free, cmdnfs_SETATTR3args, 00617 cmdnfs_SETATTR3res, 00618 "nfs3_setattr <@handle3> <attr>=<value>,<attr>=<value>,... [check_obj_ctime(format: YYYYMMDDHHMMSS.nnnnnnnnn)]\n" 00619 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.nnnnnnnnn), mtime."}, 00620 { 00621 "nfs3_rename", nfs_Rename, nfs_Rename_Free, cmdnfs_RENAME3args, cmdnfs_RENAME3res, 00622 "nfs3_rename <@from_dir_handle3> <from_name> <@to_dir_handle3> <to_name>"}, 00623 { 00624 "nfs3_link", nfs_Link, nfs_Link_Free, cmdnfs_LINK3args, cmdnfs_LINK3res, 00625 "nfs3_link <@handle3> <@link_dir_handle3> <link_name>"}, 00626 { 00627 "nfs3_symlink", nfs_Symlink, nfs_Symlink_Free, cmdnfs_SYMLINK3args, 00628 cmdnfs_SYMLINK3res, 00629 "nfs3_symlink <@dir_handle3> <name> [<attr>=<value>},<attr>=<value>,...] <symlink_data>"}, 00630 { 00631 "nfs3_fsinfo", nfs3_Fsinfo, nfs3_Fsinfo_Free, cmdnfs_fhandle3, cmdnfs_FSINFO3res, 00632 "nfs3_fsinfo <@root_hdl3>"}, 00633 { 00634 "nfs3_pathconf", nfs3_Pathconf, nfs3_Pathconf_Free, cmdnfs_fhandle3, 00635 cmdnfs_PATHCONF3res, "nfs3_pathconf <@handle3>"}, 00636 { 00637 NULL, NULL, NULL, NULL, NULL, NULL} 00638 /* 00639 nfs_Read, xdr_READ3args, xdr_READ3res, "nfs_Read", 00640 nfs_Write, xdr_WRITE3args, xdr_WRITE3res, "nfs_Write", 00641 nfs3_Mknod, xdr_MKNOD3args, xdr_MKNOD3res, "nfs3_Mknod", 00642 nfs3_Commit, xdr_COMMIT3args, xdr_COMMIT3res, "nfs3_Commit" 00643 */ 00644 }; 00645 00646 static cmdnfsremote_funcdesc_t __attribute((__unused__)) nfs3_remote_funcdesc[] = 00647 { 00648 { 00649 "nfs3_null", nfs3_remote_Null, nfs3_remote_Null_Free, cmdnfs_void, cmdnfs_void, 00650 "nfs3_null"}, 00651 { 00652 "nfs3_getattr", nfs3_remote_Getattr, nfs3_remote_Getattr_Free, cmdnfs_fhandle3, 00653 cmdnfs_GETATTR3res, "nfs3_getattr <@handle3>"}, 00654 { 00655 "nfs3_lookup", nfs3_remote_Lookup, nfs3_remote_Lookup_Free, cmdnfs_diropargs3, 00656 cmdnfs_LOOKUP3res, "nfs3_lookup <@dir_handle3> <name>"}, 00657 { 00658 "nfs3_readdir", nfs3_remote_Readdir, nfs3_remote_Readdir_Free, cmdnfs_READDIR3args, 00659 cmdnfs_READDIR3res, 00660 "nfs3_readdir <@dir_handle3> <cookie(uint64)> <cookieverf(8 bytes hexa)> <count>"}, 00661 { 00662 "nfs3_readdirplus", nfs3_remote_Readdirplus, nfs3_remote_Readdirplus_Free, 00663 cmdnfs_READDIRPLUS3args, cmdnfs_READDIRPLUS3res, 00664 "nfs3_readdirplus <@dir_handle3> <cookie(uint64)> <cookieverf(8 bytes hexa)> <dircount> <maxcount>"}, 00665 { 00666 "nfs3_readlink", nfs3_remote_Readlink, nfs3_remote_Readlink_Free, cmdnfs_fhandle3, 00667 cmdnfs_READLINK3res, "nfs3_readlink <@symlnk_handle3>"}, 00668 { 00669 "nfs3_access", nfs3_remote_Access, nfs3_remote_Access_Free, cmdnfs_ACCESS3args, 00670 cmdnfs_ACCESS3res, 00671 "nfs3_access <@handle3> <[R][M][L][E][D][X]>\n" 00672 "\twith flags: R(ead) L(ookup) M(odify) E(xtend) D(elete) (e)X(ecute)"}, 00673 { 00674 "nfs3_create", nfs3_remote_Create, nfs3_remote_Create_Free, cmdnfs_CREATE3args, 00675 cmdnfs_CREATE3res, 00676 "nfs3_create <@dir_handle3> <name> <UNCHECKED|GUARDED> [<attr>=<value>,<attr>=<value>,...]\n" 00677 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.nnnnnnnnn), mtime.\n" 00678 "nfs3_create <@dir_handle3> <name> EXCLUSIVE <createverf(8 bytes hexa)>"}, 00679 { 00680 "nfs3_mkdir", nfs3_remote_Mkdir, nfs3_remote_Mkdir_Free, cmdnfs_MKDIR3args, 00681 cmdnfs_MKDIR3res, 00682 "nfs3_mkdir <@dir_handle3> <name> [<attr>=<value>,<attr>=<value>,...]\n" 00683 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.nnnnnnnnn), mtime."}, 00684 { 00685 "nfs3_remove", nfs3_remote_Remove, nfs3_remote_Remove_Free, cmdnfs_diropargs3, 00686 cmdnfs_REMOVE3res, "nfs3_remove <@dir_handle3> <name>"}, 00687 { 00688 "nfs3_rmdir", nfs3_remote_Rmdir, nfs3_remote_Rmdir_Free, cmdnfs_diropargs3, 00689 cmdnfs_RMDIR3res, "nfs3_rmdir <@dir_handle3> <name>"}, 00690 { 00691 "nfs3_fsstat", nfs3_remote_Fsstat, nfs3_remote_Fsstat_Free, cmdnfs_fhandle3, 00692 cmdnfs_FSSTAT3res, "nfs3_fsstat <@handle3>"}, 00693 { 00694 "nfs3_setattr", nfs3_remote_Setattr, nfs3_remote_Setattr_Free, cmdnfs_SETATTR3args, 00695 cmdnfs_SETATTR3res, 00696 "nfs3_setattr <@handle3> <attr>=<value>,<attr>=<value>,... [check_obj_ctime(format: YYYYMMDDHHMMSS.nnnnnnnnn)]\n" 00697 "\twhere <attr> can be: mode(octal value), uid, gid, size, atime(format: YYYYMMDDHHMMSS.nnnnnnnnn), mtime."}, 00698 { 00699 "nfs3_rename", nfs3_remote_Rename, nfs3_remote_Rename_Free, cmdnfs_RENAME3args, 00700 cmdnfs_RENAME3res, 00701 "nfs3_rename <@from_dir_handle3> <from_name> <@to_dir_handle3> <to_name>"}, 00702 { 00703 "nfs3_link", nfs3_remote_Link, nfs3_remote_Link_Free, cmdnfs_LINK3args, 00704 cmdnfs_LINK3res, "nfs3_link <@handle3> <@link_dir_handle3> <link_name>"}, 00705 { 00706 "nfs3_symlink", nfs3_remote_Symlink, nfs3_remote_Symlink_Free, cmdnfs_SYMLINK3args, 00707 cmdnfs_SYMLINK3res, 00708 "nfs3_symlink <@dir_handle3> <name> [<attr>=<value>},<attr>=<value>,...] <symlink_data>"}, 00709 { 00710 "nfs3_fsinfo", nfs3_remote_Fsinfo, nfs3_remote_Fsinfo_Free, cmdnfs_fhandle3, 00711 cmdnfs_FSINFO3res, "nfs3_fsinfo <@root_hdl3>"}, 00712 { 00713 "nfs3_pathconf", nfs3_remote_Pathconf, nfs3_remote_Pathconf_Free, cmdnfs_fhandle3, 00714 cmdnfs_PATHCONF3res, "nfs3_pathconf <@handle3>"}, 00715 { 00716 NULL, NULL, NULL, NULL, NULL, NULL} 00717 /* 00718 nfs_Read, xdr_READ3args, xdr_READ3res, "nfs_Read", 00719 nfs_Write, xdr_WRITE3args, xdr_WRITE3res, "nfs_Write", 00720 nfs3_Mknod, xdr_MKNOD3args, xdr_MKNOD3res, "nfs3_Mknod", 00721 nfs3_Commit, xdr_COMMIT3args, xdr_COMMIT3res, "nfs3_Commit" 00722 */ 00723 }; 00724 00736 void print_nfsitem_line(FILE * out, fattr3 * attrib, char *name, char *target); 00737 00746 void print_nfs_attributes(fattr3 * attrs, FILE * output); 00747 00748 #endif