X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Flibnfs-raw.h;h=238025d5ffeb330f9c42b0204e958644f678b63e;hb=45670bd0d680f9c9323857d785f37a214e741ddb;hp=6698030c39a59408c594dad8b52481733615b654;hpb=b426ef040432daf0868a99d62d1f85c88c7fbd2c;p=deb_libnfs.git diff --git a/include/libnfs-raw.h b/include/libnfs-raw.h index 6698030..238025d 100644 --- a/include/libnfs-raw.h +++ b/include/libnfs-raw.h @@ -20,8 +20,6 @@ * protocol as well as the XDR encoded/decoded structures. */ #include -#include -#include struct rpc_data { int size; @@ -40,6 +38,16 @@ int rpc_service(struct rpc_context *rpc, int revents); char *rpc_get_error(struct rpc_context *rpc); int rpc_queue_length(struct rpc_context *rpc); +/* Utility function to get an RPC context from a NFS context. Useful for doing low level NFSACL + * calls on a NFS context. + */ +struct rpc_context *nfs_get_rpc_context(struct nfs_context *nfs); + +/* This function returns the nfs_fh3 structure from a nfsfh structure. + This allows to use a file onened with nfs_open() together with low-level + rpc functions that thake a nfs filehandle +*/ +struct nfs_fh3 *nfs_get_fh(struct nfsfh *nfsfh); #define RPC_STATUS_SUCCESS 0 #define RPC_STATUS_ERROR 1 @@ -150,7 +158,7 @@ int rpc_pmap_unset_async(struct rpc_context *rpc, int program, int version, int * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. * data is NULL. */ -int rpc_pmap_callit_async(struct rpc_context *rpc, int program, int version, int procedure, const char *data, int datalen, rpc_cb cb, void *private_data); +int rpc_pmap_callit_async(struct rpc_context *rpc, int program, int version, int procedure, char *data, int datalen, rpc_cb cb, void *private_data); /* * MOUNT FUNCTIONS @@ -414,7 +422,8 @@ int rpc_nfs_setattr_async(struct rpc_context *rpc, rpc_cb cb, struct SETATTR3arg * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. * data is NULL. */ -int rpc_nfs_mkdir_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *dir, void *private_data); +struct MKDIR3args; +int rpc_nfs_mkdir_async(struct rpc_context *rpc, rpc_cb cb, struct MKDIR3args *args, void *private_data); @@ -453,7 +462,8 @@ int rpc_nfs_rmdir_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. * data is NULL. */ -int rpc_nfs_create_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *name, int mode, void *private_data); +struct CREATE3args; +int rpc_nfs_create_async(struct rpc_context *rpc, rpc_cb cb, struct CREATE3args *args, void *private_data); /* @@ -573,7 +583,8 @@ int rpc_nfs_fsinfo_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. * data is NULL. */ -int rpc_nfs_readlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, void *private_data); +struct READLINK3args; +int rpc_nfs_readlink_async(struct rpc_context *rpc, rpc_cb cb, struct READLINK3args *args, void *private_data); @@ -591,7 +602,8 @@ int rpc_nfs_readlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *f * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. * data is NULL. */ -int rpc_nfs_symlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *newname, char *oldpath, void *private_data); +struct SYMLINK3args; +int rpc_nfs_symlink_async(struct rpc_context *rpc, rpc_cb cb, struct SYMLINK3args *args, void *private_data); /* @@ -738,6 +750,13 @@ int rpc_rquota2_getactivequota_async(struct rpc_context *rpc, rpc_cb cb, char *e + + + +/* + * NFSACL functions + */ + /* * Call NFSACL/NULL * Call the NULL procedure for the NFSACL @@ -764,12 +783,134 @@ int rpc_nfsacl_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data * <0 : An error occured when trying to set up the call. The callback will not be invoked. * * When the callback is invoked, status indicates the result: - * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon. + * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon. * data is a GETACL3res pointer - * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon. + * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon. + * data is the error string. + * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. + * data is NULL. + */ +struct GETACL3args; +int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct GETACL3args *args, void *private_data); + + + +/* + * Call NFSACL/SETACL + * + * Function returns + * 0 : The call was initiated. The callback will be invoked when the call completes. + * <0 : An error occured when trying to set up the call. The callback will not be invoked. + * + * When the callback is invoked, status indicates the result: + * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon. + * data is a SETACL3res pointer + * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon. + * data is the error string. + * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. + * data is NULL. + */ +struct SETACL3args; +int rpc_nfsacl_setacl_async(struct rpc_context *rpc, rpc_cb cb, struct SETACL3args *args, void *private_data); + + + + +/* + * NLM functions + */ +char *nlmstat4_to_str(int stat); + +/* + * Call NLM/NULL + * Call the NULL procedure for the NLM protocol + * + * Function returns + * 0 : The call was initiated. The callback will be invoked when the call completes. + * <0 : An error occured when trying to set up the call. The callback will not be invoked. + * + * When the callback is invoked, status indicates the result: + * RPC_STATUS_SUCCESS : We got a successful response from the nlm daemon. + * data is NULL + * RPC_STATUS_ERROR : An error occured when trying to contact the nlm daemon. * data is the error string. * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. * data is NULL. */ -int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint32_t mask, void *private_data); +int rpc_nlm4_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data); +/* + * Call NLM/TEST + * Call the TEST procedure for the NLM protocol + * + * Function returns + * 0 : The call was initiated. The callback will be invoked when the call completes. + * <0 : An error occured when trying to set up the call. The callback will not be invoked. + * + * When the callback is invoked, status indicates the result: + * RPC_STATUS_SUCCESS : We got a successful response from the nlm daemon. + * data is NLM4_TESTres + * RPC_STATUS_ERROR : An error occured when trying to contact the nlm daemon. + * data is the error string. + * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. + * data is NULL. + */ +struct NLM4_TESTargs; +int rpc_nlm4_test_async(struct rpc_context *rpc, rpc_cb cb, struct NLM4_TESTargs *args, void *private_data); + +/* + * Call NLM/LOCK + * Call the LOCK procedure for the NLM protocol + * + * Function returns + * 0 : The call was initiated. The callback will be invoked when the call completes. + * <0 : An error occured when trying to set up the call. The callback will not be invoked. + * + * When the callback is invoked, status indicates the result: + * RPC_STATUS_SUCCESS : We got a successful response from the nlm daemon. + * data is NLM4_LOCKres + * RPC_STATUS_ERROR : An error occured when trying to contact the nlm daemon. + * data is the error string. + * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. + * data is NULL. + */ +struct NLM4_LOCKargs; +int rpc_nlm4_lock_async(struct rpc_context *rpc, rpc_cb cb, struct NLM4_LOCKargs *args, void *private_data); + +/* + * Call NLM/CANCEL + * Call the CANCEL procedure for the NLM protocol + * + * Function returns + * 0 : The call was initiated. The callback will be invoked when the call completes. + * <0 : An error occured when trying to set up the call. The callback will not be invoked. + * + * When the callback is invoked, status indicates the result: + * RPC_STATUS_SUCCESS : We got a successful response from the nlm daemon. + * data is NLM4_CANCres + * RPC_STATUS_ERROR : An error occured when trying to contact the nlm daemon. + * data is the error string. + * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. + * data is NULL. + */ +struct NLM4_CANCargs; +int rpc_nlm4_cancel_async(struct rpc_context *rpc, rpc_cb cb, struct NLM4_CANCargs *args, void *private_data); + +/* + * Call NLM/UNLOCK + * Call the UNLOCK procedure for the NLM protocol + * + * Function returns + * 0 : The call was initiated. The callback will be invoked when the call completes. + * <0 : An error occured when trying to set up the call. The callback will not be invoked. + * + * When the callback is invoked, status indicates the result: + * RPC_STATUS_SUCCESS : We got a successful response from the nlm daemon. + * data is NLM4_UNLOCKres + * RPC_STATUS_ERROR : An error occured when trying to contact the nlm daemon. + * data is the error string. + * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete. + * data is NULL. + */ +struct NLM4_UNLOCKargs; +int rpc_nlm4_unlock_async(struct rpc_context *rpc, rpc_cb cb, struct NLM4_UNLOCKargs *args, void *private_data);